From a3e88ea40e1ca121de03112ce4e41b991da78983 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Thu, 12 Jul 2007 23:05:17 +0000 Subject: [PATCH] 1.0.7.17: SLOT-VALUE and SET-SLOT-VALUE transforms (really 1.0.7.16) This is the real commit message that was supposed to go in 1.0.7.16. Sorry. * Define SLOT-VALUE and SET-SLOT-VALUE as known functions. * Use &ENVIRONMENT in CONSTANTP and CONSTANT-FORM-VALUE calls in their compiler-macros. * Add transforms for SLOT-VALUE and SET-SLOT-VALUE in addition to the compiler-macros. The transforms are functionally equivalent to the compiler-macros, but catch more cases: eg. (define-modify-macro appendf (&rest lists) append) (appendf (slot-value x 'y) z) needs the deftransforms as setf-expansion replaces the constant argument with a gensym. Keep the compiler-macros around, since they catch the common cases early and don't mess up the build: the transforms are agressive enough that we can't enable them until the PCL boot-state is complete. (The compiler-macros are also slightly cheaper, since each transform introduces a new lambda.) --- version.lisp-expr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.lisp-expr b/version.lisp-expr index 5ba19b072..98cbb2b65 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.16" +"1.0.7.17" -- 2.11.4.GIT