Welcome
Welcome from the Scala STM Expert Group. We’ve built a lightweight software transactional memory for Scala, inspired by the STMs in Haskell and Clojure while taking advantage of Scala’s power and performance.
ScalaSTM is a single JAR with no dependencies, and includes
- An API that supports multiple STM implementations
- A reference implementation based on CCSTM
- Scalable concurrent sets and maps (with fast snapshots) that can be used inside or outside transactions
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
- 2012 Dec 21 — ScalaSTM version 0.7 released, including
- debugger support via TxnDebuggable
- cooperation with Scala 2.10’s thread pools
- additional convenience methods on
Ref,Ref.View, andTxnLocal
- 2012 Oct 16 — 0.7-SNAPSHOT: Improved support for interactive debuggers via
scala.concurrent.stm.TxnDebuggable
- 2012 Oct 16 — Maven artifacts are now published under the “org.scala-stm” group id (publishing to “org.scala-tools” will continue for current versions), and are now synced automatically with the Maven central repo
- 2012 Jul 22 — ScalaSTM version 0.6 released, including
- enhancements to the Java convenience layer
- uses of
scala.actors.threadpool.TimeUnitreplaced byjava.util.concurrent.TimeUnit
- 2012 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…
