Scala 2.10.4-RC1 is now available!

Friday 20 December 2013

ANNOUNCEMENT

We are very happy to announce the first 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 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
16 Jason Zaugg
15 Adriaan Moors
3 Simon Schaefer
3 Eugene Burmako
3 Luc Bourlier
2 Som Snytt
2 Paul Phillips
2 Mirco Dotta
1 Mark Harrah
1 Vlad Ureche
1 Heather Miller
1 FrancÃßois Garillot
1 Roberto Tyley

Commits and the issues they fixed since v2.10.3

Issue(s) Commit Message
SI-6426 47562e7adb Revert "SI-6426, importable _."
SI-8062 f0d913b51d SI-8062 Fix inliner cycle with recursion, separate compilation
SI-7912 006e2f2aad SI-7912 Be defensive calling `toString` in `MatchError#getMessage`
SI-8060 bb427a3416 SI-8060 Avoid infinite loop with higher kinded type alias
SI-7995 5ed834e251 SI-7995 completion imported vars and vals
SI-8019 c955cf4c2e SI-8019 Make Publisher check PartialFunction is defined for Event
SI-8029 fdcc262070 SI-8029 Avoid multi-run cyclic error with companions, package object
SI-7439 8d74fa0242 [backport] SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols.
SI-8010 9036f774bc SI-8010 Fix regression in erasure double definition checks
SI-7982 7d4109486b SI-7982 Changed contract of askLoadedType to unload units by default
SI-6913 70634395a4 SI-6913 Fixing semantics of Future fallbackTo to be according to docs
SI-7458 02308c9691 SI-7458 Pres. compiler must not observe trees in silent mode
SI-7548 652b3b4b9d SI-7548 Test to demonstrate residual exploratory typing bug
SI-7548 b7509c922f SI-7548 askTypeAt returns the same type whether the source was fully or targeted
SI-8005 3629b645cc SI-8005 Fixes NoPositon error for updateDynamic calls
SI-8004 696545d53f SI-8004 Resolve NoPosition error for applyDynamicNamed method call
SI-7463, SI-8003 b915f440eb SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
SI-7280 053a2744c6 [nomaster] SI-7280 Scope completion not returning members provided by imports
SI-7915 04df2e48e4 SI-7915 Corrected range positions created during default args expansion
SI-7776 d15ed081ef [backport] SI-7776 post-erasure signature clashes are now macro-aware
SI-6546 075f6f260c SI-6546 InnerClasses attribute refers to absent class
SI-7638, SI-4012 e09a8a2b7f SI-4012 Mixin and specialization work well
SI-7519 50c8b39ec4 SI-7519: Additional test case covering sbt/sbt#914
SI-7519 ce74bb0060 [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
SI-4936, SI-6026 e350bd2cbc [nomaster] SI-6026 backport getResource bug fix
SI-6026 2bfe0e797c SI-6026 REPL checks for javap before tools.jar
SI-7295 25bcba59ce SI-7295 Fix windows batch file with args containing parentheses
SI-7020 7b560213cb Disable tests for SI-7020
SI-7783 2ccbfa5778 SI-7783 Don't issue deprecation warnings for inferred TypeTrees
SI-7815 733b3220c9 SI-7815 Dealias before deeming method type as dependent

Complete commit list!

sha Title
3fa2c97853 Report error on code size overflow, log method name.
2aa9da578e Partially revert f8d8f7d08d.
47562e7adb Revert "SI-6426, importable _."
f0d913b51d SI-8062 Fix inliner cycle with recursion, separate compilation
9cdbe28c00 Fixup #3248 missed a spot in pack.xml
006e2f2aad SI-7912 Be defensive calling `toString` in `MatchError#getMessage`
bb427a3416 SI-8060 Avoid infinite loop with higher kinded type alias
27a38602de Update README, include doc/licenses in distro
139ba9d875 Add attribution for Typesafe.
e555106070 Remove docs/examples; they reside at scala/scala-dist
dc6dd58d9d Remove unused android test and corresponding license.
f8d8f7d08d Do not distribute partest and its dependencies.
5ed834e251 SI-7995 completion imported vars and vals
c955cf4c2e SI-8019 Make Publisher check PartialFunction is defined for Event
fdcc262070 SI-8029 Avoid multi-run cyclic error with companions, package object
8d74fa0242 [backport] SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols.
9036f774bc SI-8010 Fix regression in erasure double definition checks
3faa2eedd8 [nomaster] better error messages for various macro definition errors
7d4109486b SI-7982 Changed contract of askLoadedType to unload units by default
70634395a4 SI-6913 Fixing semantics of Future fallbackTo to be according to docs
02308c9691 SI-7458 Pres. compiler must not observe trees in silent mode
652b3b4b9d SI-7548 Test to demonstrate residual exploratory typing bug
b7509c922f SI-7548 askTypeAt returns the same type whether the source was fully or targeted
0c963c9085 [nomaster] teaches toolbox about -Yrangepos
3629b645cc SI-8005 Fixes NoPositon error for updateDynamic calls
696545d53f SI-8004 Resolve NoPosition error for applyDynamicNamed method call
b915f440eb SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
053a2744c6 [nomaster] SI-7280 Scope completion not returning members provided by imports
eb9f0f7975 [nomaster] Adds test cases for scope completion
3a8796da1a [nomaster] Test infrastructure for scope completion
04df2e48e4 SI-7915 Corrected range positions created during default args expansion
ec89b59717 Upgrade pax-url-aether to 1.6.0.
1d29c0a08b [backport] Add buildcharacter.properties to .gitignore.
31ead67a30 IDE needs swing/actors/continuations
852a9479d0 Allow retrieving STARR from non-standard repo for PR validation
40af1e0c44 Allow publishing only core (pr validation)
ba0718fd1d Render relevant properties to buildcharacter.properties
d15ed081ef [backport] SI-7776 post-erasure signature clashes are now macro-aware
6045a05b83 Fix completion after application with implicit arguments
075f6f260c SI-6546 InnerClasses attribute refers to absent class
e09a8a2b7f SI-4012 Mixin and specialization work well
50c8b39ec4 SI-7519: Additional test case covering sbt/sbt#914
ce74bb0060 [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
e350bd2cbc [nomaster] SI-6026 backport getResource bug fix
2bfe0e797c SI-6026 REPL checks for javap before tools.jar
25bcba59ce SI-7295 Fix windows batch file with args containing parentheses
7b560213cb Disable tests for SI-7020
8986ee4fd5 Disable flaky presentation compiler test.
2ccbfa5778 SI-7783 Don't issue deprecation warnings for inferred TypeTrees
ee9138e99e Bump version to 2.10.4 for nightlies
733b3220c9 SI-7815 Dealias before deeming method type as dependent