March 24, 2014
We are very happy to announce the final release of Scala 2.10.4!
The release is available for download from scala-lang.org or from Maven Central.
The Scala team and contributors fixed 33 issues since 2.10.3!
In total,
36 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 for Eclipse 4.2/4.3 (Juno/Kepler):
* Development version (Scala IDE 3.0.3-rc3 on Scala 2.10.4)
* Stable version (will have 2.10.4 as soon as Scala IDE 3.0.3-vfinal is released)
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