Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [bfb19d] Maximize Restore History

1.0.7.19: SB-EXT:COMPARE-AND-SWAP

* New macro SB-EXT:COMPARE-AND-SWAP provides a supported interface to
compare-and-swap functionality.

* New info-type :FUNCTION :STRUCTURE-ACCESSOR allows us to map from
defstruct slot-accessor names to defstruct descriptions.

* Add :CAS-TRANS slot keyword to DEFINE-PRIMITIVE object, and the
compiler machinery needed to support compare and swap on primitive
object slots.

* 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
functions.

* Tests.

Tested on x86/Linux & x86/Darwin, x86-64/Darwi, and PPC/Darwin.

Nikodemus Siivola Nikodemus Siivola 2007-07-15

added tests/compare-and-swap.impure.lisp
changed src/code/array.lisp
changed src/code/defstruct.lisp
changed src/code/late-extensions.lisp
changed src/code/target-defstruct.lisp
changed src/code/target-thread.lisp
changed src/compiler/generic/objdef.lisp
changed src/compiler/generic/vm-ir2tran.lisp
changed src/compiler/generic/vm-macs.lisp
changed src/compiler/x86-64/array.lisp
changed src/compiler/x86-64/cell.lisp
changed src/compiler/x86/array.lisp
changed src/compiler/x86/cell.lisp
changed src/compiler/fndb.lisp
changed src/compiler/fun-info-funs.lisp
changed src/compiler/globaldb.lisp
changed src/compiler/info-functions.lisp
changed src/pcl/cache.lisp
changed tests/array.pure.lisp
changed NEWS
changed base-target-features.lisp-expr
changed make-config.sh
changed package-data-list.lisp-expr
changed version.lisp-expr
tests/compare-and-swap.impure.lisp Diff Switch to side-by-side view
Loading...
src/code/array.lisp Diff Switch to side-by-side view
Loading...
src/code/defstruct.lisp Diff Switch to side-by-side view
Loading...
src/code/late-extensions.lisp Diff Switch to side-by-side view
Loading...
src/code/target-defstruct.lisp Diff Switch to side-by-side view
Loading...
src/code/target-thread.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/objdef.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-ir2tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-macs.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/array.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/cell.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/array.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/cell.lisp Diff Switch to side-by-side view
Loading...
src/compiler/fndb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/fun-info-funs.lisp Diff Switch to side-by-side view
Loading...
src/compiler/globaldb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/info-functions.lisp Diff Switch to side-by-side view
Loading...
src/pcl/cache.lisp Diff Switch to side-by-side view
Loading...
tests/array.pure.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...
base-target-features.lisp-expr Diff Switch to side-by-side view
Loading...
make-config.sh Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...