Changelog of @hackage/polysemy-conc 0.13.0.0

0.12.0.0

Breaking

  • Move Scoped to Polysemy and polysemy-resume, keeping them here with a deprecation pragma.

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