Skip to content

2.1.8

Compare
Choose a tag to compare
@kyri-petrou kyri-petrou released this 24 Aug 10:29
· 172 commits to series/2.x since this release
e5341e1

This release brings a re-implemented ZSTM runtime that significantly improves performance under contention, enables multi-threading for Scala Native 0.5.x, squashes some minor bugs, and makes a few things run a little bit faster. And it is fully binary and source-compatible with the rest of 2.x release!

Highlights

ZSTM performance improvements

The performance of ZSTM under heavy contention has regressed over time due to various bug fixes. In this release, we reimplemented the internal runtime of ZSTM in order to significantly improve its performance under heavy contention (up to 800% improved throughput in some benchmarks!) all while achieving similar or better performance under no contention. For more details check out #9081

Scala Native multi-threading support

In the previous release, we updated Scala Native to v0.5.x but as we mentioned in the release notes, the ZIO runtime was not yet multi-threading capable. In this release, we threw most of the existing Scala Native code (which was not thread-safe) and changed it to use (mostly) the same code as the JVM artifacts. Users that currently use ZIO with Scala Native 0.5.x must enable multi-threading for Scala Native in their builds by removing nativeConfig ~= { _.withMultithreading(false) }.

Warning

We're aware of an issue when using zio-test on MacOS ARM64 when the debug compilation mode is used (default). If you come across any issues, try setting the mode to releaseFast or releaseFull (see here for an example)

What's Changed

Other changes (CI, dependencies and documentation)