Skip to content

Releases: typelevel/fs2

v0.10.1

05 Feb 23:39

Choose a tag to compare

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:

Thanks to contributors:

v0.10.0

31 Jan 00:12

Choose a tag to compare

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

24 Jan 16:55

Choose a tag to compare

v0.10.0-RC2 Pre-release
Pre-release

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:

  • Fixed ClassCastException as a result of using translate (#1070 #1073)

v0.10.0-RC1

10 Jan 16:10

Choose a tag to compare

v0.10.0-RC1 Pre-release
Pre-release

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 unconsAsync and AsyncPull and 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

03 Jan 18:50

Choose a tag to compare

v0.10.0-M11 Pre-release
Pre-release

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 run methods on Stream to compile.something (see issue links or 0.10 migration guide for more details) (#1017 #1028)
  • Better support for interruption (#1019)
  • New ByteBuffer backed Chunk (#1032)
  • Fixed bug in Chunk#map which 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 Segment where 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

19 Dec 22:59

Choose a tag to compare

v0.10.0-M10 Pre-release
Pre-release

For cats 1.0.0-RC2 and cats-effect 0.6.

  • Fixed memory leak in Promise#cancellableGet and hence anything built on it like merge (#1026 #1027)
  • Added type class instances for Segment (#1016)

Special thanks to contributors:

0.10.0-M9

06 Dec 03:31

Choose a tag to compare

0.10.0-M9 Pre-release
Pre-release

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 fail to raiseError to be consistent with cats
  • Renamed onError to handleErrorWith to be consistent with cats
  • Changed Chunk to no longer be a subtype of Segment. Use c.toSegment or Segment.chunk(c) to lift a Chunk to a Segment, or use Pull.outputChunk if outputting a single chunk. Further, all operations on Segment which force evaluation of one or more values have been put behind the .force method -- e.g., s.force.uncons1, s.force.foreach. (#1012)
  • Made sync instances for Stream and Pull available implicitly
  • Reimplemented Ref so 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 join where resources were sometimes released too early (#968)
  • Optimized scope management, resulting in no need for run*Sync variants -- run, runFold, etc. all require only a Sync[F] instance now (#974)
  • Added fs2.StreamApp for defining an application in terms of Stream (#982)
  • Added Stream.fromIterator (#978)
  • Added Stream#repartition (#985)
  • Added unconsAll to Segment
  • Added Queue#{peek1, timedPeek1} (#996)
  • Improved performance of Chunk#toArray (#979)
  • Fixed memory leaks in compress and file (#999, #992)
  • Renamed groupBy to groupAdjacentBy (#1004)
  • Fixed OSGi manifests

Special thanks to contributors:

v0.10.0-M8

01 Nov 15:23

Choose a tag to compare

v0.10.0-M8 Pre-release
Pre-release

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#flatMap reported by @grindvoll (#958)
  • Renamed >> to *> in order to be consistent with cats
  • Fixed a bug where runSync was accidentally requiring an Effect instance instead of a Sync instance
  • Added Segment.unfoldChunk
  • Changed Segment#run so that it requires the output type to be Nothing instead of Unit. Use drain to drop the output values
  • fs2.async.Ref constructor is now private -- use fs2.async.ref or fs2.async.refOf methods to allocate a ref
  • Added scope method to Stream for manually inserting scope boundary
  • Added streamNoScope method to Pull for converting a Pull to a Stream without inserting a scope boundary
  • Miscellaneous internal cleanup

v0.10.0-M7

13 Oct 21:26

Choose a tag to compare

v0.10.0-M7 Pre-release
Pre-release
  • Changed translate so that it no longer requires an implicit Effect[F] instance and removed translateSync. Modified run methods on Stream so that they require an Effect[F] and introduced weaker variants (runSync, runFoldSync, runLogSync, etc) that only require a Sync[F] and fail if they encounter an UnconsAsync step.
  • Fixed bug in dropThrough where an extra element was dropped if the last element of a segment failed the predicate (#946)
  • Fixed bug where zip and other stream interleaving combinators could result in errors indicating scope is already closed (#945)
  • Fixed bug in hash where 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 NullPointerException in Segment#flatMap - from @tscholak (#937)
  • Added Stream#observe1 as an alias for evalMap(o => f(o).as(o))
  • Changed behavior of scan so that it eagerly emits values and matches rx specification - from @avakhrenev (#931)
  • Replaced internal primitive uses of Array.ofDim with new Array[..] to avoid class manifest locking
  • Performance improvements in fs2.udp - from @sbuzzard (#927)

v0.10.0-M6

23 Aug 17:24

Choose a tag to compare

v0.10.0-M6 Pre-release
Pre-release
  • Added timeout support to many async data structures (Ref#timedGet, Queue#{timedEnqueue1,timedDequeue1,timedDequeueBatch}, Semaphore#{timedDecrement,timedDecrementBy})
  • Added various methods to Scheduler including fixedRate and fixedDelay
  • Added Scheduler#effect API for working with time delayed effects
  • Added fs2.io.file.watch API for watching files/directories for changes