packages feed

polysemy-conc-0.11.0.0: changelog.md

# 0.11.0.0

## Breaking

* Tweak the implementation of `Scoped` interpreters to allow changing higher-order interpreters.
  Slightly changes the signature of some of them.

# 0.10.0.0

## Breaking

* Add a parameter to `Scoped` that allows arbitrary data to be passed to the scoped interpreter via `scoped`.
* Remove the `resource` parameter from `Scoped`.

## Other

* Add `Queue.tryReadMaybe`, a variant of `readMaybe` that does not wait.
* Add variants of the combined `Scoped` interpreters in which the `Resumable` is inside the scope.
* Add `Semaphore`, abstracting `QSem` or `TSem`.
* Add `timeoutStop`, a variant of `timeout` that calls `Polysemy.Resume.stop`.
* Add `Lock`, a mutex effect.
* Add `withAsyncGated`, a variant of `withAsync` that requires the async action to signal the sync action to start.
* Add `Gate`, a synchronization point effect.
* Add variants of `subscribeWhile` and `subscribeLoop` that use `Gate` for synchronization and run in a new thread.
* Add pure interpreters for `Mask`.
* Add more variants of `subscribeLoop` that return matching elements.
* Add `Gates` to `ConcStack`.
* Add `rescope`, a reinterpreter for `Scoped` that may extend the scope parameters.

# 0.9.0.0

* Add the missing `MVar` combinators for `Sync` that bracket an action with `mask`.
* Export `Restoration`.
* Add `interpretProcessOutputLeft/Right`.

# 0.6.1.0

* Add `SyncRead`, a read-only variant of `Sync`.
* Change `withAsync` to use `finally` instead of `bracket`, since the latter causes `AsyncCancelled` to be masked,
  preventing the action from being cancelled unless it runs an interruptible action.

# 0.6.0.0

* Add `Resumable` support for `Scoped`.
* Add `Scoped` interpreters that allow the allocator to interpret additional effects used by the handler.

# 0.5.0.0

* Add `mask` effects.
* Add `Monitor`, an effect that repeatedly checks a condition and restarts a region when it is met.
* Add interpreter combinators for `Scoped`.
* Add a runner for the default `Conc` stack.

# 0.4.0.0

* Add `lock`, a combinator for protecting a region with a mutex.
* Add `scheduleAsync`, a combinator for running an action async that allows the handle to be used before the thread
  starts
* Change the default signal handler for `Interrupt` to `CatchInfo`, catching repeated signals.

# 0.3.0.0

* Change `Race.timeout` to take a `Sem` for the fallback instead of a pure value.
* Export all `Queue` constructors from `Polysemy.Conc.Queue`.
* Export all `Sync` constructors from `Polysemy.Conc.Sync`.
* Move all interpreters to `Polysemy.Conc.Interpreter`.

# 0.2.0.0
* Add `read*` constructors for `Sync`
* Add `subscribeWhile`, a combinator that consumes events until a condition is met
* Add looping combinators for `Queue`
* Add `retry`, a combinator that runs an action repeatedly until it returns `Right` or a timeout is hit
* Add `Scoped`, an effect for local resource scoping
* Add `withAsync`, a bracketing combinator that runs an async action while the main action runs
* Add `interpretAtomic`, a convenience interpreter for `AtomicState` that runs `runAtomicStateTVar`