STMX is a high-performance Common Lisp library for composable Transactional Memory (TM), a concurrency control mechanism aimed at making concurrent programming easier to write and understand. Instead of traditional lock-based programming, one programs with atomic memory transactions: if a memory transaction returns normally it is committed. If it signals an error, it is rolled back. Transactions can safely run in parallel in different threads, are re-executed from the beginning in case of conflicts or if consistent reads cannot be guaranteed, and effects of a transaction are not visible from other threads until committed. This gives freedom from deadlocks, automatic rollback on failure, and aims to resolve the tension between granularity and concurrency.
|Tags||Lisp concurrency Threads transactions memory Libraries hardware accelerated|
|Licenses||LGPL (with lisp clarifications)|
|Operating Systems||Unix-like Mac OS X Windows|
Release Notes: This release adds support for hardware memory transactions. They are much faster than classic software-only ones, but require a CPU with Intel TSX (Transactional Synchronization Extensions) and currently work only on 64-bit SBCL.
Release Notes: This release added SB-TRANSACTION, a library for using Transactional Synchronization Extensions (TSX) i.e. hardware memory transactions provided by the new Intel Core i5 4570, i5 4670, and i7 4770. This library currently requires a 64-bit SBCL compiler. Support for ECL was also added, and memory allocation was reduced to the same level as SBCL on all supported systems. A rare but serious bug affecting read consistency was fixed.
Release Notes: This release adds support for ABCL (Armed Bear Common Lisp). Performance was further improved.
Release Notes: Performance was further improved.
Release Notes: Performance was improved.