Scala 2.10.4-RC3 is now available!

Tuesday 25 February 2014

ANNOUNCEMENT

We are very happy to announce the third 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 31 issues since 2.10.3!

In total, 39 RC1 pull requests, 12 RC2 pull requests and 3 RC3 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 http://scalamacros.org/news/2012/11/05/status-update.html.

A big thank you to all the contributors!

# Author
26 Jason Zaugg
15 Adriaan Moors
5 Eugene Burmako
3 A. P. Marki
3 Simon Schaefer
3 Mirco Dotta
3 Luc Bourlier
2 Paul Phillips
2 François Garillot
1 Mark Harrah
1 Vlad Ureche
1 James Ward
1 Heather Miller
1 Roberto Tyley

Commits and the issues they fixed since v2.10.3

Issue(s) Commit Message
SI-7902 5f4011e [backport] SI-7902 Fix spurious kind error due to an unitialized symbol
SI-8205 8ee165c SI-8205 [nomaster] backport test pos.lineContent
SI-8126, SI-6566 806b6e4 Backports library changes related to SI-6566 from a419799
SI-8146, SI-8146, SI-8146, SI-8146 ff13742 [nomaster] SI-8146 Fix non-deterministic <:< for deeply nested types
SI-6443, SI-8143 1baf11a SI-8143 Fix bug with super-accessors / dependent types
SI-8152 9df2dcc [nomaster] SI-8152 Backport variance validator performance fix
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
5f4011e [backport] SI-7902 Fix spurious kind error due to an unitialized symbol
8ee165c SI-8205 [nomaster] backport test pos.lineContent
d167f14 [nomaster] corrects an error in reify’s documentation
806b6e4 Backports library changes related to SI-6566 from a419799
ff13742 [nomaster] SI-8146 Fix non-deterministic <:< for deeply nested types
cbb88ac [nomaster] Update MiMa and use new wildcard filter
1baf11a SI-8143 Fix bug with super-accessors / dependent types
9df2dcc [nomaster] SI-8152 Backport variance validator performance fix
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