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
-
A class may now extend
AnyValto make it behave like a struct type (restrictions apply). -
https://docs.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://docs.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.foobecomesx.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://docs.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#sumis now O(1) -
Update of ForkJoin library
-
Fixes in immutable
TreeSet/TreeMap -
Improvements to PartialFunctions
-
- Addition of
???andNotImplementedError - Addition of
IsTraversableOnce+IsTraversableLiketype 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 http://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 |