Changelog for extensible-effects-concurrent-0.29.1
Changelog for extensible-effects-concurrent
0.29.1
- Add more constraints to
Embeds
- Improve the
CallbackServer
- Add
LogWriterEffects
- Rewrite
HandleLogWriter
so that the instance types have to be effects. TL,DR; This allows shorter type signatures than before.
0.29.0
- Remove the reply type parameter from
HasPdu
- Make a new constraint
Embeds
that replacesEmbedProtocol
- Rename
EmbedProtocol
toHasPduPrism
- Add
EmbeddedPduList
toHasPdu
- Add embedded protocols example
- Rename and change
ServesProtocol
toHasEndpointReader
0.28.0
- Simplify
Protocol.Observer
registration API - Rewrite
Protocol.Observer.Queue
API - Add the
ProcessId
to theProcessDown
message
0.27.1
- Introduce
HasProcesses
andHasSafeProcesses
everywhere
0.27.0
- Improve/fix
EmbedProtocol
type class - Add a this like parameter to the methods of
EffectfulServer
- Rename
IsPdu
toHasPdu
- Remove
GenServer
fromEffectfulServer
and put it into a new module:Control.Eff.Concurrent.Protocol.CallbackServer
- Rename
Control.Eff.Concurrent.Protocol.Request
to(...).Wrapper
0.26.1
- Documentation fixes
Supervisor
: Don't start a new process when a process for a child-id exists
0.26.0
- Introduce
ReplyTarget
- Change the
sendReply
signature to accept aReplyTarget
0.25.1
- Add
castSingleton
andcallSingleton
, which use theEndpointReader
andEmbedProtocol
type class. - Change
toObserver
to accept an Endpoint of a protocol that embedsObserver x
- Add
sendEmbeddedReply
- Add
toEmbeddedEndpoint
andfromEmbeddedEndpoint
- Change
StatefulServer
class definition to not addProcesses
to the effects by default - Add forgotten re-exports to
Concurrent
- Fix the
NFData
instance forPdu (Observer o)
- Put the
Pdu
data family inside of a new type classIsPdu
0.25.0
- Improve effect type aliases and module structure, read the details here.
0.24.3
- Add
EmbedProtocol
related functiontoEmbeddedOrigin
0.24.2
- Add more
EmbedProtocol
related functions:embedReplySerializer
embedRequestOrigin
- Improve documentation for
EffectfulServer
- Improve documentation for
StatefulServer
0.24.1
- Add more
EmbedProtocol
tuple instances (4-tuple, 5-tuple) - Make
Effectful.Server
instances composable (See theGenServerTests
for an example) more details in a seperate file - Add
ProcessTitle
- every process now must have a short title text for logging - Add
ProcessDetails
- every process can callUpdateProcessDetails
to update its infos about the current state of it for debugging and error tracing purposes. - Add
GetProcessState
to retreive theProcessDetails
for some other process.
0.24.0
- Get rid of the
PrettyTypeShow
constraint inTangible
- Get rid of
LogWriterEffects
and the necessity for someUndecidableInstances
that came with it - Add
Server
module forApi
handling via type classes- Add
Stateless
- Add
GenServer
- Add
- Reimplement
Supervisor
0.23.0
- Include the process id in the console and trace log renderer
- Add a process supervisor similar to Erlang/OTPs simple_one_for_one supervisor.
- Fix
SingleThreadedScheduler
process linking bug: A process shall not be interrupted when a linked process exits normally. - Rename ExitReason to Interrupt and make the interrupt and exit handling API more robust.
0.22.1
- Fix duplicated content in RFC-5424 log message renderer
0.22.0
-
Remove
SchedulerProxy
ruins -
Make message sending strict:
Ensure that every message sent from one process to another is reduced to normal form by the sender.
- Remove all lazy message selectors
- Introduce a newtype wrapper
StrictDynamic
aroundDynamic
and export only a constructor that deeply evaluates the value to rnf before converting it to aDynamic
-
Change the
Server
API for better system vitality: -
Add
callWithTimeout
: Acall
overIO
with aTimeout
parameter -
Add more efficient log renderer:
renderLogMessageBodyNoLocation
renderRFC5424NoLocation
0.21.2
- Fix copy-paste error: Remove the
LogsTo
constraint fromwithAsyncLogWriter
0.21.1
-
Remove dependency to the
socket
andsocket-unix
packages- they are marked as broken by in NixOS
- the code based on
network
is much shorter
-
Rewrite the UDP log writer to use
network
-
Rewrite the UnixSocket log writer to use
network
0.21.0
-
Add more log message renderers
- Multiple extra time stamp formats
- RFC3164
-
Add IO log writer for unix domain sockets, e.g.
/dev/log
-
Add IO log writer for UDP
-
Extract and simplify the async logger
-
Extract and simplify the file log writers
0.20.0
- Rewrite Logging API so that usage is not as bloated
0.19.1
- Fix Travis build
- Fix typos
- Fix README
0.19.0
- Adapt to extensible-effects-concurrent 5.0.0.1
- Update to Stackage LTS-13.13
- Improve NIX expressions
- Rewrite the logging API
- Improve Documentation
- Add Examples
0.18.1
- Fix inappropriate
LinkedProcessCrashed
interrupt when a process exits withNotRecovered ProcessFinished
0.18.0
- Split-up and replace
spawnLinkObservationQueue
with a simpler (but more verbose) alternative
0.17.0
- Rename misspelled
spawnLinkObserverationQueue
tospawnLinkObservationQueue
0.16.1
- Export
ObserverRegistry
constructors for custom event registration handling
0.16.0
API Stabilization and cleanup release with major API changes.
-
Replace
Control.Eff.Concurrent.Api.Server
withControl.Eff.Concurrent.Api.Server2
and renameControl.Eff.Concurrent.Api.Server2
toControl.Eff.Concurrent.Api.Server
-
Rewrite
Observer
and related modules likeObserver.Queue
- Remove all type classes
- Rely on
Server2
- Remove
CallBackObserver
- Remove the observer support code in
Server2
-
Remove the
SchedulerProxy
parameter and tell library users to enableAllowAmbiguousTypes
andTypeApplications
- Remove dependent support code like
HasScheduler
- Remove dependent support code like
0.15.0
- Add
Api
Request
andReply
types - Add
RequestOrigin
which can be used inServer2
based Api servers to queue and defer replies toCall
s
0.14.3
- Export the functions introduced in 0.14.2 in
Control.Eff.Concurrent
.
0.14.2
- Add
Server2
functions to spawn and link - Add a
Server2
function to defer the reply to aCall
s called:handleCallsDeferred
0.14.1
- Add Server2 based observation handling with
handleObservations
0.14.0
- Fix/Improve Server2
0.13.2
- Add
ProcessFinished
- Add
tryUninterrupted
- Add simpler
Server2
0.13.1
- Remove misguided
MonadCatch
constraints in theObservationQueueReader
functions, and useInterrupts
instead
0.13.0
- Fix bad constraints in
Queue
observer
0.12.2
- Fix some compiler warnings
0.12.1
- Fix build errors with GHC-8.6
0.12.0
- Add implicit SchedulerProxy
- Add flushMessages
- Add receiving with timeout
- Add process
Link
ing andMonitoring
. - Make the distinction between recoverable and non-recoverable exit explicit in
the type parameter of
ExitReason
, and introduceinterruptXXXX
functions in addition toshutdownXXXX
functions, to throw recoverable exits. - Merge
ShutdownRequest
andExitReason
- Rename
receiveLoopSuchThat
toreceiveSelectedLoop
- Pass the exit reason to the callback passed to
receiveSelectedLoop
- Rename
receiveMessage
toreceiveAnyMessage
- Rename
receiveAnyLoop
toreceiveAnyLoop
- Pass the exit reason to the callback passed to
receiveAnyLoop
- Rename
receiveMessage
toreceiveAnyMessage
- Rename
receiveMessageAs
toreceiveMessage
- Rename
receiveLoop
toreceiveLoop
- Pass the exit reason to the callback passed to
receiveAnyLoop
- Remove
SchedulerShuttingDown
- Improve logging for exceptions in
ForkIOScheduler
- Fix a bug in the logging system that caused all log filters to be forgotten
when using unliftings such as
MonadBaseControl
,MonadThrow
,MonadCatch
andMonadMask
- Fix the scheduler shutdown to not always run into the cancellation timeout
0.11.1
- Fix a compilation error
0.11.0
- Change the return type of
spawnCallbackObserver
fromBool
toApiServerCmd
0.10.0
- Re-introduce a Logs Effect but keep the LogWriter Reader
- Get rid of the LogWriterProxy and the implicit argument
- Make logging stricter: require log message to be NFData instances
0.9.2
- Try to adapt the dependency versions to make hackage happy again
0.9.1
- Add smart constructors for
MessageSelector
- Remove
ReceiveMessage
Process
action - Rename
ReceiveMessageSuchThat
toReceiveSelectedMessage
- Improve some Show instances, e.g. ProcessId
- Rewrite Logging API:
- Vastly simplified API
0.9.0
- Make
ForkIOScheduler
faster and more robust - Add
ExitReason
- Add
ProcessState
- Add
ShutdownRequest
type - Rewrite logging to be a
Reader
of aLogWriter
- Remove pure logging, the
Logs...
constraint must be accompanied byLifted IO
(orMonadIO
) in many log functions most prominentlylogMsg
- Add a
lmDistance
field inLogMessage
- Add
increaseLogMessageDistance
anddropDistantLogMessages
using the newlmDistance
field - Add a newtype for the argument to selective receives:
MessageSelector
- Add a
makeReference
function toProcess
which will return process local uniqueInt
s - Rename
spawnServer
tospawnServerWithEffects
and add a simpler version ofspawnServerWithEffects
calledspawnServer
- Make all
ApiHandler
handler callbacks optional (by changing the type toMaybe ...
) ApiHandler
must now return anApiServerCmd
.- Add
ApiServerCmd
which allows handler functions to leave to server loop without exiting the process - Fix
Observer.Queue
- Rename fields in
ApiHandler
- Add smart constructors for
ApiHandler
0.8.0
- Add selective receive
- Complete
Api.Server
rewrite (simplification) - Move examples to
./examples/
and add executables to the cabal file
0.7.3
- Add
withFrozenCallStack
to exposed functions - Add
ObserverState
type alias
0.7.2
- Add
ObservationQueue
utility - Fix missing re-exports from
Control.Eff.Concurrent.Api.Client
inControl.Eff.Concurrent
introduced in recent versions
0.7.1
- Improve call-stack support in log messages
- Expose
setLogMessageTimestamp
andsetLogMessageThreadId
0.7.0
- Remove the parameter from
closeLogChannelAfter
that had the optional: last-log-message-before-channel-closes
0.6.4
- Add
whereIsServer
0.6.3
- Add
ServerReader
type alias
0.6.2
- Fix bad
containers
version boundary
0.6.1
- Improve Experimental Nix Expressions
0.6.0
- Rewrite Logging
- Improve Experimental Nix Expressions
0.5.0.0
- Switch to
extensible-effects
version3.1.0.0
- Bump to stackage LTS-12.9
- Add
Control.Eff.Log.MessageFactory
- Add
Control.Eff.Log.Message
0.4.0.0
- Switch to
extensible-effects
version3.0.0.0
- Improve single threaded scheduler to be more space efficient
- Add some strictness annotations
- Add
Control.Eff.Loop
with (hopefully) constant spaceforever
andreplicateM_
- Add
Control.Eff.Concurrent
, a module that conveniently re-exports most library functions.
0.3.0.2
- Improve single threaded scheduler such that the main process can return a value
0.3.0.1
- Fix a race condition in the SchedulerSession shutdown
- Improve the interactive scheduler session API
- Rename
SchedulerVar
->SchedulerSession
- Remove
submitPrint
0.3.0.0
- Add support for running and interacting with a scheduler and it's processes from IO, for example from ghci
- Rename
yieldProcess
toexecuteAndResumeOrExit
- Add an actual
yieldProcess
, that behaves likeyield
- Change the return type of function to
()
where applicable to avoid all these_ <- sendMessage...
orvoid $ sendMessage
dances. - Add a simple logging observer:
spawnLoggingObserver
- Removed
Control.Eff.Interactive
- Removed most functions in
Control.Eff.ExceptionExtra
- Make
sendMessage
and the reply incall
strict with respect to the message payload
0.2.0.3
- Improve 'Api' documentation
- Improve
LogChannel
API - Reorganize unit tests
- Hopefully tune travis ci test parameter enough to get a stable build result
0.2.0.2
- Fix minor
stack upload
complaints about the cabal file
0.2.0.1
- Simplify IO Exception handling in
ForkIoScheduler
, - Add many unit tests for exception, exit and shutdown
0.2.0.0
- Add
Spawn
toProcess
- Merge
MessagePassing
andProcess
- Add initial test suite
- Fix shutdown error in
ForkIoScheduler
- Rename
Dispatcher
toScheduler
- Add
receiveAnyLoop
function toProcess
- Change
Api.Server
serve
to loop instead of handling just one request - Allow combining multiple
ApiHandler
such that one process can handle multiple APIs
0.1.3.0
- Rename and split
GenServer
toApi
,Api.Client
,Api.Server
- Add
registerServer
,callRegistered
andcastRegistered
- Remove the variant of
cast
that returns a boolean
0.1.2.2
- Try to fix version bounds for hackage
0.1.2.1
- Add more documentation
- Simplify Scheduler API
- Make more exception safe
0.1.2.0
- Add Observer module
- Implement Exception handling
- Improve Scheduler shutdown
- Add logging support via the logging-effect library
0.1.1.0
- Substantial API reorganization
- Rename/Move modules
0.1.0.1
- Stack/Cabal/Github Cosmetics
- Travis build job
0.1.0.0
- Initial Version