[81e608] by Nikodemus Siivola
126.96.36.199: FIND-SLOT-DEFINITION to return NIL when called with non-slot-classes
* Add a default method to CLASS-SLOT-VECTOR that returns #(NIL), restoring
* Add a slightly dubious test-case.
[d4624e] by Nikodemus Siivola
188.8.131.52: adjust lexenv frobbing in TRANSFORM-CALL to happen earlier
* Need to replace the call lexenv with the frobbed one before
(This has been around since 0.9.17.5, but since it only affects
* Test case.
[ad6345] by Nikodemus Siivola
184.108.40.206: be more paranoid about saps
* Since compiler transformations can introduce closures and hence
* Also convert a couple of WITHOUT-GCINGs to WITH-PINNED-OBJECTS
[6fa7b9] by Nikodemus Siivola
220.127.116.11: compiler being nicer to the compiler
* In MAKE-XEP-LAMBDA-EXPRESSION, use EQL instead of = and NOT <
* Add a source transform for %COERCE-CALLABLE-TO-FUN to pick of
* Use %FUNCALL and %COERCE-CALLABLE-TO-FUN in MAPFOO-TRANSFORM,
This work was based on Juho's observation that a major source of
[da3049] by Nikodemus Siivola
18.104.22.168: SLOT-CLASS cleanups
* No need for two separate implementations of FIND-SLOT-DEFINITION -- just
* There should be no (SETF CLASS-SLOTS) or (SETF CLASS-DIRECT-SLOTS), so
[0ee113] by Nikodemus Siivola
22.214.171.124: asymptotically faster FIND-SLOT-DEFINITION
* Add a SLOT-VECTOR slot the SLOT-CLASS. The SLOT-VECTOR contains
Makes everything requiring slot definition lookups faster, simple
[1ac7e7] by Nikodemus Siivola
126.96.36.199: better MEMBER transform
* Specialized versions for different keyword combinations: %MEMBER,
* The transform open codes for all combinations of keywords if the
[76e5cc] by Christophe Rhodes
188.8.131.52: Fix CALL-NEXT-METHOD / EVAL-WHEN interaction
[e6cf9d] by Nikodemus Siivola
184.108.40.206: delete a large block of commented-out code from seqtran.lisp
* This is why we have version control. (But add a comment pointing out
The code that is deleted here contains the apparent beginnings of a
[6a62de] by Nikodemus Siivola
220.127.116.11: threaded SET & BIND VOP touchups
* In SET: don't check versus TLS-INDEX == 0: TLS-INDEX 0 already
* In BIND: use one register less, splitting the duties of the old
[bfb19d] by Nikodemus Siivola
* New macro SB-EXT:COMPARE-AND-SWAP provides a supported interface to
* New info-type :FUNCTION :STRUCTURE-ACCESSOR allows us to map from
* Add :CAS-TRANS slot keyword to DEFINE-PRIMITIVE object, and the
* New VOPs COMPARE-AND-SWAP-SLOT and %COMPARE-AND-SWAP-SYMBOL-VALUE.
* Delete now unnecessary DEFINE-STRUCTURE-SLOT-COMPARE-AND-SWAP.
* Use a consistent %COMPARE-AND-SWAP-FOO naming scheme for CAS
Tested on x86/Linux & x86/Darwin, x86-64/Darwi, and PPC/Darwin.
[f34fee] by Nikodemus Siivola
18.104.22.168: automagic debugging-friendly gensyms
* New function: SB-INT:BLOCK-GENSYM, which appends the innermost
* Use it instead of GENSYM in MAKE-GENSYM-LIST and WITH-UNIQUE-NAMES.
[a3e88e] by Nikodemus Siivola
22.214.171.124: SLOT-VALUE and SET-SLOT-VALUE transforms (really 126.96.36.199)
This is the real commit message that was supposed to go in 188.8.131.52.
* Define SLOT-VALUE and SET-SLOT-VALUE as known functions.
* Use &ENVIRONMENT in CONSTANTP and CONSTANT-FORM-VALUE calls in
* Add transforms for SLOT-VALUE and SET-SLOT-VALUE in addition to the
(define-modify-macro appendf (&rest lists) append)
needs the deftransforms as setf-expansion replaces the constant
Keep the compiler-macros around, since they catch the common cases
[a55628] by Nikodemus Siivola
184.108.40.206: thread-safe INTERN, EXPORT, &co
* Modifications to packages grab a global lock. INTERN is the only
We need a global lock instead of a per-package lock because eg.
Since races should be rare we use a spinlock to avoid making a
Interrupt safety? Probably no. It's likely that you can wedge the