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:
- for Eclipse 4.2/4.3 (Juno/Kepler)
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
-
A class may now extend
AnyVal
to make it behave like a struct type (restrictions apply). -
https://docs3.scala-lang.org/overviews/core/value-classes.html
-
-
Implicit Classes
-
The implicit modifier now also applies to class definitions to reduce the boilerplate of implicit wrappers.
-
-
String Interpolation
-
val what = "awesome"; println(s"string interpolation is ${what.toUpperCase}!")
-
https://docs3.scala-lang.org/overviews/core/string-interpolation.html
-
-
Futures and Promises
-
Asynchronously get some JSON:
for (req <- WS.url(restApiUrl).get()) yield (req.json \ "users").as[List[User]]
(uses play!)
-
-
Dynamic and applyDynamic
-
x.foo
becomesx.applyDynamic("foo")
ifx
’s type does not define afoo
, but is a subtype ofDynamic
-
-
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
-
Get on top of the advanced Scala features used in your codebase by explicitly importing them.
-
https://docs3.scala-lang.org/sips/modularizing-language-features.html
-
-
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.
-
Performance Improvements
-
Faster inliner
-
Range#sum
is now O(1) -
Update of ForkJoin library
-
Fixes in immutable
TreeSet
/TreeMap
-
Improvements to PartialFunctions
-
- Addition of
???
andNotImplementedError
- Addition of
IsTraversableOnce
+IsTraversableLike
type classes for extension methods -
Deprecations and cleanup
-
Floating point and octal literal syntax deprecation
-
Removed scala.dbc
-
Experimental features
-
Scala Reflection
-
Macros
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 hxxp://scalamacros.org/news/2012/11/05/status-update.html.
A big thank you to all the contributors!
# | Author |
---|---|
26 | |
15 | |
5 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 |
Commits and the issues they fixed since v2.10.3
Issue(s) | Commit | Message |
---|---|---|
SI-7902 | 5f4011e | |
SI-8205 | 8ee165c | |
SI-8126, SI-6566 | 806b6e4 | |
SI-8146, SI-8146, SI-8146, SI-8146 | ff13742 | |
SI-6443, SI-8143 | 1baf11a | |
SI-8152 | 9df2dcc | |
SI-8111 | c91d373 | |
SI-8111 | 2c770ae | |
SI-7120, SI-8114, SI-7120 | 5876e8c | |
SI-7636, SI-6563 | 255c51b | |
SI-8104, SI-8104 | c0cb1d8 | |
SI-8085 | 7e85b59 | |
SI-8085 | a12dd9c | |
SI-6426 | 47562e7 | |
SI-8062 | f0d913b | |
SI-7912 | 006e2f2 | |
SI-8060 | bb427a3 | |
SI-7995 | 5ed834e | |
SI-8019 | c955cf4 | |
SI-8029 | fdcc262 | |
SI-7439 | 8d74fa0 | |
SI-8010 | 9036f77 | |
SI-7982 | 7d41094 | |
SI-6913 | 7063439 | |
SI-7458 | 02308c9 | |
SI-7548 | 652b3b4 | |
SI-7548 | b7509c9 | |
SI-8005 | 3629b64 | |
SI-8004 | 696545d | |
SI-7463, SI-8003 | b915f44 | |
SI-7280 | 053a274 | |
SI-7915 | 04df2e4 | |
SI-7776 | d15ed08 | |
SI-6546 | 075f6f2 | |
SI-7638, SI-4012 | e09a8a2 | |
SI-7519 | 50c8b39e | |
SI-7519 | ce74bb0 | |
SI-4936, SI-6026 | e350bd2 | |
SI-6026 | 2bfe0e7 | |
SI-7295 | 25bcba5 | |
SI-7020 | 7b56021 | |
SI-7783 | 2ccbfa5 | |
SI-7815 | 733b322 |
Complete commit list!
sha | Title |
---|---|
5f4011e | |
8ee165c | |
d167f14 | |
806b6e4 | |
ff13742 | |
cbb88ac | |
1baf11a | |
9df2dcc | |
c91d373 | |
2c770ae | |
5876e8c | |
bd4adf5 | |
255c51b | |
c0cb1d8 | |
7e85b59 | |
a12dd9c | |
3fa2c97 | |
2aa9da5 | |
47562e7 | |
f0d913b | |
9cdbe28 | |
006e2f2 | |
bb427a3 | |
27a3860 | |
139ba9d | |
e555106 | |
dc6dd58 | |
f8d8f7d | |
5ed834e | |
c955cf4 | |
fdcc262 | |
8d74fa0 | |
9036f77 | |
3faa2ee | |
7d41094 | |
7063439 | |
02308c9 | |
652b3b4 | |
b7509c9 | |
0c963c9 | |
3629b64 | |
696545d | |
b915f44 | |
053a274 | |
eb9f0f7 | |
3a8796d | |
04df2e4 | |
ec89b59 | |
1d29c0a | |
31ead67 | |
852a947 | |
40af1e0 | |
ba0718f | |
d15ed08 | |
6045a05 | |
075f6f2 | |
e09a8a2 | |
50c8b39e | |
ce74bb0 | |
e350bd2 | |
2bfe0e7 | |
25bcba5 | |
7b56021 | |
8986ee4 | |
2ccbfa5 | |
ee9138e | |
733b322 |