October 1, 2013
We are very happy to announce the final release of Scala 2.10.3!
The release is available for download from scala-lang.org or from Maven Central.
The Scala team and contributors fixed 50 issues since 2.10.2!
In total,
63 RC1 pull requests,
19 RC2 pull requests and
2 RC3 pull requests
were opened on GitHub of which 72 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 this release 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
---: | ---
33 | 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 | Iulian Dragos
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-7862 | 8e11dcb | [nomaster] SI-7862: MANIFEST.MF file for Scala sources
SI-7861 | 7f4b44b | SI-7861 Don't execute internal callbacks on the user Executor
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
---: | ---
8e11dcb | [nomaster] SI-7862: MANIFEST.MF file for Scala sources
7f4b44b | SI-7861 Don't execute internal callbacks on the user Executor
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