mirror of
https://github.com/haskell-effectful/effectful.git
synced 2024-11-22 22:14:21 +03:00
5.9 KiB
5.9 KiB
effectful-core-2.5.1.0 (????-??-??)
- Add
passthrough
toEffectful.Dispatch.Dynamic
for passing operations to the upstream handler withininterpose
andimpose
without having to fully pattern match on them.
effectful-core-2.5.0.0 (2024-10-23)
- Add
plusEff
(specialized version of<|>
) toEffectful.NonDet
and makeemptyEff
andsumEff
generate better call stacks. - Explicitly define
setByteArray#
andsetOffAddr#
in thePrim
instance ofRef
forprimitive
< 0.9.0.0. - Bugfixes:
OnEmptyRollback
strategy of theNonDet
effect is no longer broken.
- Breaking changes:
- Remove
restoreEnv
function fromEffectful.Dispatch.Static.Primitive
since it was broken. - Base
Effectful.Exception
onControl.Exception
instead of thesafe-exceptions
library for consistency with providedMonadThrow
andMonadCatch
instances.
- Remove
effectful-core-2.4.0.0 (2024-10-08)
- Add utility functions for handling effects that take the effect handler as the
last parameter to
Effectful.Dispatch.Dynamic
. - Add utility functions for handling first order effects to
Effectful.Dispatch.Dynamic
. - Improve
Effectful.Labeled
, addEffectful.Labeled.Error
,Effectful.Labeled.Reader
,Effectful.Labeled.State
andEffectful.Labeled.Writer
. - Add
throwErrorWith
andthrowError_
toEffectful.Error.Static
andEffectful.Error.Dynamic
. - Add
HasCallStack
constraints where appropriate for better debugging experience. - Add a
SeqForkUnlift
strategy to support running unlifting functions outside of the scope of effects they capture. - Add
Effectful.Exception
with appropriate re-exports from thesafe-exceptions
library. - Bugfixes:
- Ensure that a
LocalEnv
is only used in a thread it belongs to. - Properly roll back changes made to the environment when
OnEmptyRollback
policy for theNonDet
effect is selected. - Fix a bug in
stateM
andmodifyM
of thread localState
effect that might've caused dropped state updates (#237).
- Ensure that a
- Breaking changes:
localSeqLend
,localLend
,localSeqBorrow
andlocalBorrow
now take a list of effects instead of a single one.Effectful.Error.Static.throwError
now requires the error type to have aShow
constraint. If this is not the case for some of your error types, usethrowError_
for them.ThrowError
operation from the dynamic version of theError
effect was replaced withThrowErrorWith
.stateEnv
andmodifyEnv
now take pure modification functions. If you rely on their old forms, switch to a combination ofgetEnv
andputEnv
.runStateMVar
,evalStateMVar
andexecStateMVar
now take a strictMVar'
from thestrict-mutable-base
package.
effectful-core-2.3.1.0 (2024-06-07)
- Drop support for GHC 8.8.
- Remove inaccurate information from the
Show
instance ofErrorWrapper
. - Add
Effectful.Provider.List
, generalization ofEffectful.Provider
. - Respect
withFrozenCallStack
used by callers ofsend
. - Support exchange of effects between the environment of the handler and the
local one via
localSeqLend
,localLend
,localSeqBorrow
andlocalBorrow
fromEffectful.Dispatch.Dynamic
.
effectful-core-2.3.0.1 (2023-11-13)
- Prevent internal functions from appending call stack frames to handlers.
effectful-core-2.3.0.0 (2023-09-13)
- Deprecate
withConcEffToIO
. - Make
withEffToIO
take an explicit unlifting strategy for the sake of consistency with unlifting functions fromEffectful.Dispatch.Dynamic
and easier to understand API. - Add support for turning an effect handler into an effectful operation via the
Provider
effect. - Add
runErrorWith
andrunErrorNoCallStackWith
toEffectful.Error.Dynamic
andEffectful.Error.Static
. - Add support for having multiple effects of the same type in scope via the
Labeled
effect.
effectful-core-2.2.2.2 (2023-03-13)
- Allow
inject
to turn a monomorphic effect stack into a polymorphic one. - Use C sources only with GHC < 9.
- Force inlining of
bracket
early to work around excessive inlining problem with GHC 9.6 (https://gitlab.haskell.org/ghc/ghc/-/issues/22824).
effectful-core-2.2.2.1 (2023-01-12)
- Stop using the internal library because of bugs in
stack
.
effectful-core-2.2.2.0 (2023-01-11)
- Add
withSeqEffToIO
andwithConcEffToIO
toEffectful
. - Use strict
IORef
andMVar
variants where appropriate. - Make
inject
work with effect stacks sharing a polymorphic suffix.
effectful-core-2.2.1.0 (2022-11-09)
- Add
localSeqLift
andlocalLift
toEffectful.Dispatch.Dynamic
.
effectful-core-2.2.0.0 (2022-10-24)
- Change
PrimState
forEff
fromRealWorld
toPrimStateEff
to prevent thePrim
effect from executing arbitraryIO
actions viaioToPrim
. - Deprecate
(:>>)
as GHC can't efficiently deal with type families. - Add support for the
Alternative
andMonadPlus
instances forEff
via theNonDet
effect.
effectful-core-2.1.0.0 (2022-08-22)
- Include the
e :> localEs
constraint in theEffectHandler
to allow more flexibility in handling higher order effects. - Do not include internal stack frames in
throwError
fromEffectful.Error.Dynamic
.
effectful-core-2.0.0.0 (2022-08-12)
- Make storage references in the environment immutable.
- Remove
checkSizeEnv
andforkEnv
fromEffectful.Dispatch.Static.Primitive
. - Add internal versioning of effects to prevent leakage of
unsafeCoerce
. - Make
interpose
andimpose
properly interact with other handlers.
effectful-core-1.2.0.0 (2022-07-28)
- Change
SuffixOf
toSharedSuffix
and make it behave as advertised. - Add
raiseWith
.
effectful-core-1.1.0.0 (2022-07-19)
- Don't reset the
UnliftStrategy
toSeqUnlift
inside the continuation ofwithEffToIO
. - Add
withReader
.
effectful-core-1.0.0.0 (2022-07-13)
- Initial release.