Reply to comment

What's in Scala 2.12

In a roadmap published in Scala’s website last June 30, 2014, stated their plan for the new Scala version – Scala 2.12.

While Scala 2.10 and Scala 2.11 use previous versions of Java, the distribution for Scala 2.12 will be entirely built and will require Java 8. Therefore, in preparation for the Scala 2.12, the next releases of Scala 2.11.x, “Java 8-style closure compilation: Miguel’s new back-end & optimizer” will be introduced as experimental features. The Scala team is also planning to have an easy cross-building between 2.11 and 2.12 using full backward source compatibility. Version 2.11 and 2.12 compiler and standard library code bases will be aligned closely to achieve a smooth transition to Java 8.

The roadmap also listed the following shared features of Scala 2.11 (under a flag) and 2.12:

    Use of method handles to compile lambdas
    Java 8 interop (bidirectional)
    Miguel’s new back-end & optimizer
    Style checker
    Collections enhancement
    Improvement on documentation
    Continuous improvements on infrastructure such as sbt build, pull request validation & release automation, bug tracker cleanup and automation.

On the fourth quarter of 2014, infrastructure development for 2.12 will start and the development for transition will be on 2015. Below is the schedule which they follow:

2.10.0             |             04/01/2013             |             First 2.10.x release

2.11.0             |             16/04/2014             |             First 2.11.x release

2.11.1             |             19/05/2014

2.11.2             |             21/07/2014

2.11.3             |              29/09/2014

2.10.5              |          Q4 2014                   |             Last 2.10.x release

2.12.0-M1        |           24/11/2014

2.11.4             |           Dec 2014

2.12.0-M{2,3,4} |           Q{1,2,3} 2015          |              quarterly 2.12.0-Mx releases

2.12.0-M5        |             Oct 2015

2.12.0-RC1        |          Nov 2015                |                (1 year after M1)

2.12.0                |            Jan 2016

The new features exclusive for Scala 2.12 that will be developed on 2015 are as follows:

    FunctionN will be turned into Functional Interfaces wherein higher-order methods in Scala can be called without a wrapper using Java 8 code
    Support for @interface traits
    Possibility of integrating Streams into Scala collections
    JDK’s forkjoin library will be used instead of embedding your own
    Enhanced lazy val initialization – SIP-20

These features are binary incompatible thus cannot be backported to 2.11.

Trackback URL for this post:


  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • HTML tags will be transformed to conform to HTML standards.

More information about formatting options