Scala 2.13 progress report


#1

The new 2.13 collections have now been merged onto the 2.13.x scala/scala branch, in https://github.com/scala/scala/pull/6498. This is the single most important pull request in the entire 2.13 cycle.

The compiler bootstraps with the new collections and compiler performance is on par with what it was before.

We’ll release 2.13.0-M4 once the lowest tiers of the 2.13 community build are green (we’re working directly with library authors on this) and once we have enough documentation and Scalafix rewrites ready that we can reasonably ask library authors to publish for M4.

There are already a number of green or very-nearly-green projects in the 2.13 community build, so I’d say that’s going fine.

We had originally hoped to go straight from M4 to RC1, but we concluded that probably isn’t realistic, so we expect there will be an M5.

Seth Tisue / Scala team / Lightbend, Inc.


#2

Thanks, Seth. This means we’re now in the feature freeze phase of the 2.13 cycle. Simply put, any new code PRs must have a corresponding ticket in scala/bug or scala/scala-dev that’s scheduled for the upcoming milestone. Please reference the ticket in your PR description (not in the title).

We will not schedule further changes in language semantics, except for a few crucial fixes in support of the new collections (improved type inference for overloaded higher-order methods, and cleaning up eta-expansion). Anything with a higher risk of regression will have to demonstrate compelling value, and that it couldn’t be done after 2.13.0.

Our focus is on finishing the new collections (and any small typer fixes needed), and Java 9/10/11 support. I’d also still like to move the repl to jline 3, since that’s not something we would do in a minor release.

We continue to welcome bug fixes, deprecations (especially to set the scene for 2.14 and 3.0), and low-risk internal improvements.


#3

If anyone reading this wants to try out a Scala 2.13 nightly build, updated instructions for that are here: https://stackoverflow.com/a/40622879/86485

The latest nightlies include the new collections.


#4

Since this is contributors.scala-lang.org, here are the TODO lists for 2.13.0-M4:

Contributions are welcome :slight_smile: (note that some of the issues have PRs already)


#5

Is there an updated list of which projects in the community build are green?


#6

we’re tracking that at https://github.com/scala/community-builds/issues/710


#7

What’s the status of opaque types?


#8

I’m not currently involved in the implementation, but I hope they will land in an early 2.13.x minor release, under -Xsource:2.14 of course. (Our policy on new features is to first make them available under a flag for testing. If the experience in 2.13 is good, they can be on by default in 2.14.)


#9

Since the main goal of M4 is to boostrap the eco-system on the new collections, we will be moving PRs that are not crucial for stabilizing the collections API to M5. While the eco-system bootstraps on M4, there will be time for polish in other areas as part of M5. After that, we’ll lock development down and go into RC mode.


#10

We intend to build 2.13.0-M4 on Monday, May 14.