This page is no longer maintained — Please continue to the home page at

Scala 2.10.0 Milestone 2

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!
  • 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

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland