February 25, 2014
We are very happy to announce the third 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 31 issues since 2.10.3!
In total,
39 RC1 pull requests, 12 RC2 pull requests and 3 RC3 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
---: | ---
26 | Jason Zaugg
15 | Adriaan Moors
5 | Eugene Burmako
3 | A. P. Marki
3 | Simon Schaefer
3 | Mirco Dotta
3 | Luc Bourlier
2 | Paul Phillips
2 | François Garillot
1 | Mark Harrah
1 | Vlad Ureche
1 | James Ward
1 | Heather Miller
1 | Roberto Tyley
Commits and the issues they fixed since v2.10.3
Issue(s) | Commit | Message
--- | --- | ---
SI-7902 | 5f4011e | [backport] SI-7902 Fix spurious kind error due to an unitialized symbol
SI-8205 | 8ee165c | SI-8205 [nomaster] backport test pos.lineContent
SI-8126, SI-6566 | 806b6e4 | Backports library changes related to SI-6566 from a419799
SI-8146, SI-8146, SI-8146, SI-8146 | ff13742 | [nomaster] SI-8146 Fix non-deterministic <:< for deeply nested types
SI-6443, SI-8143 | 1baf11a | SI-8143 Fix bug with super-accessors / dependent types
SI-8152 | 9df2dcc | [nomaster] SI-8152 Backport variance validator performance fix
SI-8111 | c91d373 | SI-8111 Expand the comment with a more detailed TODO
SI-8111 | 2c770ae | SI-8111 Repair symbol owners after abandoned named-/default-args
SI-7120, SI-8114, SI-7120 | 5876e8c | [nomaster] SI-8114 Binary compat. workaround for erasure bug SI-7120
SI-7636, SI-6563 | 255c51b | SI-6563 Test case for already-fixed crasher
SI-8104, SI-8104 | c0cb1d8 | [nomaster] codifies the state of the art wrt SI-8104
SI-8085 | 7e85b59 | SI-8085 Fix BrowserTraverser for package objects
SI-8085 | a12dd9c | Test demonstrating SI-8085
SI-6426 | 47562e7 | Revert "SI-6426, importable _."
SI-8062 | f0d913b | SI-8062 Fix inliner cycle with recursion, separate compilation
SI-7912 | 006e2f2 | SI-7912 Be defensive calling toString
in MatchError#getMessage
SI-8060 | bb427a3 | SI-8060 Avoid infinite loop with higher kinded type alias
SI-7995 | 5ed834e | SI-7995 completion imported vars and vals
SI-8019 | c955cf4 | SI-8019 Make Publisher check PartialFunction is defined for Event
SI-8029 | fdcc262 | SI-8029 Avoid multi-run cyclic error with companions, package object
SI-7439 | 8d74fa0 | [backport] SI-7439 Avoid NPE in isMonomorphicType
with stub symbols.
SI-8010 | 9036f77 | SI-8010 Fix regression in erasure double definition checks
SI-7982 | 7d41094 | SI-7982 Changed contract of askLoadedType to unload units by default
SI-6913 | 7063439 | SI-6913 Fixing semantics of Future fallbackTo to be according to docs
SI-7458 | 02308c9 | SI-7458 Pres. compiler must not observe trees in silent mode
SI-7548 | 652b3b4 | SI-7548 Test to demonstrate residual exploratory typing bug
SI-7548 | b7509c9 | SI-7548 askTypeAt returns the same type whether the source was fully or targeted
SI-8005 | 3629b64 | SI-8005 Fixes NoPositon error for updateDynamic calls
SI-8004 | 696545d | SI-8004 Resolve NoPosition error for applyDynamicNamed method call
SI-7463, SI-8003 | b915f44 | SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
SI-7280 | 053a274 | [nomaster] SI-7280 Scope completion not returning members provided by imports
SI-7915 | 04df2e4 | SI-7915 Corrected range positions created during default args expansion
SI-7776 | d15ed08 | [backport] SI-7776 post-erasure signature clashes are now macro-aware
SI-6546 | 075f6f2 | SI-6546 InnerClasses attribute refers to absent class
SI-7638, SI-4012 | e09a8a2 | SI-4012 Mixin and specialization work well
SI-7519 | 50c8b39e | SI-7519: Additional test case covering sbt/sbt#914
SI-7519 | ce74bb0 | [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
SI-4936, SI-6026 | e350bd2 | [nomaster] SI-6026 backport getResource bug fix
SI-6026 | 2bfe0e7 | SI-6026 REPL checks for javap before tools.jar
SI-7295 | 25bcba5 | SI-7295 Fix windows batch file with args containing parentheses
SI-7020 | 7b56021 | Disable tests for SI-7020
SI-7783 | 2ccbfa5 | SI-7783 Don't issue deprecation warnings for inferred TypeTrees
SI-7815 | 733b322 | SI-7815 Dealias before deeming method type as dependent
Complete commit list!
sha | Title
---: | ---
5f4011e | [backport] SI-7902 Fix spurious kind error due to an unitialized symbol
8ee165c | SI-8205 [nomaster] backport test pos.lineContent
d167f14 | [nomaster] corrects an error in reify’s documentation
806b6e4 | Backports library changes related to SI-6566 from a419799
ff13742 | [nomaster] SI-8146 Fix non-deterministic <:< for deeply nested types
cbb88ac | [nomaster] Update MiMa and use new wildcard filter
1baf11a | SI-8143 Fix bug with super-accessors / dependent types
9df2dcc | [nomaster] SI-8152 Backport variance validator performance fix
c91d373 | SI-8111 Expand the comment with a more detailed TODO
2c770ae | SI-8111 Repair symbol owners after abandoned named-/default-args
5876e8c | [nomaster] SI-8114 Binary compat. workaround for erasure bug SI-7120
bd4adf5 | More clear implicitNotFound error for ExecutionContext
255c51b | SI-6563 Test case for already-fixed crasher
c0cb1d8 | [nomaster] codifies the state of the art wrt SI-8104
7e85b59 | SI-8085 Fix BrowserTraverser for package objects
a12dd9c | Test demonstrating SI-8085
3fa2c97 | Report error on code size overflow, log method name.
2aa9da5 | Partially revert f8d8f7d08d.
47562e7 | Revert "SI-6426, importable _."
f0d913b | SI-8062 Fix inliner cycle with recursion, separate compilation
9cdbe28 | Fixup #3248 missed a spot in pack.xml
006e2f2 | SI-7912 Be defensive calling toString
in MatchError#getMessage
bb427a3 | SI-8060 Avoid infinite loop with higher kinded type alias
27a3860 | Update README, include doc/licenses in distro
139ba9d | Add attribution for Typesafe.
e555106 | Remove docs/examples; they reside at scala/scala-dist
dc6dd58 | Remove unused android test and corresponding license.
f8d8f7d | Do not distribute partest and its dependencies.
5ed834e | SI-7995 completion imported vars and vals
c955cf4 | SI-8019 Make Publisher check PartialFunction is defined for Event
fdcc262 | SI-8029 Avoid multi-run cyclic error with companions, package object
8d74fa0 | [backport] SI-7439 Avoid NPE in isMonomorphicType
with stub symbols.
9036f77 | SI-8010 Fix regression in erasure double definition checks
3faa2ee | [nomaster] better error messages for various macro definition errors
7d41094 | SI-7982 Changed contract of askLoadedType to unload units by default
7063439 | SI-6913 Fixing semantics of Future fallbackTo to be according to docs
02308c9 | SI-7458 Pres. compiler must not observe trees in silent mode
652b3b4 | SI-7548 Test to demonstrate residual exploratory typing bug
b7509c9 | SI-7548 askTypeAt returns the same type whether the source was fully or targeted
0c963c9 | [nomaster] teaches toolbox about -Yrangepos
3629b64 | SI-8005 Fixes NoPositon error for updateDynamic calls
696545d | SI-8004 Resolve NoPosition error for applyDynamicNamed method call
b915f44 | SI-7463,SI-8003 Correct wrong position for {select,apply}Dynamic calls
053a274 | [nomaster] SI-7280 Scope completion not returning members provided by imports
eb9f0f7 | [nomaster] Adds test cases for scope completion
3a8796d | [nomaster] Test infrastructure for scope completion
04df2e4 | SI-7915 Corrected range positions created during default args expansion
ec89b59 | Upgrade pax-url-aether to 1.6.0.
1d29c0a | [backport] Add buildcharacter.properties to .gitignore.
31ead67 | IDE needs swing/actors/continuations
852a947 | Allow retrieving STARR from non-standard repo for PR validation
40af1e0 | Allow publishing only core (pr validation)
ba0718f | Render relevant properties to buildcharacter.properties
d15ed08 | [backport] SI-7776 post-erasure signature clashes are now macro-aware
6045a05 | Fix completion after application with implicit arguments
075f6f2 | SI-6546 InnerClasses attribute refers to absent class
e09a8a2 | SI-4012 Mixin and specialization work well
50c8b39e | SI-7519: Additional test case covering sbt/sbt#914
ce74bb0 | [nomaster] SI-7519 Less brutal attribute resetting in adapt fallback
e350bd2 | [nomaster] SI-6026 backport getResource bug fix
2bfe0e7 | SI-6026 REPL checks for javap before tools.jar
25bcba5 | SI-7295 Fix windows batch file with args containing parentheses
7b56021 | Disable tests for SI-7020
8986ee4 | Disable flaky presentation compiler test.
2ccbfa5 | SI-7783 Don't issue deprecation warnings for inferred TypeTrees
ee9138e | Bump version to 2.10.4 for nightlies
733b322 | SI-7815 Dealias before deeming method type as dependent