dejafu/concurrency/CHANGELOG.markdown
2017-11-05 01:53:22 +00:00

6.4 KiB

Release Notes

All notable changes to this project will be documented in this file.

This project is versioned according to the Package Versioning Policy, the de facto standard Haskell versioning scheme.

1.2.2.0

Control.Monad.Conc.Class

  • A new IsConc type (and toIsConc, fromIsConc functions), where a value of type IsConc m a can only be constructed if m has a MonadConc instance. Its STM type is IsSTM (STM m). (#144)

  • The provided transformer instances now use the modifyCRefCAS_ of the underlying monad, rather than the default definition in terms of modifyCRefCAS.

Control.Monad.STM.Class

  • A new IsSTM type (and toIsSTM, fromIsSTM functions), where a value of type IsSTM m a can only be constructed if m has a MonadSTM instance. (#144)

1.2.1.2

Control.Monad.Conc.Class

  • Fixes an infinite loop introduced for the IO instance of MonadConc in forkWithUnmask and forkOnWithUnmask in 1.2.1.1 (#134).

1.2.1.1

Control.Monad.Conc.Class

  • The IO instance of MonadConc now names threads with GHC.Conc.labelThread, so thread names now appear in debugging traces of normal execution.

1.2.1.0

Control.Concurrent.Classy.Async

  • New named-thread variants of the async* functions: asyncN, asyncOnN, asyncWithUnmaskN, and asyncOnWithUnmaskN (#125).

1.2.0.0

Control.Monad.STM.Class

  • MonadSTM now has a MonadPlus constraint.
  • The orElse and retry functions have been promoted to top-level definitions, and are aliases for mplus and mzero.

1.1.2.1

Changed

  • The isEmptyMVar function is now implemented using tryReadMVar instead of a combination of tryTakeMVar and putMVar. It no longer modifies the contents of the MVar and can no longer block.

Miscellaneous

  • There is now a changelog.

1.1.2.0

Control.Concurrent.Classy.Async

  • New functions:
    • uninterruptibleCancel function, which is cancel inside an uninterruptible mask.
    • replicateConcurrently function, which performs an action many times in separate threads.
    • concurrently_, mapConcurrently_, forConcurrently_, and replicateConcurrently_ functions, which discard the result of the non-_ version.
  • New instances:
    • Semigroup instance for Concurrently when built with base 4.9.
    • Monoid instance for Concurrently.

Control.Monad.Conc.Class

  • The mask_ and uninterruptibleMask_ functions from Control.Monad.Catch are now re-exported.

Changed

  • The cancel and the withAsync functions now block until the Async action terminates, to match changes in the main async package.

Miscellaneous

  • Every definition, class, and instance now has a Haddock "@since" annotation.

1.1.1.0

Miscellaneous

  • The async-dejafu package has been pulled into this package as the Control.Concurrent.Classy.Async module. async-dejafu is now deprecated.

1.1.0.0

Control.Monad.Conc.Class

  • The MonadConc class now defines tryReadMVar, a non-blocking version of readMVar akin to tryTakeMVar.
  • The MonadConc class no longer defines _concMessage, there is no alternative provided, it is just gone.

1.0.0.0

Initial release. Go read the API docs.