Changelog for reactive-banana-0.8.0.0
Changelog for the reactive-banana package
version 0.8.0.0
- A new module
Reactive.Banana.Primexports primitive combinators that you can use to implement your own FRP library with a different API. - The push-driven implementation in
Reactive.Banana.Primnow has the performance characteristics of an actual push-driven implementation. Some work has gone into optimizing constant factors as well. However there is still no garbage collection for dynamically created events and behaviors. - The
accumEandaccumBcombinators evaluate their state to WHNF to avoid a space leak. (Fixes issue #52). On the other hand,Behaviorvalues are evaluated on demanded, i.e. only when required by the apply combinator<@>or similar. - Recursion between events and behaviors should now work as advertised. (Fixed issue #56).
- The deprecated
liftIONowfunction has been removed. - The type of the
changesfunction now indicates that the new Behavior value is only available in the context ofreactimate. A variantreactimate'makes this explicit. - The module
Control.Event.Handlernow exports theAddHandlertype, which is now anewtype. The moduleReactive.Banana.Frameworks.AddHandlerhas been removed.
version 0.7.1.0
- Deprecate the
liftIONowfunction in favor ofliftIO.
version 0.7.0.0
- Dynamic event switching. Combinators are now available in the module
Reactive.Banana.Switch. - Rename
NetworkDescriptiontoMoment, add class constraintFrameworks t. - No longer compiles with the JavaScript backend of the Utrecht Haskell compiler.
- Change the
changescombinator to be less useful.
version 0.6.0.0
- Can now be compiled with the JavaScript backend of the Utrecht Haskell compiler.
- The push-driven implementations needs the
UseExtensionsflag to work. This flag is enabled by default. - Minor module reorganization.
version 0.5.0.0 -- announcement
This update includes numerous changes, in particular a complete overhaul of the internal implementation. Here a partial list.
- Add
collect,spillandunionWithcombinators to deal with simultaneous events. - Remove general
Monoidinstance forEventto simplify reasoning about simultaneous events. - Add
initialandchangescombinators that allow you to observe updates toBehavior. Remove theReactive.Banana.Incrementalmodule. - Rename most modules,
- Change type singaturs: The main types
Event,BehaviorandNetworkDescriptionnow carry an additional phantom type.
version 0.4.3.1
- Model implementation of
accumEnow has the intended semantics.
version 0.4.3.0
- Change semantics:
IOactions from insidereactimatemay now interleave as dictated by your event-based framework (issue #15). - Fix bug: compiling a network twice no longer fails due to lingering global state (issue #16).
- Change type: remove
Typeableconstraint frominterpretandinterpretAsHandler. - Misc: Remove the
BlackBoardapplication from the repository.
version 0.4.2.0
- Change type: remove
Typeableconstraint fromfromAddHandler. - Misc: the
Vaultdata type gets its own package. - Misc:
reactive-banana-wxnow compiles properly with cabal. - Add some more examples to the
reactive-banana-wxpackage.
version 0.4.1.0
- Add
<@>operator for more convenience when usingapply. - Add support for value recursion to the
NetworkDescriptionmonad. - Add many examples to
reactive-banana-wx.
version 0.4.0.0 -- announcement
- Add function
fromPollto obtain behaviors from mutable data. - Change name:
runis now calledactuate. - Add derived data type
Discrete. - Add function
interpretAsHandler.
version 0.3.0.0 -- announcement
- change: event networks are now first-class values, you can
pauseorrunthem. - change type:
AddHandlernow expects a way to unregister event handlers. - add example
RunPause.hs
version 0.2.0.0 -- announcement
- change: now implements proper semantics as pioneered by Conal Elliott
- model implementation for semantics
- push-driven implementation for efficiency
- add example
SlotMachine.hs
version 0.1.0.0
- initial release