Projects / STMX

STMX

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
Licenses
Operating Systems
Implementation
Translations

Recent releases

  •  04 Sep 2013 20:51

    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.

    •  04 Jul 2013 01:05

      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.

      •  09 Jun 2013 21:37

        Release Notes: This release adds support for ABCL (Armed Bear Common Lisp). Performance was further improved.

        •  09 May 2013 00:53

          Release Notes: Performance was further improved.

          •  05 May 2013 17:04

            Release Notes: Performance was improved.

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.