Skip to content

Instantly share code, notes, and snippets.

@SethTisue
Last active March 18, 2018 15:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SethTisue/25fbf83657ab7845bc674b3bd31794d4 to your computer and use it in GitHub Desktop.
Save SethTisue/25fbf83657ab7845bc674b3bd31794d4 to your computer and use it in GitHub Desktop.

(gisted because the draft at https://github.com/scala/scala/releases is only visible to owners)

Main highlights of this release:

  • When running the compiler on Java 9 or higher, the new -release N flag changes the compilation classpath to match the JDK version N. This works for the JDK itself and for multi-release JARs on the classpath. Details in the PR: scala/scala#6362.
  • With the new -Ybackend-parallelism N compiler flag, the backend can now run bytecode serialization, classfile writing and method-local optimizations (-opt:l:method) in parallel on N threads. (thanks @mkeskells!) PR: scala/scala#6124.
  • The raw"" and s"" string interpolators are now intercepted by the compiler to produce more efficient bytecode. PR: scala/scala#6093.
  • The -Ycache-plugin-class-loader and -Ycache-macro-class-loader flags enable caching of classloaders for compiler plugins and macro definitions. This can lead to significant performance improvements. PRs: scala/scala#6412, scala/scala#6314. (thanks @xeno-by and @jvican!)

Further highlights:

  • The apply method on the PartialFunction companion object is now deprecated. PR: scala/scala#6005.
  • Scala JARs (library, reflect, compiler) now have an Automatic-Module-Name attribute in their manifests. PR: scala/scala#6395.
  • Enabling unused warnings now leads to fewer false positives. (thanks @som-snytt!) PR: scala/scala#6190.
  • Explicit eta-expansion (foo _) of a nullary method no longer gives a deprecation warning. PR: scala/scala#6177.

For more details, check out all closed bugs and merged PRs.

Compiler performance since 2.12.4 is stable.

As usual for minor releases, Scala 2.12.5 is binary compatible with the whole Scala 2.12 series.

Contributors

A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.

This release was brought to you by 36 contributors, according to git shortlog -sn --no-merges v2.12.4..v2.12.5. Thank you, Jason Zaugg, A. P. Marki, Mike Skells, Harrison Houghton, Adriaan Moors, Lukas Rytz, Seth Tisue, jvican, Eyal Farago, Philippus Baalman, Martijn Hoekstra, Stefan Zeiger, howtonotwin, Jasper Moeys, Cong Zhao, Piotr Kukielka, Rex Kerr, Ben Elliott, id.ilych, Markus Hauck, mkeskells, Steve Robinson, Viktor Klang, ghik, Ólafur Páll Geirsson, Aaron S. Hawley, Janek Bogucki, Håkon Hjelde Wold, Jonathan Frawley, Dale Wijnand, Marconi Lanna, Pavel Petlinsky, Antoine Gourlay, Alex Levenson, Shohei Shimomura, Teemu Lehtinen!

Scala 2.12 Notes

The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.

Obtaining Scala

Scala releases are available through a variety of channels, including (but not limited to):

@SethTisue
Copy link
Author

SethTisue commented Mar 15, 2018

no comments here, please, as GitHub doesn't send notifications. go to https://gitter.im/scala/contributors or https://contributors.scala-lang.org/t/getting-ready-for-2-12-5/1618/11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment