Welcome
Welcome from the creators of Scala STM. 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
-
2017 Nov 4 – ScalaSTM version 0.8 published for 2.13.0-M2
- (major) 2016 Nov 17 – ScalaSTM version 0.8
released, including
- added 2.12 build
- small
TxnLocalimprovements - correctness fix for
TArray[Long]andAtomicArray.ofLong
-
(major) 2014 Apr 17 – ScalaSTM version 0.7 published for 2.11
-
2014 Apr 7 – ScalaSTM version 0.7 published for 2.11.0-RC4
-
2014 Mar 20 – ScalaSTM version 0.7 published for 2.11.0-RC3
-
2014 Mar 7 – ScalaSTM version 0.7 published for 2.11.0-RC1
-
2014 Feb 4 – ScalaSTM version 0.7 published for 2.11.0-M8
-
2014 Jan 12 – ScalaSTM version 0.7 published for 2.11.0-M7
-
2013 Sep 15 – ScalaSTM version 0.7 published for 2.11.0-M5
-
2013 Jul 28 – ScalaSTM version 0.7 published for 2.11.0-M4
-
2013 May 22 – ScalaSTM version 0.7 published for 2.11.0-M3
-
2013 Jan 12 – ScalaSTM version 0.7 published for 2.11.0-M1
- (major) 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
- (major) 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
- (major) 2012 Feb 2 – ScalaSTM version 0.5
released, including
- Java convenience layer
scala.concurrent.stm.japi.STM
- Java convenience layer
- (major) 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
-
(major) 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
- (major) 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.
- (major) 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. - (major) 2010 Dec 6 – ScalaSTM version 0.1 released, a library-based software transactional memory (STM) for Scala. Get it…
