Skip to content

Releases: typelevel/fs2

v0.10.0-RC1

10 Jan 16:10
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

v0.10.0-M5

04 Aug 14:55
Compare
Choose a tag to compare
v0.10.0-M5 Pre-release
Pre-release
  • Upgraded to cats-effect 0.4 and cats 1.0.0-MF
  • Added retry and attempts to Scheduler

v0.10.0-M4

18 Jul 13:57
Compare
Choose a tag to compare
v0.10.0-M4 Pre-release
Pre-release
  • Changed flatMap on Stream so that recursive flatmaps on singleton streams run in constant memory.
  • Restored Pipe.Stepper and Pipe2.Stepper (which no longer leak memory).
  • Ref#setSync now correctly sets the value before completing the returned task.
  • Fixed an intermittent bug with rare stream shapes where an IllegalArgumentException was thrown while running a stream with async uncons calls.
  • Removed the fs2.time object and moved its methods to Scheduler.
  • Added support for shutting down Schedulers on the JVM, where each scheduler is backed by a thread pool.

v0.10.0-M3

12 Jul 13:45
Compare
Choose a tag to compare
v0.10.0-M3 Pre-release
Pre-release
  • Fixed a memory leak in FreeC by removing ViewL caching
  • (Temporarily) removed Pipe.Stepper and Pipe2.Stepper due to an unsolved memory leak
  • Added various methods to Segment -- flatMap, flatten, mapConcat, flattenChunks