1.0.7.17: SLOT-VALUE and SET-SLOT-VALUE transforms (really 1.0.7.16)
commita3e88ea40e1ca121de03112ce4e41b991da78983
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 12 Jul 2007 23:05:17 +0000 (12 23:05 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 12 Jul 2007 23:05:17 +0000 (12 23:05 +0000)
treedd398de7eec798ece6fb70ee3cf9f92e7abe04f6
parenta556288505e2687ac333e1b0a8deebb13c76a60c
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