Created by admin on 2012-02-21. Updated: 2012-02-21, 16:12

A new milestone release for Scala is now available. This release is cut directly from current development and is not intended for production environments, but is a great chance to try out the up and coming features for Scala 2.10.0.

This milestone includes the following fixes and improvements:

Support for implementing a parallel collection using a concurrent collection. In particular, one should be able to implement a combiner using a concurrent (thread-safe) collection.

Ctries added to the standard library. Implement parallel ctries using the above mechanism.

New futures and promises library added to scala.concurrent, joint work with the Akka team.

Numerous improvements to reification.

Virtual pattern matcher improvements -- please try compiling your project with -Yvirtpatmat , it will be on by default starting with 2.10.0-M3!

, it will be on by default starting with 2.10.0-M3! A significantly faster optimizer.

Improvements to RedBlack tree.

Fixes to specialization (AnyRef, interaction of final and @inline -- thank you, Erik Osheim!).

Specifically, though non-exhaustively, the following tickets were closed (we're working on automation to make this more reliable):

SI-4336 polymorphic expression isn't adapted to the expected type

SI-4835 scala.collection.immutable.StreamIterator[+A] has O(n) memory consumption

SI-5066 Predef.readLine(String, Any*) should call Console.readLine(text, args: _*) (Thank you, Szabolcs Berecz!)

SI-5215 Scalac crashes when I use @elidable for trait (Thank you, Szabolcs Berecz!)

SI-5224 Cannot reify @serializable class C

SI-5225 Bad reification of @transient @volatile var x = 2

SI-5229 Cannot reify objects

SI-5256 Classloading problems in REPL with Scala reflection

SI-5269 Cannot reify traits

SI-5270 Cannot reify self-types

SI-5271 Cannot reify case classes

SI-5272 Cannot reify simple pattern match

SI-5273 Cannot reify unapply-based pattern match

SI-5274 Cannot reify recursive functions

SI-5275 Cannot reify constructors with val-parameters

SI-5276 Cannot reify lazy vals

SI-5277 Cannot reify implicits

SI-5279 Cannot reify implicitly imported stuff from java.lang

SI-5287 Use case methods hide information about the actual method

SI-5293 Performance: Copying mutable.HashSet (FlatHashTable) 100x slower than java.util.HashSet.

SI-5334 Cannot reify code that returns an object of a locally defined type

SI-5335 Cannot reify anonymous classes

SI-5374 Deserialization of ListBuffer results in a non-mutable structure prone to throwing NoSuchElementException

SI-5375 Deadlock when parallel collection function throws an exception

SI-5405 Documentation error in scala.math.BigInt

SI-5419 Cannot reify 5: @Int

SI-5423 Mirror doesn't load annotations

SI-5429 object may override a def causing ClassCastException in unrelated code

SI-5444 Crash in LambdaLift

SI-5452 Stack overflow in doTypedApply when manifests meet overloads

SI-5497 undefined value leads to "no-symbol does not have an owner"

SI-5500 Strange type error with some AnyRef specializations (but not others)

SI-5506 cps errors with lists

Many thanks to everyone who contributed patches since the previous milestone:

Daniel C. Sobral, Erik Osheim, Erik Rozendaal, Geoff Reedy, Jason Zaugg, Kota Mizushima, Leif Wickland, Lucien Pereira, Ruediger Klaehn, Szabolcs Berecz