Scala 2.10 Milestone 4 arrives
A month or so on from the last milestone, Scala 2.10 gets slightly closer to a big release with another glimpse at what 2.10 will offer
Nearly two months on from a mammoth milestone, the Typesafe team behind Scala have checked in with another milestone, as the JVM multi-paradigm language gets ever closer to another version.
Scala 2.10.0 M4 gives the language a little bit of juice, following on from April’s big milestone where several features targetted in the Scala Improvement Process, such as Modularising Language Features, Futures and Promises (SIP 14), Implicit Classes (SIP 13) and finally String interpolation (SIP 11) were all ushered in to varying degress. This time round, it’s slightly more minimal but some important steps and fixes have been made:
- New exhaustivity & unreachability analyses for the new pattern matcher. These have been rewritten from scratch so they only emit warnings right now. Once unreachability proves accurate, the team say they may turn the severity back up to ‘error’.
- For the first time, default classfiles are now emitted in JDK5 format. This can be changed with -target:jvm-1.6 , to instruct the JVM to use the new type-checking bytecode verifier.
- The introduction of a new reflection language feature (currently in Pre-SIP phase, summary and migration route from M3).
- -Xmacros have been replaced with -Xlanguage:experimental.macros, or import language.experimental.macros in the source code. There has been some debate over the value of macros, hence the experimental nature
- Tool-support and examples have been updated.
- Scaladoc keyboard shortcuts.
- Parallel collections are now configurable with custom thread pools.
To check out all that is new with Scala, read the release notes, which has a fairly comprehensive commit list. This is good to see – Scala has a very commited (ignore the pun) fanbase all keen to help progess the language, which it seems to be doing at a good rate. This release, like any milestone, is not intended for production environments yet, but allows Scala developers chances to test out new features.