Scala 2.13 release candidate offers up new language refinements
Scala lang combines object-oriented programming and functional programming into one high-level language. Now, Scala v2.13 is almost here. The first 2.13 release candidate is out and available for your perusal. Scala 2.13.0-RC1 adds collection changes, improved JDK 12 compatibility, compiler changes, and much more.
As we await the release of Scala 2.13, welcome the first 2.13 release candidate: Scala 2.13.0-RC1.
Presenting the first v2.13 release candidate: Scala 2.13.0-RC1. This new milestone adds refinements and improvements to the language in preparation for the next big release. It also changes the license to Apache 2.0.
All libraries available for RC1 are added here to the release notes on GitHub. Users can subscribe to tickets and find out when they are available.
Lightbend software engineer Seth Tisue writes about the recent changes on GitHub. According to him, here is what’s new:
- Integrate converters from
- Make unified collection serialization opt-in instead of opt-out (#7624)
CollisionProofHashMap, a mutable hashmap that degrades to red-black trees in the worst case (#7633)
LazyListto always evaluate elements in order, and to have lazy empty-or-not status (#7558)
- Improved performance of small
- Add immutable
SeqMapimplemented via a customized
- Create trait
- Accept underscore as numeric literal separator (#6989)
- Eta-expand 0-arity method if expected type is
x op ()now parses as
- More precise inference for overloaded methods when arguments types align (#7631)
- Disallow repeated param except in method signature (#7399)
- By-name implicits: Align detection of implicit recursion with the SIP (#7368)
- Enforce explicit return type for macros (#6942)
- Extension methods of overloads are themselves overloaded (#7896)
- Emit mixin forwarders as bridges to avoid needing generic signatures (#7843)
- Upgrade to ASM 7 for improved JDK 12 compat (#7384)
- Make object fields static, and move post-super init to
- More capable inliner (#7133)
- Usability: compiler suggests possible names in
Take a look at the previous pre-release milestones on GitHub and the significant changes they made to the language.
- #5603: Parallel collections removed from scala-library and changed to a separate module.
- #5790: Unbundles scala-library-all, scala-swing, scala-parser-combinations.
- #5683: Removal of deprecations
- #5698: Eliminates non-matching overloads early for partial function literals
- #5548: Fixed a bug issue and adds Java 1.6 and Java 1.8
- #5830: Several cut internal dependencies in preparation for additional modules.
- #5903: REPL renovations, including cleaner internal implementation, multi-line editing, and syntax highlighting.
- Added supports for literal types and improves the compiler, adding better support for typelevel programming.
- The standard library now adheres to the compact1 profile, and reduces the deployment footprint of Scala applications.
-Xsource:2.13is enabled by default
- Improved and simplified collections library for more efficient user code compiling, including transformation methods no longer have an implicit
- Simplified type hierarchy.
scala.Seqis an alias for
- Simplified views
- New immutable hash set and hash met implementation.
- Deprecated collections removed