- Compiler performance has improved significantly and is now automatically benchmarked after each change.
- A new optimizer setting
-opt-inline-fromlimits the classes from which the inliner will copy code.
scalac -opt-inline-from:helpprovides detailed help.
- The presentation compiler has improved support for implicit macros, which should improve the experience with libraries based on Shapeless. It also has better support for code completion for dependently typed methods.
Further significant changes since 2.12.2 include:
- #5978 Avoid calling static initializers when reflecting on Java classes
- #5964 New setting
-opt-inline-fromto control where to inline from
- #5931 Upgrade to jline 2.14.4
- #5880 bundle newer scala-parser-combinators (1.0.5->1.0.6)
- #5879 -Xlint:unused -Ywarn-unused is intuitive
- #5848 add per-phase profiling to scalac
As usual for minor releases, Scala 2.12.3 is binary compatible with the whole Scala 2.12 series.
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 49 contributors, according to
git shortlog -sn --no-merges v2.12.2..v2.12.3. Thank you, Jason Zaugg, Lukas Rytz, Som Snytt, Dale Wijnand, Janek Bogucki, Adriaan Moors, Seth Tisue, Earl St Sauver, Eugene Yokota, Mike Skells, Miles Sabin, Iulian Dragos, 杨博 (Yang Bo), Cody Allen, Harrison Houghton, Jasper Moeys, xuwei-k, Ganesh Prasad Kumble, Rory Graves, Rui Gonçalves, Sayyed, Atiq (Agoda), BrianLondon, Arnout Engelen, chengpohi, joymufeng, kenji yoshida, Adrien Suree, Edmund Noble!
Scala 2.12 Notes
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):