Skip to content

Instantly share code, notes, and snippets.

@eed3si9n
Last active August 1, 2019 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save eed3si9n/ea878634329942e1877a872dc77d9a5d to your computer and use it in GitHub Desktop.
Save eed3si9n/ea878634329942e1877a872dc77d9a5d to your computer and use it in GitHub Desktop.

Compatibility note

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

Scala.js users must update to 0.6.28+ or 1.0.0-M8+ for compatibility with Scala 2.12.9. (#7375)

Highlights of 2.12.9

  • Improved compiler performance. Benchmarks of compiler performance have improved by between 5% and 10% since 2.12.8, thanks to many performance optimizations (mostly by Jason Zaugg and Diego E. Alonso-Blas: kudos!)
  • Improved compatibility with JDK 11, 12, and 13 (see below)
  • Experimental support for build pipelining and outline type checking (see below)

Compatibility with JDK 11, 12, and 13

Scala 2.12.9 contains various fixes to improve compatibility with JDK 11, 12, and 13.

  • Backport upgrade to ASM 7 for JDK 12 compatibility (#7780)
  • Fix -release N flag on JDK 12+ (#7763)
  • Fix "cannot be represented as URI" on JDK 13 (#8210)
  • Add JDK 9 constant types to the ClassfileParser to fix Scaladoc generation issue (#8289)

Build pipelining and outline type checking

Scala 2.12.9 adds experimental infrastructure intended to support "build pipelining". Once build tools add support, compilation of downstream subprojects could begin once upstream code has been type-checked. See scala-dev#643.

Further highlights

  • Fix large string interpolation causing compile-time StackOverflowError (#7995, #7996)
  • Un-deprecate eta-expansion of 0-ary methods (#7740)
  • Fix Java signature for value classes appearing in type arguments (#8127)
  • Backport fix for interop between Java and generic inner Scala classes (#7977)
  • Make the inferred packedTypes deterministic in bytecode (#7751)
  • Add -doc-canonical-base-url to set a canonical URL in Scaladoc (#7998)
  • Backport fix for "illegal cyclic reference involving class" (#8161)
  • Cache materialized TypeTags (#8112)
  • Reduce the overhead of macro expansion (#8088)

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

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 26 contributors, according to git shortlog -sn --no-merges v2.12.8..2.12.x. Thank you Jason Zaugg, Diego E. Alonso-Blas, Seth Tisue, Harrison Houghton, Adriaan Moors, Lukas Rytz, Aaron S. Hawley, Eugene Yokota, Michael Pollmeier, ta.tanaka, Enno Runne, A. P. Marki, Georgi Krastev, Kenji Yoshida, Stefan Zeiger, exoego, Benjamin Kurczyk, Anselm von Wangenheim, Alex Vayda, Sunil Mishra, Sébastien Doeraene, tgodzik, Dale Wijnand, Ryo Fukumuro.

Thanks to Lightbend for their continued sponsorship of the Scala core team’s efforts. Lightbend offers commercial support for Scala.

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):

@dwijnand
Copy link

dwijnand commented Aug 1, 2019

There are multiple Diegos.

@milessabin
Copy link

That explains a lot!

@eed3si9n
Copy link
Author

eed3si9n commented Aug 1, 2019

According to

$ git shortlog -sn --no-merges v2.12.8..2.12.x | grep Diego
    36	Diego E. Alonso-Blas
    12	Diego Alonso
     2	Diego E. Alonso Blas

there are three. We'd like to extend our gratitude to all three of them.

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