Portability layer for atomic operations like compare-and-swap (CAS)
  • Common Lisp 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-29 23:14:39 +02:00
docs Doc update 2025-08-21 11:02:44 +02:00
.gitattributes Update license to zlib. 2019-06-22 09:07:42 +02:00
atomics-test.asd Update linkage 2025-08-11 21:14:30 +02:00
atomics.asd Update linkage 2025-08-11 21:14:30 +02:00
atomics.lisp clamiga: map onto the implementation's own CAS primitives 2026-08-29 20:54:44 +02:00
documentation.lisp Document CL-Amiga support 2026-08-29 23:14:39 +02:00
LICENSE Update copyright 2023-07-03 19:01:22 +02:00
README.mess Document CL-Amiga support 2026-08-29 23:14:39 +02:00
tests.lisp clamiga: map onto the implementation's own CAS primitives 2026-08-29 20:54:44 +02:00

## About Atomics
This is a library for access to atomic operation primitives such as compare-and-swap. It aims to be a rather thin layer over what the implementations offer.

## Currently Supported Implementations
The following implementations are fully or partially supported:

- Allegro
- CCL
- ECL
- LispWorks
- Mezzano
- SBCL
- CMUCL
- CL-Amiga

For a detailed report on the capabilities, please see the documentation of the respective operators. If you think that an implementation should be added, or better supported, please file an ''issue''(https://shinmera.com/project/atomics/issues) or a pull request with the necessary information.

If an operation is unsupported, an error will be signalled on usage of the operator. You can conditionalise your code with the following features for automated support detection:

- ``:atomics-cas-car`` for conses
- ``:atomics-cas-svref`` for simple-vectors
- ``:atomics-cas-symbol-plist`` for symbol-plists
- ``:atomics-cas-symbol-value`` for the global symbol-value
- ``:atomics-cas-slot-value`` for slot-value on standard objects
- ``:atomics-cas-memref`` for foreign memory
- ``:atomics-cas-struct-slot`` for structure slot accessors
- ``:atomics-cas-special-var`` for dynamic variables
- ``:atomics-cas-custom`` for support of custom CAS form definitions