We are very happy to announce the RC3 release of Scala 2.10.3! If no serious blocking issues are found this will become the final 2.10.3 version.
The release is available for download from scala-lang.org or from Maven Central.
The Scala team and contributors fixed 50 issues since 2.10.2!
In total, 63 RC1 pull requests, 19 RC2 pull requests and 2 RC3 pull requests were opened on GitHub of which 72 were merged after having been tested and reviewed.
Known Issues
Before reporting a bug, please have a look at these known issues.
Scala IDE for Eclipse
The Scala IDE with Scala 2.10.3-RC3 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.3 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). - http://docs.scala-lang.org/overviews/core/value-classes.html
- A class may now extend
Implicit Classes
- The implicit modifier now also applies to class definitions to reduce the boilerplate of implicit wrappers.
- http://docs.scala-lang.org/sips/pending/implicit-classes.html
String Interpolation
val what = "awesome"; println(s"string interpolation is ${what.toUpperCase}!")
- http://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!) - http://docs.scala-lang.org/overviews/core/futures.html
- Asynchronously get some JSON:
Dynamic and applyDynamic
x.foo
becomesx.applyDynamic("foo")
ifx
's type does not define afoo
, but is a subtype ofDynamic
- http://docs.scala-lang.org/sips/pending/type-dynamic.html
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.
- http://docs.scala-lang.org/sips/pending/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.
- 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
???
andNotImplementedError
Addition of
IsTraversableOnce
+IsTraversableLike
type classes for extension methodsDeprecations 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
---: | ---
1 |
Commits and the issues they fixed since v2.10.3-RC2
Issue(s) | Commit | Message
--- | --- | ---
SI-7862 | 8e11dcb |
Complete commit list!
sha | Title
---: | ---
8e11dcb |