December 20, 2013
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:
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.
- 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
---: | ---
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