Scala 2.9.0 RC1

165 views
Skip to first unread message

Antonio Cunei

unread,
Mar 25, 2011, 4:34:08 PM3/25/11
to scala-l...@googlegroups.com, scala-a...@googlegroups.com
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 RC1 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
scala.collection.parallel.immutable.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.

martin odersky

unread,
Mar 26, 2011, 10:11:48 AM3/26/11
to scala-l...@googlegroups.com, Antonio Rodríguez S., Antonio Cunei, scala-a...@googlegroups.com


2011/3/26 Antonio Rodríguez S. <roda...@googlemail.com>
Great news! First thanks to the whole Scala team. In a new version of the Eclipse plugin include or planned next?

The revamped Eclipse plugin for 2.9 will most likely be released on Monday.

Cheers

 -- Martin 

Nils Kilden-Pedersen

unread,
Mar 26, 2011, 2:23:39 PM3/26/11
to Antonio Cunei, scala-l...@googlegroups.com, scala-a...@googlegroups.com
I tried compiling O/R Broker with scaladoc 2.9 RC1 and got this weird result. Last I tried, it worked fine with 2.9.0.r24394-b20110307020059.

scaladoc -unchecked -d docs\api -doc-title "O/R Broker" -
doc-version 3.1 -classpath bin;e:\Java\freemarker-2.3.16\lib\freemarker.jar;e:\Java\joda-time-1.6\joda-time-1.6.jar;e:\Java\velocity-1.6.3\v
elocity-1.6.3-dep.jar -sourcepath src\main\scala src\main\scala\org\orbroker\*.scala src\main\scala\org\orbroker\conv\*.scala src\main\scala
\org\orbroker\callback\*.scala src\main\scala\org\orbroker\config\*.scala src\main\scala\org\orbroker\adapt\*.scala src\main\scala\org\orbro
ker\exception\*.scala src\main\scala\org\orbroker\pimp\*.scala src\main\scala\org\orbroker\config\dynamic\*.scala src\main\scala\org\orbroke
r\util\*.scala
java.io.IOException: MALFORMED[1]
        at scala.tools.nsc.io.SourceReader$.decode(SourceReader.scala:137)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:91)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:46)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:65)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:268)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:274)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
        at scala.collection.immutable.List.foreach(List.scala:45)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
        at scala.collection.immutable.List.map(List.scala:45)
        at scala.tools.nsc.Global$Run.compile(Global.scala:995)
        at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:51)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:78)
        at scala.tools.nsc.ScalaDoc$.process(ScalaDoc.scala:65)
        at scala.tools.nsc.ScalaDoc$.main(ScalaDoc.scala:81)
        at scala.tools.nsc.ScalaDoc.main(ScalaDoc.scala)
error: IO error while decoding e:\Java\freemarker-2.3.16\lib\freemarker.jar with UTF-8
Please try specifying another one using the -encoding option
java.io.IOException: MALFORMED[1]
        at scala.tools.nsc.io.SourceReader$.decode(SourceReader.scala:137)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:91)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:46)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:65)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:268)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:274)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
        at scala.collection.immutable.List.foreach(List.scala:45)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
        at scala.collection.immutable.List.map(List.scala:45)
        at scala.tools.nsc.Global$Run.compile(Global.scala:995)
        at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:51)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:78)
        at scala.tools.nsc.ScalaDoc$.process(ScalaDoc.scala:65)
        at scala.tools.nsc.ScalaDoc$.main(ScalaDoc.scala:81)
        at scala.tools.nsc.ScalaDoc.main(ScalaDoc.scala)
error: IO error while decoding e:\Java\joda-time-1.6\joda-time-1.6.jar with UTF-8
Please try specifying another one using the -encoding option
java.io.IOException: MALFORMED[1]
        at scala.tools.nsc.io.SourceReader$.decode(SourceReader.scala:137)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:91)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:46)
        at scala.tools.nsc.io.SourceReader.read(SourceReader.scala:65)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:268)
        at scala.tools.nsc.Global.getSourceFile(Global.scala:274)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.tools.nsc.Global$Run$$anonfun$14.apply(Global.scala:995)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
        at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
        at scala.collection.immutable.List.foreach(List.scala:45)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
        at scala.collection.immutable.List.map(List.scala:45)
        at scala.tools.nsc.Global$Run.compile(Global.scala:995)
        at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:51)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:78)
        at scala.tools.nsc.ScalaDoc$.process(ScalaDoc.scala:65)
        at scala.tools.nsc.ScalaDoc$.main(ScalaDoc.scala:81)
        at scala.tools.nsc.ScalaDoc.main(ScalaDoc.scala)
error: IO error while decoding e:\Java\velocity-1.6.3\velocity-1.6.3-dep.jar with UTF-8
Please try specifying another one using the -encoding option
src\main\scala\org\orbroker\conv\converters.scala:43: error: object joda is not a member of package org
  type T = org.joda.time.LocalDate
               ^
src\main\scala\org\orbroker\conv\converters.scala:45: error: value toDateMidnight is not a member of org.orbroker.conv.JodaLocalDateConv.T
  def toJdbcType(date: T) = new java.sql.Date(date.toDateMidnight.getMillis)
                                                   ^
src\main\scala\org\orbroker\conv\converters.scala:52: error: object joda is not a member of package org
  type T = org.joda.time.LocalTime
               ^
src\main\scala\org\orbroker\conv\converters.scala:54: error: value getMillisOfDay is not a member of org.orbroker.conv.JodaLocalTimeConv.T
  def toJdbcType(time: T) = new java.sql.Time(time.getMillisOfDay)
                                                   ^
src\main\scala\org\orbroker\conv\converters.scala:61: error: object joda is not a member of package org
  type T = org.joda.time.DateTime
               ^
src\main\scala\org\orbroker\conv\converters.scala:63: error: value getMillis is not a member of org.orbroker.conv.JodaDateTimeConv.T
  def toJdbcType(ts: T) = new java.sql.Timestamp(ts.getMillis)
                                                    ^
src\main\scala\org\orbroker\config\dynamic\FreeMarkerStatement.scala:8: error: not found: object freemarker
import freemarker.template._
       ^
src\main\scala\org\orbroker\config\dynamic\FreeMarkerStatement.scala:10: error: too many arguments for constructor Object: ()java.lang.Objec
t
private[orbroker] class FreeMarkerStatement(
                                           ^
8 errors found
Exception in thread "main" java.lang.AssertionError: assertion failed: mismatch class FreeMarkerStatement List() List(id, callback, adapter)

        at scala.Predef$.assert(Predef.scala:100)
        at scala.tools.nsc.typechecker.Typers$Typer.decompose$1(Typers.scala:1529)
        at scala.tools.nsc.typechecker.Typers$Typer.computeParamAliases(Typers.scala:1536)
        at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:1707)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3818)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4158)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2036)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$24.apply(Typers.scala:2119)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$24.apply(Typers.scala:2119)
        at scala.collection.immutable.List.loop$1(List.scala:117)
        at scala.collection.immutable.List.mapConserve(List.scala:133)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2119)
        at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1455)
        at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1220)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3809)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4158)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2036)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$24.apply(Typers.scala:2119)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$24.apply(Typers.scala:2119)
        at scala.collection.immutable.List.loop$1(List.scala:117)
        at scala.collection.immutable.List.mapConserve(List.scala:133)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2119)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3805)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4158)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4207)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:94)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
        at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:326)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:86)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:86)
        at scala.collection.Iterator$class.foreach(Iterator.scala:652)
        at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:311)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:86)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:896)
        at scala.tools.nsc.Global$Run.compile(Global.scala:997)
        at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:51)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:78)
        at scala.tools.nsc.ScalaDoc$.process(ScalaDoc.scala:65)
        at scala.tools.nsc.ScalaDoc$.main(ScalaDoc.scala:81)
        at scala.tools.nsc.ScalaDoc.main(ScalaDoc.scala)

Reply all
Reply to author
Forward
0 new messages