BSD-3-Clause licensed
Maintained by [email protected]
This version can be pinned in stack with:stm-2.5.3.1@sha256:b93121e5fb0939cb7120322763079b425bab097e049abb35580ecb6ab6abccbe,2356

The stm Package Build Status

See stm on Hackage for more information.

Changes

Changelog for stm package

2.5.3.1 November 2023

  • Drop unused testcase inadvertently introduced in previous reversion

2.5.3.0 November 2023

  • Revert array-based reimplementation of TBQueue due to #76

2.5.2.1 September 2023

  • Eliminate reliance on undefined CPP behavior (#75)

2.5.2.0 September 2023

  • Fix strictness of stateTVar (#30)
  • Rewrite TBQueue to use a more-efficient array-based representation (#65)
  • newTBQueue 0 now fails as one would expect (#28)
  • Add capacityTBQueue (#61)
  • Add MArray TArray e IO instance
  • Use unlifted Array# for TArray (#66)

2.5.1.0 Aug 2022

  • Teach flushTBQueue to only flush queue when necessary
  • Introduce Control.Concurrent.STM.TMVar.writeTMVar
  • Add Semigroup and Monoid instances for STM

2.5.0.2 Dec 2021

  • Fix non-exhaustive patterns warning (#49)

  • Document particulars of effect-rollback of Control.Monad.STM.throwSTM (#32)

2.5.0.1 May 2020

  • Optimise implementation of peekTQueue and peekTBQueue to reduce probability of transaction conflicts.

2.5.0.0 Sep 2018

  • Removed alwaysSucceeds and always, GHC’s invariant checking primitives. (GHC #14324)

  • Add lengthTBQueue to Control.Concurrent.STM.TBQueue (gh-9)

  • Add stateTVar :: TVar s -> (s -> (a, s)) -> STM a combinator (gh-14)

  • Switched newTBQueue and newTBQueueIO to accept Natural as size (gh-17)

  • Switched signalTSemN and newTSem to accept Natural and Integer respectively (gh-17)


2.4.5.1 Sep 2018

  • Fix incorrect bookkeeping of write capacity in flushTBQueue (gh-9)

  • Avoid redundant writeTVars in flushTQueue to avoid unnecessarily invalidating other transactions (gh-6)

2.4.5.0 Feb 2018

  • Fix space leak in TBQueue (gh-2, GHC#14494)

  • Make signalTSem resilient against Int overflows (gh-4)

  • Make definition of readTQueue consistent with readTBQueue (gh-3, GHC#9539)

  • Add flushTQueue to Control.Concurrent.STM.TQueue (gh-1)

  • Add flushTBQueue to Control.Concurrent.STM.TBQueue (gh-1)

  • Add signalTSemN operation (gh-5)

2.4.4.1 Dec 2015

  • Add support for base-4.9.0.0

  • Drop support for GHC 6.12 / base-4.2

2.4.4 Dec 2014

  • Add support for base-4.8.0.0

  • Tighten Safe Haskell bounds

  • Add mkWeakTMVar to Control.Concurrent.STM.TMVar

  • Add @since-annotations

2.4.3 Mar 2014

  • Update behaviour of newBroadcastTChanIO to match newBroadcastTChan in causing an error on a read from the broadcast channel

  • Add mkWeakTVar

  • Add isFullTBQueue

  • Fix TChan created via newBroadcastTChanIO to throw same exception on a readTChan as when created via newBroadcastTChan

  • Update to Cabal 1.10 format

2.4.2 Nov 2012

  • Add Control.Concurrent.STM.TSem (transactional semaphore)

  • Add Applicative/Alternative instances of STM for GHC <7.0

  • Throw proper exception when readTChan called on a broadcast TChan

2.4 Jul 2012

  • Add Control.Concurrent.STM.TQueue (a faster TChan)

  • Add Control.Concurrent.STM.TBQueue (a bounded channel based on TQueue)

  • Add Eq instance for TChan

  • Add newBroadcastTChan and newBroadcastTChanIO

  • Some performance improvements for TChan

  • Add cloneTChan