scheduler-2.0.0: CHANGELOG.md
# 2.0.0
* Switch type parameter of `Scheduler` from monad `m` to state token `s`. Which
also means that constraints on many functions got tighter (i.e. `MonadPrim`, `MonadPrimBase`)
* Remove `m` type parameter for `SchedulerWS`, since it can only work in `IO` like monad anyways.
* Switch type parameter of `Batch` from monad `m` to state token `s`.
* Swap order of arguments for `replicateWork` for consistency
* Add `replicateWork_` that is slightly more efficient than `replicateWork`
# 1.5.0
Despite that the major part of the version was bumped up, this release does not include
any breaking changes, only improvements and additions.
* Addition of a batch concept with `BacthId` which:
* makes it possible for a `Scheduler` to be "resumable" with the help of `waitForBatch`,
`waitForBatch_` and `waitForBatchR`
* allows to cancel batches prematurely while keeping the results and not terminating the
scheduler itself. This can be done with new functions: `cancelBatch` and
`cancelBatchWith`. In order to check for batch status `getCurrentBatchId` and
`hasBatchFinished` functions can be used.
* Addition of `GlobalScheduler` that can be reused throughout the codebase, thus reducing
initialization overhead.
# 1.4.2
* Add `withTrivialScheduler`
* Add `Results` data type as well as corresponding functions:
* `withSchedulerR`
* `withSchedulerWSR`
* `withTrivialSchedulerR`
# 1.4.1
* Add functions: `replicateWork`
# 1.4.0
* Worker id has been promoted from `Int` to a `newtype` wrapper `WorkerId`.
* Addition of `SchedulerWS` and `WorkerStates` data types. As well as the
related `MutexException`
* Functions that came along with stateful worker threads:
* `initWorkerStates`
* `workerStatesComp`
* `scheduleWorkState`
* `scheduleWorkState_`
* `withSchedulerWS`
* `withSchedulerWS_`
* `unwrapSchedulerWS`
* Made internal modules accessible, but invisible.
# 1.3.0
* Make sure internal `Scheduler` accessor functions are no longer exported, they only
cause breakage.
* Make sure number of capabilities does not change through out the program execution, as
far as `scheduler` is concerned.
# 1.2.0
* Addition of `scheduleWorkId` and `scheduleWorkId_`
# 1.1.0
* Add functions: `replicateConcurrently` and `replicateConcurrently_`
* Made `traverseConcurrently_` lazy, thus making it possible to apply to infinite lists and other such
foldables.
* Fix `Monoid` instance for `Comp`
* Addition of `Par'` pattern
# 1.0.0
Initial release.