https://github.com/mstksg/auto/releases/tag/v0.4.3.1
- Compatibility support for MonadRandom-0.5.
https://github.com/mstksg/auto/releases/tag/v0.4.3.0
- Control.Auto.Blip: New blip stream splitter
onEitherB
, which splits an incoming blip stream into two output streams based on whether the emitted items resolve toLeft
orRight
when applied to the splitting function.
https://github.com/mstksg/auto/releases/tag/v0.4.2.4
- Control.Auto.Blip: New blip stream splitter
onEitherB
, which splits an incoming blip stream into two output streams based on whether the emitted items resolve toLeft
orRight
when applied to the splitting function.
https://github.com/mstksg/auto/releases/tag/v0.4.2.3
- Control.Auto.Process.Random: Removed self-defeating
Seralize
constraint on the seed parameter ofsealRandom_
. - Control.Auto.Serialize: Fixed compiler warning on GHC 7.10 for redundant Applicative import.
https://github.com/mstksg/auto/releases/tag/v0.4.2.2
- Using the base-orphans library for a more sane compatibility layer than the previous method.
- Many documentation fixes including haddock reconfigurations on specific modules.
https://github.com/mstksg/auto/releases/tag/v0.4.2.1
DEPRECATED: Please use 0.4.2.2
!
- Added support for building with GHC 7.6.x.
https://github.com/mstksg/auto/releases/tag/v0.4.2.0
- Removed all upper bounds on dependencies except for base.
- Control.Auto.Blip: Companions to
emitJusts
andonJusts
added, forEither
:emitEithers
andonEithers
. Emit every item inputted, but fork them into one of two output blit streams based onRight
orLeft
properties. Only preserves blip semantics/makes sense if any given input'sRight
orLeft
ness is expected to be independent from the last received one. - Control.Auto.Blip: New "blip stream collapsers",
asMaybes
andsubstituteB
.asMaybes
turns a blip stream into a stream ofMaybe
s,Just
when something was emitted, andNothing
when not.substituteB
takes a regular stream and a blip stream, and outputs the values of the regular stream whenever the blip stream doesn't emit and the emitted value when it does --- basically a more powerful version offromBlips
, where the "default" value now comes from a stream instead of being always the same. - Control.Auto.Blip: New blip stream creator,
collectN
, which emits everyn
steps with the lastn
items received. - Control.Auto.Blip: New blip stream modifiers,
collectB
andcollectBs
.collectB
waits on two blip streams and emits after it has received something from both.collectBs
is likecollectN
, except emits after everyn
emitted values received with the pastn
emitted values. - Control.Auto.Collection: "Intervaled" counterparts to
mux
andmuxMany
,muxI
andmuxManyI
. They storeInterval
s instead ofAuto
s...and when theInterval
s turned "off", they are removed from the collection. - Control.Auto.Switch: A new "count-down" switcher,
switchIn
, which acts a bit like(-->)
and(-?>)
, except the switch happens deterministically after a pre-set given number of steps. Act like the firstAuto
for a given number of steps, and then act like the second ever after. Basically a direct implementation of the commononFor n a1 --> a2
idiom.
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
andfoldlB'
officially deprecated in their current forms. From version0.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
andsealReaderM
.sealReaderMVar
allows things like "hot swapping" configuration data; at every step, theAuto
asks for its environment from anMVar
, 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" anAuto
to run over/through anyTraversable
. Can replaceduring
,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 complementoverList
, so you can now "stream"Auto
s overIntMap
s,Maybe
s,Const
s...or anyTraversable
. Not replacingoverList
completely, though, for performance reasons. -
Control.Auto.Blip: Removed unnecessary
Monad
constraints onbecame_
,became'
,noLonger_
, andnoLonger'
. -
Control.Auto.Interval: Bug fix on
holdFor
andholdFor_
, where they had the potential to overflowInt
and begin "holding" forever when given specifically malformed input. -
Control.Auto.Time: Performance boost on
accelOverList
by using strictWriter
over lazy.
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 all0.2.x
programs with full backwards compatibility. - Control.Auto.Effects: Reverted back to lazy
StateT
andWriterT
, because of situations where auto cannot resolve fixed points for recursive bindings. - Control.Auto.Blip:
forkB
renamed tosplitB
to prevent confusion with "fork", usually used in Haskell to refer to concurrency. Also anticipating adding concurrency-basedAuto
s, so this is a move to clear the way for any possible conflicts.
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
andWriterT
. - Control.Auto.Effects: Added
readerA
andwriterA
, for convenience in "creating"Auto
s underReaderT
andWriterT
; also addedstateA
andaccumA
for completeness.
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
andtoEffectStream
, which convertAuto m a b
's to streams of effects inm
that can be processed and manipulated and integrated with anyListT
-compatible library, like pipes. See documentation for more details. These were also added to the exports ofControl.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.
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
orRandT
monad. - Because of this, committed to adding MonadRandom as a dependency.
https://github.com/mstksg/auto/releases/tag/v0.2.0.4
- Control.Auto: Added
unserialize
,delay
, anddelay_
toControl.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.
https://github.com/mstksg/auto/releases/tag/v0.2.0.3
- Control.Auto.Collection: Bug for
dynZipF
fixed, where newly addedAuto
s would overwrite ones alreay stored. - Control.Auto:
fromInterval
added toControl.Auto
's exports.
https://github.com/mstksg/auto/releases/tag/v0.2.0.2
DEPRECATED: Please use 0.2.0.3
!
- Control.Auto.Collection:
dynZipF
anddynMapF
, implicit-serialization dynamic collections.
https://github.com/mstksg/auto/releases/tag/v0.2.0.1
- Control.Auto.Effects:
catchA
added toControl.Auto.Effects
, allowing explicit catching of runtime exceptions thrown in underlyingIO
.
https://github.com/mstksg/auto/releases/tag/v0.2.0.0
- First official release. No backwards-incompatible changes until
0.3.0.0
.