This is the third release candidate before 1.0. The only planned changes before the final release are documentation and an upgrade to cats-1.3.0 when it is released.
List of Changes
New data types:
Major behavioral / breaking changes:
- #278: New encoding of
Resource
- #282: Change laws for
Bracket
andConcurrent
to support auto-cancelable and streaming types - #290: Changes to concurrency and cancellation:
Concurrent#cancelable
is no longer a primitive.- Replace
IO[Unit]
withF[Unit]
as the cancellation token, aliased toCancelToken[F]
IO#unsafeRunCancelable
now returns aCancelToken[IO]
to support backpressure
- #298: Introduce
SyncIO
, which becomes return type inEffect#runAsync
andConcurrentEffect#runCancelable
- #296:
Sync
extendscats.Defer
- #289, #307: Separation of concerns in
Timer
:Timer#shift
moved to newContextShift
Timer#clockMonotonic
andTimer#clockRealtime
moved ontoTimer#clock
Timer.deriveIO
is removed.- Added derived
Timer
instances for various monad transformers overF[_]
.
- #309: Remove
Effect#runSyncStep
- #311: Make
IO
auto-cancelable after async boundaries and removeIO#onCancelRaiseError
Added features:
- #266: Update
implicitNotFound
error message inTimer
- #269: Add
Resource.fromAutoCloseable
- #249: Add
Applicative[Fiber[F, ?]]
instance givenConcurrent[F]
- #305: Backpressure on
IO
cancellation tokens to support sequenced finalizers - #289: Improved support for blocking APIs with
ContextShift#evalOn
Docs:
- #263: Replace
Task
's mentions withIO
fromMVar
docs - #264, #283: Cleanup to documentation for
Ref
- #292, #300: Typo fixes
- #300: Document stack safety as another use case for
IO.shift
- #303: Remove redundant
Parallel[IO, IO]
instance fromDeferred
docs - #302: Document
SyncIO
- #304: List related projects
- #287: New guide to concurrency basics
Bug fixes and chores:
- #274: Test against Oracle JDK 10
- #273: Build with sbt-1.1.6
- #275: Build with scala-2.12.6, scalatest-3.0.5
- #293: Remove deprecated procedure syntax
- #294: Build for scala-2.13.0-M4 and with cats-1.2.0
Getting Involved
You can always help with:
- Feedback by joining us on Gitter
- Re-tweet the [release announcement]
- Give us a star on GitHub 🙂
Special Thanks
This release was made possible by: @Avasil, @bthuillier, @adamw, @sullis, @aoiroaoino, @alexandru, @kubokoz, @vaslabs, @LukaJCB, @xuwei-k, @mpilquist, @dscleaver, @ericlurla, @gvolpe, @pchlupacek, @rossabaker, @ChristopherDavenport and several other reviewers and commenters.
Thanks to all those involved!