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