Changelog of @hackage/auto 0.4.1.0

0.4.1.0

https://github.com/mstksg/auto/releases/tag/v0.4.1.0

  • Adapted to more consistent semantic versioning scheme, where the third number is a new update, and the fourth number is reserved for bug fixes.

  • Control.Auto.Blip: foldrB and foldlB' officially deprecated in their current forms. From 0.5, they will have corrected functionality and a new type signature. The current functionality doesn't really make sense, and was a mistake during their implementation. You can begin using the new versions now, with:

    foldrB  = foldr  (merge f) mempty
    foldlB' = foldl' (merge f) mempty
    
  • Control.Auto.Effects: New "sealing" mechanisms for underlying Reader: sealReaderMVar and sealReaderM. sealReaderMVar allows things like "hot swapping" configuration data; at every step, the Auto asks for its environment from an MVar, that could be changed/modified from a different thread with new configuration data. sealReaderM is a more general/potentially dangerous version where the environment is retrieved through an arbitrary action in the underlying monad.

  • Control.Auto.Run: New powerful combinator throughT, letting you "lift" an Auto to run over/through any Traversable. Can replace during, perBlip, accelOverList, etc. The specialized versions will remain more performant, though.

  • Control.Auto.Run: In the spirit of the hip and current Foldable Traversable Proposal, overTraversable added to complement overList, so you can now "stream" Autos over IntMaps, Maybes, Consts...or any Traversable. Not replacing overList completely, though, for performance reasons.

  • Control.Auto.Blip: Removed unnecessary Monad constraints on became_, became', noLonger_, and noLonger'.

  • Control.Auto.Interval: Bug fix on holdFor and holdFor_, where they had the potential to overflow Int and begin "holding" forever when given specifically malformed input.

  • Control.Auto.Time: Performance boost on accelOverList by using strict Writer over lazy.

0.4.0.0

https://github.com/mstksg/auto/releases/tag/v0.4.0.0

  • Bug fix version reverting breaking changes from 0.3.0.0. 0.4.x should be able to run all 0.2.x programs with full backwards compatibility.
  • Control.Auto.Effects: Reverted back to lazy StateT and WriterT, because of situations where auto cannot resolve fixed points for recursive bindings.
  • Control.Auto.Blip: forkB renamed to splitB to prevent confusion with "fork", usually used in Haskell to refer to concurrency. Also anticipating adding concurrency-based Autos, so this is a move to clear the way for any possible conflicts.

0.3.0.0

https://github.com/mstksg/auto/releases/tag/v0.3.0.0

DEPRECATED: Please use 0.4.0.0!

  • Control.Auto.Effects: Breaking change: switched to strict StateT and WriterT.
  • Control.Auto.Effects: Added readerA and writerA, for convenience in "creating" Autos under ReaderT and WriterT; also added stateA and accumA for completeness.

0.2.0.6

https://github.com/mstksg/auto/releases/tag/v0.2.0.6

  • Control.Auto.Run: As a part of an effort to provide integration with disciplined effectful streaming, introduced streamAutoEffects and toEffectStream, which convert Auto m a b's to streams of effects in m that can be processed and manipulated and integrated with any ListT-compatible library, like pipes. See documentation for more details. These were also added to the exports of Control.Auto.
  • Control.Auto.Interval: New Auto holdJusts, which stretches the last seen "on"/Just value over the duration of a "off"/Nothing interval.
  • Documentation fixes to emphasize auto's focus on value streams, not effect streams, in contrast to pipes, conduit, etc.
  • Version restrictions on some packages relaxed on profunctors, semigroups, and base.

0.2.0.5

https://github.com/mstksg/auto/releases/tag/v0.2.0.5

  • Control.Auto.Process.Random: Added combinators and sealers dealing for working with an underlying Rand or RandT monad.
  • Because of this, committed to adding MonadRandom as a dependency.

0.2.0.4

https://github.com/mstksg/auto/releases/tag/v0.2.0.4

  • Control.Auto: Added unserialize, delay, and delay_ to Control.Auto's exports.
  • Control.Auto.Blip: New blip stream manipulator: forkB, which forks a blip stream into to separate ones based on whether or not the emitted values match a predicate.
  • Control.Auto.Time: Added a generalized version of stretch, stretchAccumBy which allows access to the "skipped" inputs during the stretched periods, as well as the ability to control the outputs during the stretched periods.

0.2.0.3

https://github.com/mstksg/auto/releases/tag/v0.2.0.3

  • Control.Auto.Collection: Bug for dynZipF fixed, where newly added Autos would overwrite ones alreay stored.
  • Control.Auto: fromInterval added to Control.Auto's exports.

0.2.0.2

https://github.com/mstksg/auto/releases/tag/v0.2.0.2

DEPRECATED: Please use 0.2.0.3!

  • Control.Auto.Collection: dynZipF and dynMapF, implicit-serialization dynamic collections.

0.2.0.1

https://github.com/mstksg/auto/releases/tag/v0.2.0.1

  • Control.Auto.Effects: catchA added to Control.Auto.Effects, allowing explicit catching of runtime exceptions thrown in underlying IO.

0.2.0.0

https://github.com/mstksg/auto/releases/tag/v0.2.0.0

  • First official release. No backwards-incompatible changes until 0.3.0.0.