Scala 2.10.4 is now available!

Monday 24 March 2014

ANNOUNCEMENT

We are very happy to announce the final release of Scala 2.10.4!

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

The Scala team and contributors fixed 33 issues since 2.10.3!

In total, 36 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):

  • Development version (Scala IDE 3.0.3-rc3 on Scala 2.10.4)
  • Stable version (will have 2.10.4 as soon as Scala IDE 3.0.3-vfinal is released)

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