Releases: typelevel/fs2
v0.10.1
For cats 1.0.1 and cats-effect 0.8.
This is the second release in the 0.10 series. This release is fully backwards compatible with 0.10.0.
Fixes include:
- Fixed race condition in
Scheduler.effect.delayCancellable(#1078 #1077) - Added
fs2.async.once(#1079) - Added new micro-site (#1074)
Thanks to contributors:
v0.10.0
For cats 1.0.1 and cats-effect 0.8.
This is the first official release of the 0.10 series, featuring a direct dependency on cats and cats-effect, significant performance improvements, and a much simpler API.
If upgrading from FS2 0.9, be sure to check out the migration guide for 0.10.
For those that were tracking 0.10 milestones, this build is completely compatible with 0.10.0-RC2.
v0.10.0-RC2
For cats 1.0.1 and cats-effect 0.8.
This is the second release candidate for 0.10.0. The API is considered stable at this point and there should be no further API changes (barring a major issue found before the final release).
See the migration guide if you are upgrading from 0.9.
Changes since RC1 include:
v0.10.0-RC1
For cats 1.0.1 and cats-effect 0.8.
This is the first release candidate for 0.10.0. The API is considered stable at this point and there should be no further API changes (barring a major issue found before the final release).
Update: #1070 was found (major issue!!). As a result, Stream#translate is broken in both RC1 and M11. If you need this, you should stick with M10 until RC2 is available.
Changes since M11 include:
- Changed
Segment#{foreach,foreachChunk}to return the segment result instead of unit. - Removed
unconsAsyncandAsyncPulland reimplemented combinators impacted by these removals (#1056 #1057 #1059 #1061 #1066) - Removed introduction of scopes on pull-to-stream boundaries, resulting in higher performance (#1055)
v0.10.0-M11
For cats 1.0.0 and cats-effect 0.7.
Update: #1070 was found (major issue!!). As a result, Stream#translate is broken in both RC1 and M11. If you need this, you should stick with M10 until RC2 is available.
- Renamed all of the
runmethods onStreamtocompile.something(see issue links or 0.10 migration guide for more details) (#1017 #1028) - Better support for interruption (#1019)
- New
ByteBufferbackedChunk(#1032) - Fixed bug in
Chunk#mapwhich ignored offset and size in array chunks (#1033) - Added
Eq[Chunk[A]]instance - Fixed a referential transparency bug in
unconsAsync(#1037) - Fixed a few bugs in
Segmentwhere taking or splitting an infinite stream could fail to exit despite exit condition being met (#1039 #1043 #1045) - Fixed a stack overflow error in a stream which alternates between uncons and flatMap (#1035)
- Changed the signature of
Segment#{scan,fold}so that the segment result is returned (#1040)
v0.10.0-M10
0.10.0-M9
For cats 1.0.0-RC1 and cats-effect 0.5.
*>has been removed in favor of>>in order to restore stack safety of recursive pulls (#1001)- Renamed
failtoraiseErrorto be consistent with cats - Renamed
onErrortohandleErrorWithto be consistent with cats - Changed
Chunkto no longer be a subtype ofSegment. Usec.toSegmentorSegment.chunk(c)to lift aChunkto aSegment, or usePull.outputChunkif outputting a single chunk. Further, all operations onSegmentwhich force evaluation of one or more values have been put behind the.forcemethod -- e.g.,s.force.uncons1,s.force.foreach. (#1012) - Made sync instances for
StreamandPullavailable implicitly - Reimplemented
Refso that it is no longer backed by an actor and always has a value, resulting in huge performance improvements (#1006) - Introduced
Promise, replacing the functionality unset refs provided - Fixed a bug in
joinwhere resources were sometimes released too early (#968) - Optimized scope management, resulting in no need for
run*Syncvariants --run,runFold, etc. all require only aSync[F]instance now (#974) - Added
fs2.StreamAppfor defining an application in terms ofStream(#982) - Added
Stream.fromIterator(#978) - Added
Stream#repartition(#985) - Added
unconsAlltoSegment - Added
Queue#{peek1, timedPeek1}(#996) - Improved performance of
Chunk#toArray(#979) - Fixed memory leaks in
compressandfile(#999, #992) - Renamed
groupBytogroupAdjacentBy(#1004) - Fixed OSGi manifests
Special thanks to contributors:
v0.10.0-M8
For cats 1.0.0-RC1 and cats-effect 0.5.
- Fixed a memory leak reported by @epellizzer where scopes were not being properly garbage collected (#962)
- Fixed a performance issue in
Stream#flatMapreported by @grindvoll (#958) - Renamed
>>to*>in order to be consistent with cats - Fixed a bug where
runSyncwas accidentally requiring anEffectinstance instead of aSyncinstance - Added
Segment.unfoldChunk - Changed
Segment#runso that it requires the output type to beNothinginstead ofUnit. Usedrainto drop the output values fs2.async.Refconstructor is now private -- usefs2.async.reforfs2.async.refOfmethods to allocate a ref- Added
scopemethod toStreamfor manually inserting scope boundary - Added
streamNoScopemethod toPullfor converting aPullto aStreamwithout inserting a scope boundary - Miscellaneous internal cleanup
v0.10.0-M7
- Changed
translateso that it no longer requires an implicitEffect[F]instance and removedtranslateSync. Modifiedrunmethods onStreamso that they require anEffect[F]and introduced weaker variants (runSync,runFoldSync,runLogSync, etc) that only require aSync[F]and fail if they encounter anUnconsAsyncstep. - Fixed bug in
dropThroughwhere an extra element was dropped if the last element of a segment failed the predicate (#946) - Fixed bug where
zipand other stream interleaving combinators could result in errors indicating scope is already closed (#945) - Fixed bug in
hashwhere chunk offsets were ignored - from @SystemFw (#944) - Added ScalaDoc regarding implicit cats instances for
Stream- from @jdnavarro (#942) - Added
Segment#flatMapResult- from @avakhrenev (#940) - Fixed typos in ScalaDoc - from @BenFradet (#938)
- Fixed
NullPointerExceptioninSegment#flatMap- from @tscholak (#937) - Added
Stream#observe1as an alias forevalMap(o => f(o).as(o)) - Changed behavior of
scanso that it eagerly emits values and matches rx specification - from @avakhrenev (#931) - Replaced internal primitive uses of
Array.ofDimwithnew Array[..]to avoid class manifest locking - Performance improvements in
fs2.udp- from @sbuzzard (#927)
v0.10.0-M6
- Added timeout support to many async data structures (
Ref#timedGet,Queue#{timedEnqueue1,timedDequeue1,timedDequeueBatch},Semaphore#{timedDecrement,timedDecrementBy}) - Added various methods to
SchedulerincludingfixedRateandfixedDelay - Added
Scheduler#effectAPI for working with time delayed effects - Added
fs2.io.file.watchAPI for watching files/directories for changes