September 18, 2013
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:
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.
- See the actors migration project for more information.
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
---: | ---
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