Welcome
Welcome from the Scala STM Expert Group. We’re working on a lightweight software transactional memory for Scala, inspired by the STMs in Haskell and Clojure. Our target is inclusion in Scala’s standard library, but you can use our release today. We’d like your feedback.
ScalaSTM is a single JAR with no dependencies, and includes
- An API that supports multiple STM implementations
- A reference implementation based on CCSTM
ScalaSTM provides a mutable cell called a Ref. If you build a shared data structure using immutable objects and Ref-s, then you can access it from multiple threads or actors. No synchronized, no deadlocks or race conditions, and good scalability. Included are concurrent sets and maps, and we also have an easier and safer replacement for wait and notifyAll.
News
- 2011 Feb 2 — ScalaSTM version 0.5 released, including
- Java convenience layer
scala.concurrent.stm.japi.STM
- Java convenience layer
- 2011 Nov 9 — ScalaSTM version 0.4 released, including
CommitBarrier, support for group commit- STMBench7 benchmark support
- Better implementation selection
- 2011 Sep 5 — ScalaSTM 0.3 and 0.4-SNAPSHOT for Scala 2.9.1 released
- 2011 Jul 8 — 0.4-SNAPSHOT: STMBench7 support. See Benchmarking
- 2011 May 12 — ScalaSTM version 0.3 for 2.9.0 released
- 2011 May 8 — ScalaSTM version 0.3 for 2.9.0.RC4 released
- 2011 May 6 — ScalaSTM version 0.3 for 2.9.0.RC3 released
- 2011 Mar 26 — ScalaSTM version 0.3 released, a pure-Scala software TM library. Included
- Support for Scala 2.9.0.RC1
- Timeouts for
retry
- 2011 Feb 4 — 0.3-SNAPHOT: Bug fixes.
- 2011 Jan 15 — 0.3-SNAPHOT: Timeouts for
retry. See Waiting : Timeouts
- 2011 Jan 2 — 0.3-SNAPHOT: Bug fixes.
- 2010 Dec 27 — ScalaSTM version 0.2 released, a library-based software transactional memory (STM) for Scala. Included
- Performance improvements and bug fixes
- Better
TSet,TMapandTxnLocal - Transaction statistics
- 2010 Dec 16 — 0.2-SNAPSHOT: Bug fix for while-committing handlers (#3).
TxnLocalcan now be read and written from while-preparing and while-committing handlers.
- 2010 Dec 8 — 0.2-SNAPSHOT: Substantial performance improvements, especially for nested atomic blocks.
TMap.ViewandTSet.Vieware integrated with Scala collection class hierarchy.
- 2010 Dec 6 — ScalaSTM version 0.1 released, a library-based software transactional memory (STM) for Scala. Get it…
