category | title | permalink |
---|---|---|
announcement |
Scala 2.10.4 is now available! |
/news/2.10.4/ |
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.
Before reporting a bug, please have a look at these known issues.
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.
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://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.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://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#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
-
-
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.
# | 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 |
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 |
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 |