Scala 2.10.4-RC2 is now available!

ANNOUNCEMENT

We are very happy to announce the second release candidate of Scala 2.10.4! If no serious blocking issues are found this will become the final 2.10.4 version.

The release is available for download from scala-lang.org or from Maven Central.

The Scala team and contributors fixed 23 issues since 2.10.3!

In total, 39 RC1 pull requests and 12 RC2 pull requests were merged on GitHub.

Known Issues

Before reporting a bug, please have a look at these known issues.

Scala IDE for Eclipse

The Scala IDE with this release built right in is available through the following update-site:

  • for Eclipse 4.2/4.3 (Juno/Kepler)

Have a look at the getting started guide for more info.

New features in the 2.10 series

Since 2.10.4 is strictly a bug-fix release, here’s an overview of the most prominent new features and improvements as introduced in 2.10.0:

  • Value Classes

  • Implicit Classes

  • String Interpolation

  • Futures and Promises

  • Dynamic and applyDynamic

  • Dependent method types:

    • def identity(x: AnyRef): x.type = x // the return type says we return exactly what we got
  • New ByteCode emitter based on ASM

    • Can target JDK 1.5, 1.6 and 1.7

    • Emits 1.6 bytecode by default

    • Old 1.5 backend is deprecated

  • A new Pattern Matcher

    • rewritten from scratch to generate more robust code (no more exponential blow-up!)

    • code generation and analyses are now independent (the latter can be turned off with -Xno-patmat-analysis)

  • Scaladoc Improvements

    • Implicits (-implicits flag)

    • Diagrams (-diagrams flag, requires graphviz)

    • Groups (-groups)

  • Modularized Language features

  • Parallel Collections are now configurable with custom thread pools

  • Akka Actors now part of the distribution

    • scala.actors have been deprecated and the akka implementation is now included in the distribution.
  • Performance Improvements

    • Faster inliner

    • Range#sum is now O(1)

    • Update of ForkJoin library

    • Fixes in immutable TreeSet/TreeMap

    • Improvements to PartialFunctions

  • Addition of ??? and NotImplementedError
  • Addition of IsTraversableOnce + IsTraversableLike type classes for extension methods
  • Deprecations and cleanup

    • Floating point and octal literal syntax deprecation

    • Removed scala.dbc

Experimental features

The API is subject to (possibly major) changes in the 2.11.x series, but don’t let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. Some examples can be seen at hxxp://scalamacros.org/news/2012/11/05/status-update.html.

A big thank you to all the contributors!

# Author
21 Jason Zaugg
15 Adriaan Moors
4 Eugene Burmako
3 Simon Schaefer
3 Mirco Dotta
3 Luc Bourlier
2 Som Snytt
2 Paul Phillips
1 Mark Harrah
1 Vlad Ureche
1 James Ward
1 Heather Miller
1 Roberto Tyley
1 François Garillot

Commits and the issues they fixed since v2.10.3

Issue(s) Commit Message
SI-8111 c91d373 SI-8111 Expand the comment with a more detailed TODO
SI-8111 2c770ae SI-8111 Repair symbol owners after abandoned named-/default-args
SI-7120, SI-8114, SI-7120 5876e8c [nomaster] SI-8114 Binary compat. workaround for erasure bug SI-7120
SI-7636, SI-6563 255c51b SI-6563 Test case for already-fixed crasher
SI-8104, SI-8104 c0cb1d8 [nomaster] codifies the state of the art wrt SI-8104
SI-8085 7e85b59 SI-8085 Fix BrowserTraverser for package objects
SI-8085 a12dd9c Test demonstrating SI-8085
SI-6426 47562e7 Revert "SI-6426, importable _."
SI-8062 f0d913b SI-8062 Fix inliner cycle with recursion, separate compilation
SI-7912 006e2f2 SI-7912 Be defensive calling `toString` in `MatchError#getMessage`
SI-8060 bb427a3 SI-8060 Avoid infinite loop with higher kinded type alias
SI-7995 5ed834e SI-7995 completion imported vars and vals
SI-8019 c955cf4 SI-8019 Make Publisher check PartialFunction is defined for Event
SI-8029 fdcc262 SI-8029 Avoid multi-run cyclic error with companions, package object
SI-7439 8d74fa0 [backport] SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols.
SI-8010 9036f77 SI-8010 Fix regression in erasure double definition checks
SI-7982 7d41094 SI-7982 Changed contract of askLoadedType to unload units by default
SI-6913 7063439 SI-6913 Fixing semantics of Future fallbackTo to be according to docs
SI-7458 02308c9 SI-7458 Pres. compiler must not observe trees in silent mode
SI-7548 652b3b4 SI-7548 Test to demonstrate residual exploratory typing bug
SI-7548 b7509c9 SI-7548 askTypeAt returns the same type whether the source was fully or targeted
SI-8005 3629b64 SI-8005 Fixes NoPositon error for updateDynamic calls
SI-8004 696545d SI-8004 Resolve NoPosition error for applyDynamicNamed method call
SI-7463, SI-8003 b915f44 SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
SI-7280 053a274 [nomaster] SI-7280 Scope completion not returning members provided by imports
SI-7915 04df2e4 SI-7915 Corrected range positions created during default args expansion
SI-7776 d15ed08 [backport] SI-7776 post-erasure signature clashes are now macro-aware
SI-6546 075f6f2 SI-6546 InnerClasses attribute refers to absent class
SI-7638, SI-4012 e09a8a2 SI-4012 Mixin and specialization work well
SI-7519 50c8b39e SI-7519: Additional test case covering sbt/sbt#914
SI-7519 ce74bb0 [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
SI-4936, SI-6026 e350bd2 [nomaster] SI-6026 backport getResource bug fix
SI-6026 2bfe0e7 SI-6026 REPL checks for javap before tools.jar
SI-7295 25bcba5 SI-7295 Fix windows batch file with args containing parentheses
SI-7020 7b56021 Disable tests for SI-7020
SI-7783 2ccbfa5 SI-7783 Don't issue deprecation warnings for inferred TypeTrees
SI-7815 733b322 SI-7815 Dealias before deeming method type as dependent

Complete commit list!

sha Title
c91d373 SI-8111 Expand the comment with a more detailed TODO
2c770ae SI-8111 Repair symbol owners after abandoned named-/default-args
5876e8c [nomaster] SI-8114 Binary compat. workaround for erasure bug SI-7120
bd4adf5 More clear implicitNotFound error for ExecutionContext
255c51b SI-6563 Test case for already-fixed crasher
c0cb1d8 [nomaster] codifies the state of the art wrt SI-8104
7e85b59 SI-8085 Fix BrowserTraverser for package objects
a12dd9c Test demonstrating SI-8085
3fa2c97 Report error on code size overflow, log method name.
2aa9da5 Partially revert f8d8f7d08d.
47562e7 Revert "SI-6426, importable _."
f0d913b SI-8062 Fix inliner cycle with recursion, separate compilation
9cdbe28 Fixup #3248 missed a spot in pack.xml
006e2f2 SI-7912 Be defensive calling `toString` in `MatchError#getMessage`
bb427a3 SI-8060 Avoid infinite loop with higher kinded type alias
27a3860 Update README, include doc/licenses in distro
139ba9d Add attribution for Typesafe.
e555106 Remove docs/examples; they reside at scala/scala-dist
dc6dd58 Remove unused android test and corresponding license.
f8d8f7d Do not distribute partest and its dependencies.
5ed834e SI-7995 completion imported vars and vals
c955cf4 SI-8019 Make Publisher check PartialFunction is defined for Event
fdcc262 SI-8029 Avoid multi-run cyclic error with companions, package object
8d74fa0 [backport] SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols.
9036f77 SI-8010 Fix regression in erasure double definition checks
3faa2ee [nomaster] better error messages for various macro definition errors
7d41094 SI-7982 Changed contract of askLoadedType to unload units by default
7063439 SI-6913 Fixing semantics of Future fallbackTo to be according to docs
02308c9 SI-7458 Pres. compiler must not observe trees in silent mode
652b3b4 SI-7548 Test to demonstrate residual exploratory typing bug
b7509c9 SI-7548 askTypeAt returns the same type whether the source was fully or targeted
0c963c9 [nomaster] teaches toolbox about -Yrangepos
3629b64 SI-8005 Fixes NoPositon error for updateDynamic calls
696545d SI-8004 Resolve NoPosition error for applyDynamicNamed method call
b915f44 SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
053a274 [nomaster] SI-7280 Scope completion not returning members provided by imports
eb9f0f7 [nomaster] Adds test cases for scope completion
3a8796d [nomaster] Test infrastructure for scope completion
04df2e4 SI-7915 Corrected range positions created during default args expansion
ec89b59 Upgrade pax-url-aether to 1.6.0.
1d29c0a [backport] Add buildcharacter.properties to .gitignore.
31ead67 IDE needs swing/actors/continuations
852a947 Allow retrieving STARR from non-standard repo for PR validation
40af1e0 Allow publishing only core (pr validation)
ba0718f Render relevant properties to buildcharacter.properties
d15ed08 [backport] SI-7776 post-erasure signature clashes are now macro-aware
6045a05 Fix completion after application with implicit arguments
075f6f2 SI-6546 InnerClasses attribute refers to absent class
e09a8a2 SI-4012 Mixin and specialization work well
50c8b39e SI-7519: Additional test case covering sbt/sbt#914
ce74bb0 [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
e350bd2 [nomaster] SI-6026 backport getResource bug fix
2bfe0e7 SI-6026 REPL checks for javap before tools.jar
25bcba5 SI-7295 Fix windows batch file with args containing parentheses
7b56021 Disable tests for SI-7020
8986ee4 Disable flaky presentation compiler test.
2ccbfa5 SI-7783 Don't issue deprecation warnings for inferred TypeTrees
ee9138e Bump version to 2.10.4 for nightlies
733b322 SI-7815 Dealias before deeming method type as dependent