- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
Scala 2.9.0 RC1
Created by admin on 2011-03-25.
Updated: 2011-03-25, 21:28
After many months of work, the Scala Team is happy to announce the first release candidate of the new Scala 2.9 distribution! Scala 2.9.0 RC1 is currently available from our Download Page. The Scala 2.9.0 codebase includes several additions, notably the new Parallel Collections, but it also introduces improvements on many existing features, and contains many bug fixes.
Please help us with the testing of this release candidate, and let us know of any issues you may detect.
The Scala 2.9.0 distribution
This Release Candidate is made available for testing purposes only and is not intended for production environments. We will wait at least two weeks before issuing a final release, in order to allow developers and testers to send us their feedback.
What is new?
The new Scala 2.9 codebase includes the following new features and changes:
Parallel Collections
Every collection may be converted into a corresponding parallel collection with the new `par` method. Parallel collections utilize multicore processors by implementing bulk operations such as `foreach`, `map`, `filter` etc. in parallel. Parallel collections are located in the package `scala.collection.parallel`.
Depending on the collection in question, `par` may require copying the underlying dataset to create a parallel collection. However, specific collections share their underlying dataset with a parallel collection, making `par` a constant time operation.
Currently available parallel collections are:
- parallel arrays - scala.collection.parallel.mutable.ParArray
- parallel ranges - scala.collection.parallel.immutable.ParRange
- parallel hash maps - scala.collection.parallel.mutable.ParHashMap
- parallel hash sets - scala.collection.parallel.mutable.ParHashSet
- parallel hash tries - scala.collection.parallel.immutable.{ParHashMap, ParHashSet}
- parallel vectors - scala.collection.parallel.immutable.ParVector
The method `seq` is used to convert from a parallel collection to a corresponding sequential collection. This method is always efficient (O(1)).
Other features
- Generalized try-catch-finally:
try body catch handler finally cleanup
Here, body, hander, and cleanup can be arbitrary expressions.
- Better REPL:
Better jline support, multi-line history, faster startup.
- New REPL commands:
:implicits, :keybindings, :javap
- New packages:
scala.sys and scala.sys.process which are imported from sbt.Proces
- New trait:
App, a safer and more performant alternative to Application. It now allows to access command line arguments. It relies on another new trait, DelayedInit, which lets one capture class initialization code in a closure.
- New methods in collections:
collectFirst, maxBy, minBy, span, inits, tails, permutations, combinations, subsets
- Annotation @strictfp is now supported.
A large number of bugfixes and performance improvements.
- Login or register to post comments
- Printer-friendly version
Re: Scala 2.9.0 RC1
Typo: sbt.Proces should be sbt.Process