From 95a76d208004b4ad58ebee3bf36a3f4ae75fdb46 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Sat, 21 Jul 2007 00:05:15 +0000 Subject: [PATCH] 1.0.7.35: SLOT-VALUE and SET-SLOT-VALUE transforms aren't important * No compiler notes for default policy. * Test case. --- src/pcl/compiler-support.lisp | 10 ++++++---- tests/clos.pure.lisp | 10 ++++++++++ version.lisp-expr | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/pcl/compiler-support.lisp b/src/pcl/compiler-support.lisp index f32755b..e00deee 100644 --- a/src/pcl/compiler-support.lisp +++ b/src/pcl/compiler-support.lisp @@ -113,7 +113,7 @@ ;;; slightly more cheaply then the transforms. (Transforms add new ;;; lambdas, which requires more work by the compiler.) -(deftransform slot-value ((object slot-name) * * :important t) +(deftransform slot-value ((object slot-name)) "optimize" (let (c-slot-name) (if (and (pcl-boot-state-complete-p) @@ -125,9 +125,11 @@ (deftransform sb-pcl::set-slot-value ((object slot-name new-value) (t symbol t) t - :important t - ;; see comment in the - ;; compiler-macro + ;; Safe code wants to check the + ;; type, and the global accessor + ;; won't do that. Also see the + ;; comment in the + ;; compiler-macro. :policy (< safety 3)) "optimize" (let (c-slot-name) diff --git a/tests/clos.pure.lisp b/tests/clos.pure.lisp index 803b48a..aec1850 100644 --- a/tests/clos.pure.lisp +++ b/tests/clos.pure.lisp @@ -71,3 +71,13 @@ (when (and std (< std last)) (push `(:std ,c) result)))))) (assert (null result)))) + +;; No compiler-notes for non-constant slot-names in default policy. +(handler-case + (compile nil '(lambda (x y z) + (setf (slot-value x z) + (slot-value y z)))) + (sb-ext:compiler-note (e) + (error e))) + + diff --git a/version.lisp-expr b/version.lisp-expr index f331a94..fe8d58b 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.7.34" +"1.0.7.35" -- 1.7.10.4