Scala 2.10.3-RC2 is now available!

ANNOUNCEMENT

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

The Scala team and contributors fixed 48 issues since 2.10.2!

In total, 63 RC1 pull requests and 19 RC2 pull requests were opened on GitHub of which 70 were merged after having been tested and reviewed.

Known Issues

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

Scala IDE for Eclipse

The Scala IDE with Scala 2.10.3-RC2 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.3 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
32 Jason Zaugg
12 Eugene Burmako
6 Som Snytt
4 Vlad Ureche
4 James Iry
4 Grzegorz Kossakowski
4 François Garillot
3 Adriaan Moors
3 Viktor Klang
2 Antoine Gourlay
2 Simon Ochsenreither
1 Christopher Vogt
1 Seth Tisue
1 Aleksandar Prokopec
1 Roland Kuhn
1 Den Shabalin
1 Rich Dougherty

Commits and the issues they fixed since v2.10.2

Issue(s) Commit Message
SI-7398 a1796aa SI-7398 Enable test for Java 8 source parser under Java 8
SI-7825 bf0f9da SI-7825 Consider DEFAULTMETHOD when refchecking concreteness
SI-7818 cb028ba SI-7818 Cast our way out of extended existential angst
SI-7767 2391887 SI-7767 Test case for Scaladoc on early initializers
SI-7767 48283ca SI-7767 avoid rejecting Scaladoc comments in early initializers
SI-7269 fe9a3e9 SI-7269 Rework MapLike#retains to account for desugaring change
SI-7814 a19babc SI-7814 Updates the instrumented version of ScalaRuntime.
SI-7814 fb43ec8 SI-7814 Avoid init cycle between Predef, `package`, ScalaRuntime
SI-7652 7804cec [nomaster] SI-7652 REPL extended quest for tools
SI-7652 8b10daf [nomaster] SI-7652 Bad tools fails loudly
SI-7149 989c3f8 SI-7149 Use a WeakHashSet for type uniqueness
SI-7150 3ada703 SI-7150 Replace scala.reflect.internal.WeakHashSet
SI-7782 bce786f SI-7782 Derive type skolems at the ground level
SI-4760 27d61a2 SI-4760 Parser handles block-ending import
SI-7790 cb9f2b9 [nomaster] SI-7790 No ScriptEngine in 2.10 build
SI-7775 9d5ed33 SI-7775 Harden against the shifting sands of System.getProperties
SI-7779 5dbc37d SI-7779 Account for class name compactification in reflection
SI-7486 bc6d4b5 SI-7486 More tests for cycles triggered by implicit search
SI-7778, SI-942 ed34bcb SI-942 A test case, five years adrift.
SI-7756, SI-7694, SI-7716 42e0f73 SI-7716 Exclude patmat synthetics from bounds checking
SI-7603 076a92b SI-7603 Remove diagnostic code for annotation error
SI-7603 ab8a223 SI-7603 Fix thread safety of FlagTranslation
SI-7752 3222add SI-7752 Don't disambiguate type parameters of overloaded alts
SI-7014 f91242c SI-7014 Annot arg may refer to annotated class's member
SI-7694 e65321c SI-7694 Add @uncheckedBounds to the library
SI-7694 5724cae SI-7694 @uncheckedBounds, an opt-out from type bounds checking
SI-7020 ebb01e0 SI-7020 Determinism for pattern matcher warnings
SI-7733 1d28fe6 [nomaster] SI-7733 reflective packages now more consistent with scalac
SI-7331 36524c2 SI-7331 tb.parse returns unpositioned trees
SI-4907, SI-4615 cd41987 SI-4907 SI-4615 scala.bat honors -J and -D options.
SI-7455 050b4c9 SI-7455 Drop dummy param for synthetic access constructor
SI-7636 c4bf1d5 SI-7636 Fix a NPE in typing class constructors
SI-7687 2473e66 SI-7687 Handle spaces in %COMSPEC% path in scala.bat.
SI-7569 c34b048 [backport] SI-7569 Fix end position in PostfixSelect tree
SI-7657 ef979c0 SI-7657 clarifies the "macro overrides method" rule
SI-7336 48c677c SI-7336 - Link flatMapped promises to avoid memory leaks
SI-7265 06606e8 SI-7265 General test for spec version
SI-7649 6368ae7 SI-7649 Fix positions for reshaped tag materializers
SI-7617 e72ae70 SI-7617 typedAssign no longer expands lhs
SI-7638 504b5f3 SI-7638 Superaccessor lookup after specialization
SI-7603, SI-7603 eebaae5 SI-7603 Speculative fix for annotation binding error
SI-7579, SI-7344 2285493 SI-7344 Specialize methods in private scopes
SI-7571 e7ac254 SI-7571 Allow nesting of anonymous classes in value classes
SI-7343 c43b504 SI-7343 Fixed phase ordering in specialization
SI-7498 c71fa58 [backport] SI-7498 ParTrieMap.foreach no longer crashes
SI-7214, SI-7505 d5288f8 SI-7505 Test case for pattern matcher + type alias bug
SI-6841 608f577 SI-6841 Fix bug at the intersection of DelayedInit and named args
SI-7558 dd5fa60 SI-7558 Fix capture of free local vars in toolbox compiler
SI-7556 28c5f73 SI-7556 Fix runtime reflection involving ScalaLongSignature
SI-7507 d2faeb9 SI-7507 Fix lookup of private[this] member in presence of self type.
SI-7375 4dc3a33 SI-7375 ClassTag for value class aliases
SI-6138 b941551 SI-6138 Centralize and refine detection of `getClass` calls
SI-7236, SI-7237, SI-7391 f92ef91 SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except
SI-7473 5b54681 SI-7473 Bad for expr crashes postfix
SI-7421 e18e48d SI-7421 remove unneeded extra-attachement in maven deploy
SI-7497 d38e8ae SI-7497 Fix scala.util.Properties.isMac

Complete commit list!

sha Title
cb4b8eb update typesafe.artifactory-online.com to private-repo
bf93057 Change Scala license to unmodified 3-clause BSD.
a1796aa SI-7398 Enable test for Java 8 source parser under Java 8
bf0f9da SI-7825 Consider DEFAULTMETHOD when refchecking concreteness
cb028ba SI-7818 Cast our way out of extended existential angst
2391887 SI-7767 Test case for Scaladoc on early initializers
48283ca SI-7767 avoid rejecting Scaladoc comments in early initializers
fe9a3e9 SI-7269 Rework MapLike#retains to account for desugaring change
a19babc SI-7814 Updates the instrumented version of ScalaRuntime.
fb43ec8 SI-7814 Avoid init cycle between Predef, `package`, ScalaRuntime
7804cec [nomaster] SI-7652 REPL extended quest for tools
8b10daf [nomaster] SI-7652 Bad tools fails loudly
9772ec8 typedAnnotated no longer emits nulls
a78dddd Modify perRunCaches to not leak WeakReferences
989c3f8 SI-7149 Use a WeakHashSet for type uniqueness
3ada703 SI-7150 Replace scala.reflect.internal.WeakHashSet
bce786f SI-7782 Derive type skolems at the ground level
27d61a2 SI-4760 Parser handles block-ending import
cb9f2b9 [nomaster] SI-7790 No ScriptEngine in 2.10 build
133b5c0 Commit .gitignore directly
9d5ed33 SI-7775 Harden against the shifting sands of System.getProperties
5dbc37d SI-7779 Account for class name compactification in reflection
bc6d4b5 SI-7486 More tests for cycles triggered by implicit search
ed34bcb SI-942 A test case, five years adrift.
42e0f73 SI-7716 Exclude patmat synthetics from bounds checking
076a92b SI-7603 Remove diagnostic code for annotation error
ab8a223 SI-7603 Fix thread safety of FlagTranslation
75b44a6 [nomaster] macro expansions are now auto-duplicated
3222add SI-7752 Don't disambiguate type parameters of overloaded alts
f91242c SI-7014 Annot arg may refer to annotated class's member
e65321c SI-7694 Add @uncheckedBounds to the library
5724cae SI-7694 @uncheckedBounds, an opt-out from type bounds checking
ebb01e0 SI-7020 Determinism for pattern matcher warnings
1d28fe6 [nomaster] SI-7733 reflective packages now more consistent with scalac
1dac5ef showRaw now prints symbols of def trees
26a8679 currentRun.compiles now correctly works in toolboxes
5626c74 [nomaster] macro errors now always have positions
36524c2 SI-7331 tb.parse returns unpositioned trees
cd41987 SI-4907 SI-4615 scala.bat honors -J and -D options.
2864c7f brings JavaMirrors up to speed with ClassfileParser
79009e3 Rename t7636-neg.check to the standard t7636.check.
050b4c9 SI-7455 Drop dummy param for synthetic access constructor
c4bf1d5 SI-7636 Fix a NPE in typing class constructors
2473e66 SI-7687 Handle spaces in %COMSPEC% path in scala.bat.
c34b048 [backport] SI-7569 Fix end position in PostfixSelect tree
ef979c0 SI-7657 clarifies the "macro overrides method" rule
48c677c SI-7336 - Link flatMapped promises to avoid memory leaks
06606e8 SI-7265 General test for spec version
6368ae7 SI-7649 Fix positions for reshaped tag materializers
d09a46b fix typo in BigInt/BigDecimal deprecation messages
e72ae70 SI-7617 typedAssign no longer expands lhs
55decf7 makes it more convenient to work with SuppressMacroExpansionAttachment
504b5f3 SI-7638 Superaccessor lookup after specialization
eebaae5 SI-7603 Speculative fix for annotation binding error
0c752d7 Less noise on a partest failure.
2285493 SI-7344 Specialize methods in private scopes
e7ac254 SI-7571 Allow nesting of anonymous classes in value classes
d2c5324 Refactoring to the scala-concurrent-tck.scala - there were numerous logical is
da54f34 Cleaning up method implementations in Future Optimizations: 1) Avoiding
c43b504 SI-7343 Fixed phase ordering in specialization
c0ba5eb Removed redundant `retypedMethod` in `Duplicators`
da1ae7a [backport] relax time constraint in duration-tck.scala (for Windows VMs) (cherry
3494397 Add Eclipse project for JUnit tests.
25a8e70 Add support for JUnit tests
c71fa58 [backport] SI-7498 ParTrieMap.foreach no longer crashes
d5288f8 SI-7505 Test case for pattern matcher + type alias bug
ac4e3ca Refactor testing logic for only running under certain JDK versions
fc6da8d Test for reading JDK 8 (classfile format 52) class files.
608f577 SI-6841 Fix bug at the intersection of DelayedInit and named args
dd5fa60 SI-7558 Fix capture of free local vars in toolbox compiler
28c5f73 SI-7556 Fix runtime reflection involving ScalaLongSignature
d2faeb9 SI-7507 Fix lookup of private[this] member in presence of self type.
4dc3a33 SI-7375 ClassTag for value class aliases
b941551 SI-6138 Centralize and refine detection of `getClass` calls
f92ef91 SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except
5b54681 SI-7473 Bad for expr crashes postfix
bae4196 A test case for a recent LUB progression.
e18e48d SI-7421 remove unneeded extra-attachement in maven deploy
d38e8ae SI-7497 Fix scala.util.Properties.isMac
b89dc03 Increase build.number to 2.10.3
658d90a c.typeCheck(silent = true) now suppresses ambiguous errors
73d494d Reimplementing much of the DefaultPromise methods Optimizations: 1) Avoiding to