category | title |
---|---|
announcement |
Scala 2.10.4-RC3 is now available! |
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.
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)
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 |