Skip to content

Releases: typelevel/cats-effect

v3.2.9

18 Sep 05:16
v3.2.9
4b42b0f
Compare
Choose a tag to compare

This is the fourteenth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

The only change in this release (from 3.2.8) is a minor bugfix which affects Semaphore. In particular, under certain circumstnaces, fibers awaiting permits could end up indefinitely stuck awaiting wake-up. This could happen whenever multiple fibers were awaiting and the releasing fiber was canceled while notifying the awaiters.

User-Facing Pull Requests

Thank you so much!

v2.5.4

17 Sep 23:51
v2.5.4
6900aee
Compare
Choose a tag to compare

This is the seventeenth major release in the Cats Effect 2.x lineage. It is fully binary compatible with all 2.x.y releases.

The primary change in this release is a new feature: tracing support for delay and defer! This is something that Cats Effect 3 has supported for some time now, but it was never supported in CE2 for various reasons. In implementing this feature, we also backported the thunk acquisition fix from Cats Effect 3, which works around some of the changes in Scala 3's encoding of by-name parameters.

User-Facing Pull Requests

Very special thanks to all of you!

v3.2.8

07 Sep 22:00
v3.2.8
7dc4aaa
Compare
Choose a tag to compare

This is the thirteenth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

This release reverts the changes to the priority queue implemented in cats.effect.std.PQueue, namely it follows other standard libraries in the choice that FIFO semantics are not necessarily respected when elements are tied in terms of priority.

Furthermore, this release brings several bug fixes for corner cases and performance improvements to the Cats Effect runtime support for detecting and guarding against scala.concurrent.blocking actions (calling Await.result on scala.concurrent.Future or calling unsafeRunSync() on the compute runtime).

User-Facing Pull Requests

We hope you enjoy this release. Thank you.

v3.2.7

04 Sep 02:45
v3.2.7
5a79be7
Compare
Choose a tag to compare

This is the twelfth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

User-Facing Pull Requests

  • #2298PQueue respects FIFO for elements at the same priority (@SystemFw)

Thank you so much!

v3.2.6

17 Sep 23:21
v3.2.6
3b73eb8
Compare
Choose a tag to compare

This release was made in error. It is identical to 3.2.5.

v3.2.5

28 Aug 20:09
v3.2.5
670a184
Compare
Choose a tag to compare

This is the eleventh major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

This release fixes a regression in the work-stealing fiber scheduler. In addition, it reverts a change to the Async#fromPromise and IO.fromPromise signatures which was source-incompatible in numerous common scenarios due to limitations in Scala's type inference.

User-Facing Pull Requests

Thank you!

v3.2.4

28 Aug 00:27
v3.2.4
Compare
Choose a tag to compare

Update: This release introduced a regression in the work-stealing thread pool. This regression is fixed in 3.2.5, and it is strongly recommended that users not depend on 3.2.4.

This is the tenth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

User-Facing Pull Requests

Thank you so very much, all of you!

v3.2.3

16 Aug 22:48
v3.2.3
d6817ff
Compare
Choose a tag to compare

This is the ninth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

Notable Changes

The main new feature of this release is the support for programmatically generating IO runtime tracing information through the IO.trace constructor, courtesy of @alexandrustana.

As always, this Cats Effect 3 release brings important bug-fixes and performance improvements. Namely, an oversight in the implementation of the improved par operators from the 3.2.2 release, which could lead to nonterminating code in the face of concurrent errors, has been successfully identified and fixed.

Furthermore, a surprising Scala 3 regression which pertains to the conversion process of => A thunks to () => A (Function0) instances, and its effect on IO.delay constructor tracing was identified by @armanbilge. An elegant cross-platform solution has been implemented, which ultimately resulted in bringing the regressed performance of Scala 3 thunks back to the expected Scala 2 levels of performance.

We thank our tireless contributors for their outstanding work and we hope that you enjoy this release.

User-Facing Pull Requests

Special thanks to each and every one of you! You are all awesome!

v3.2.2

06 Aug 20:35
v3.2.2
Compare
Choose a tag to compare

This is the eighth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.2.x release.

Notable Changes

This release brings Cats Effect 3 tracing exception enhancement to match the exception augmentation behavior of Cats Effect 2. Essentially, any raised or caught Exception inside the Cats Effect 3 runtime is augmented. This allows higher level error recovery combinators to still have access to an Exception enhanced with IO tracing information, instead of the initial CE3 behavior where only unhandled exceptions were augmented.

This release also brings important bug fixes and library improvements. The cats.effect.unsafe.implicits.global IORuntime instance initialization behavior has been relaxed from a fatal error to a System.err warning message. The Scala.js runtime polyfill discovery process has been improved to handle tricky cases in environments such as jsdom. This environment has also been added to the Cats Effect test matrix and tested continuously in the CI.

Last but not least, this release increases the ScalJS version to 1.7.0.

User-Facing Pull Requests

Special thanks to each and every one of you! You are all awesome!

v2.5.3

05 Aug 18:54
v2.5.3
Compare
Choose a tag to compare

This is the sixteenth major release in the Cats Effect 2.x lineage. It is fully binary compatible with all 2.x.y
releases.

This release deprecates IO.suspend and SyncIO.suspend in favor of IO.defer and SyncIO.defer respectively. This helps bring the Cats Effect 2 syntax closer to the new naming used in Cats Effect 3, which should aid the migration. Scalafix rewrite rules are also available.

User-Facing Pull Requests

  • #2169 Add IO.defer, SyncIO.defer, deprecate IO.suspend, SyncIO.suspend and add scalafix migrations (@vasilmkd)
  • Bring library versions up to date in documentation (@djspiewak)