Scala 2.13.0 is here!

#1

We are delighted to announce the availability of Scala 2.13!

The 2.13.0 release improves Scala in the following areas:

  • Collections: Standard library collections have been overhauled for simplicity, performance, and safety. This is the centerpiece of the release.
  • Standard library: Future is faster and more robust. Elsewhere, useful classes and methods have been added.
  • Language: Literal types, partial unification, by-name implicits, more.
  • Compiler: 5-10% faster, deterministic output, improved optimizer.

To learn more, see the release notes on GitHub.

download

4 Likes
#2

some bullets (from the RC1 notes) were missing from the initially published 2.13 release notes. they are now included, as follows:

simple string matcher (s interpolator can also be used in pattern matches), added tapEach , added @unused , added converters between functions and extractors, PartialFunction overloads andThen , Cloneable/Serializable are just type aliases now, ControlThrowable never suppresses, deprecated universal Equiv , deprecated @usecase , Symbol literals deprecated, Unicode arrows deprecated, postfixOps syntax disabled by default, value-discard warnings can be suppressed via type ascription to Unit

see the notes themselves for links to details

1 Like
#3

A great many minor edits and improvements have been made to the release notes.

And, the following bullets are new, in the “Language changes” section, under “Adjustments”:

  • Don’t assume unsound type for ident/literal patterns. (#6502)
    • Matches of the form case x@N involve calling equals, so it was unsound to type x as N.type.
    • Consider rewriting as case x:N.type.
  • Make extractor patterns null safe. (#6485)
    • null is treated as no match.
#4

And, this was missing from the collections section:

  • Added .updatedWith and updateWith methods to Maps
    • updatedWith is on immutable.Map, updateWith is on mutable.Map. (#7320, #7517)
    • These methods allow modifying a map entry based on its current value.