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.
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.
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,
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
see the notes themselves for links to details
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
- Consider rewriting as
- Make extractor patterns null safe. (#6485)
null is treated as no match.
And, this was missing from the collections section:
updateWith methods to
updatedWith is on
updateWith is on
mutable.Map. (#7320, #7517)
- These methods allow modifying a map entry based on its current value.
https://email@example.com/my-favorite-new-features-of-scala-2-13-standard-library-909a89b0da4 pointed out some missing things, now added:
Added in-place operations on mutable collections
flatMapInPlace, and others.
- These methods update the original collection in-place, rather than creating a new collection to hold the results.
Stepper, which is like
Iterator but supports efficient unboxed iteration, Java interop. (#7458)
- These methods safely handle the empty case. (#6574)
added to notes, in the collections section:
Alphanumeric method names
- All symbolic operators are now just aliases for descriptive alphanumeric method names.
++ (alias for
+: (alias for
:+ (alias for
appended), and so on.