category | title |
---|---|
announcement |
Scala 2.10.3 is now available! |
We are very happy to announce the final release of Scala 2.10.3!
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.
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.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). -
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 |
---|---|
33 | Jason Zaugg |
12 | Eugene Burmako |
6 | Som Snytt |
4 | Vlad Ureche |
4 | James Iry |
4 | Grzegorz Kossakowski |
4 | François Garillot |
3 | Adriaan Moors |
3 | Viktor Klang |
2 | Antoine Gourlay |
2 | Simon Ochsenreither |
1 | Christopher Vogt |
1 | Seth Tisue |
1 | Iulian Dragos |
1 | Aleksandar Prokopec |
1 | Roland Kuhn |
1 | Den Shabalin |
1 | Rich Dougherty |
Issue(s) | Commit | Message |
---|---|---|
SI-7862 | 8e11dcb | [nomaster] SI-7862: MANIFEST.MF file for Scala sources |
SI-7861 | 7f4b44b | SI-7861 Don't execute internal callbacks on the user Executor |
SI-7398 | a1796aa | SI-7398 Enable test for Java 8 source parser under Java 8 |
SI-7825 | bf0f9da | SI-7825 Consider DEFAULTMETHOD when refchecking concreteness |
SI-7818 | cb028ba | SI-7818 Cast our way out of extended existential angst |
SI-7767 | 2391887 | SI-7767 Test case for Scaladoc on early initializers |
SI-7767 | 48283ca | SI-7767 avoid rejecting Scaladoc comments in early initializers |
SI-7269 | fe9a3e9 | SI-7269 Rework MapLike#retains to account for desugaring change |
SI-7814 | a19babc | SI-7814 Updates the instrumented version of ScalaRuntime. |
SI-7814 | fb43ec8 | SI-7814 Avoid init cycle between Predef, package , ScalaRuntime |
SI-7652 | 7804cec | [nomaster] SI-7652 REPL extended quest for tools |
SI-7652 | 8b10daf | [nomaster] SI-7652 Bad tools fails loudly |
SI-7149 | 989c3f8 | SI-7149 Use a WeakHashSet for type uniqueness |
SI-7150 | 3ada703 | SI-7150 Replace scala.reflect.internal.WeakHashSet |
SI-7782 | bce786f | SI-7782 Derive type skolems at the ground level |
SI-4760 | 27d61a2 | SI-4760 Parser handles block-ending import |
SI-7790 | cb9f2b9 | [nomaster] SI-7790 No ScriptEngine in 2.10 build |
SI-7775 | 9d5ed33 | SI-7775 Harden against the shifting sands of System.getProperties |
SI-7779 | 5dbc37d | SI-7779 Account for class name compactification in reflection |
SI-7486 | bc6d4b5 | SI-7486 More tests for cycles triggered by implicit search |
SI-7778, SI-942 | ed34bcb | SI-942 A test case, five years adrift. |
SI-7756, SI-7694, SI-7716 | 42e0f73 | SI-7716 Exclude patmat synthetics from bounds checking |
SI-7603 | 076a92b | SI-7603 Remove diagnostic code for annotation error |
SI-7603 | ab8a223 | SI-7603 Fix thread safety of FlagTranslation |
SI-7752 | 3222add | SI-7752 Don't disambiguate type parameters of overloaded alts |
SI-7014 | f91242c | SI-7014 Annot arg may refer to annotated class's member |
SI-7694 | e65321c | SI-7694 Add @uncheckedBounds to the library |
SI-7694 | 5724cae | SI-7694 @uncheckedBounds, an opt-out from type bounds checking |
SI-7020 | ebb01e0 | SI-7020 Determinism for pattern matcher warnings |
SI-7733 | 1d28fe6 | [nomaster] SI-7733 reflective packages now more consistent with scalac |
SI-7331 | 36524c2 | SI-7331 tb.parse returns unpositioned trees |
SI-4907, SI-4615 | cd41987 | SI-4907 SI-4615 scala.bat honors -J and -D options. |
SI-7455 | 050b4c9 | SI-7455 Drop dummy param for synthetic access constructor |
SI-7636 | c4bf1d5 | SI-7636 Fix a NPE in typing class constructors |
SI-7687 | 2473e66 | SI-7687 Handle spaces in %COMSPEC% path in scala.bat. |
SI-7569 | c34b048 | [backport] SI-7569 Fix end position in PostfixSelect tree |
SI-7657 | ef979c0 | SI-7657 clarifies the "macro overrides method" rule |
SI-7336 | 48c677c | SI-7336 - Link flatMapped promises to avoid memory leaks |
SI-7265 | 06606e8 | SI-7265 General test for spec version |
SI-7649 | 6368ae7 | SI-7649 Fix positions for reshaped tag materializers |
SI-7617 | e72ae70 | SI-7617 typedAssign no longer expands lhs |
SI-7638 | 504b5f3 | SI-7638 Superaccessor lookup after specialization |
SI-7603, SI-7603 | eebaae5 | SI-7603 Speculative fix for annotation binding error |
SI-7579, SI-7344 | 2285493 | SI-7344 Specialize methods in private scopes |
SI-7571 | e7ac254 | SI-7571 Allow nesting of anonymous classes in value classes |
SI-7343 | c43b504 | SI-7343 Fixed phase ordering in specialization |
SI-7498 | c71fa58 | [backport] SI-7498 ParTrieMap.foreach no longer crashes |
SI-7214, SI-7505 | d5288f8 | SI-7505 Test case for pattern matcher + type alias bug |
SI-6841 | 608f577 | SI-6841 Fix bug at the intersection of DelayedInit and named args |
SI-7558 | dd5fa60 | SI-7558 Fix capture of free local vars in toolbox compiler |
SI-7556 | 28c5f73 | SI-7556 Fix runtime reflection involving ScalaLongSignature |
SI-7507 | d2faeb9 | SI-7507 Fix lookup of private[this] member in presence of self type. |
SI-7375 | 4dc3a33 | SI-7375 ClassTag for value class aliases |
SI-6138 | b941551 | SI-6138 Centralize and refine detection of getClass calls |
SI-7236, SI-7237, SI-7391 | f92ef91 | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except |
SI-7473 | 5b54681 | SI-7473 Bad for expr crashes postfix |
SI-7421 | e18e48d | SI-7421 remove unneeded extra-attachement in maven deploy |
SI-7497 | d38e8ae | SI-7497 Fix scala.util.Properties.isMac |
sha | Title |
---|---|
8e11dcb | [nomaster] SI-7862: MANIFEST.MF file for Scala sources |
7f4b44b | SI-7861 Don't execute internal callbacks on the user Executor |
cb4b8eb | update typesafe.artifactory-online.com to private-repo |
bf93057 | Change Scala license to unmodified 3-clause BSD. |
a1796aa | SI-7398 Enable test for Java 8 source parser under Java 8 |
bf0f9da | SI-7825 Consider DEFAULTMETHOD when refchecking concreteness |
cb028ba | SI-7818 Cast our way out of extended existential angst |
2391887 | SI-7767 Test case for Scaladoc on early initializers |
48283ca | SI-7767 avoid rejecting Scaladoc comments in early initializers |
fe9a3e9 | SI-7269 Rework MapLike#retains to account for desugaring change |
a19babc | SI-7814 Updates the instrumented version of ScalaRuntime. |
fb43ec8 | SI-7814 Avoid init cycle between Predef, package , ScalaRuntime |
7804cec | [nomaster] SI-7652 REPL extended quest for tools |
8b10daf | [nomaster] SI-7652 Bad tools fails loudly |
9772ec8 | typedAnnotated no longer emits nulls |
a78dddd | Modify perRunCaches to not leak WeakReferences |
989c3f8 | SI-7149 Use a WeakHashSet for type uniqueness |
3ada703 | SI-7150 Replace scala.reflect.internal.WeakHashSet |
bce786f | SI-7782 Derive type skolems at the ground level |
27d61a2 | SI-4760 Parser handles block-ending import |
cb9f2b9 | [nomaster] SI-7790 No ScriptEngine in 2.10 build |
133b5c0 | Commit .gitignore directly |
9d5ed33 | SI-7775 Harden against the shifting sands of System.getProperties |
5dbc37d | SI-7779 Account for class name compactification in reflection |
bc6d4b5 | SI-7486 More tests for cycles triggered by implicit search |
ed34bcb | SI-942 A test case, five years adrift. |
42e0f73 | SI-7716 Exclude patmat synthetics from bounds checking |
076a92b | SI-7603 Remove diagnostic code for annotation error |
ab8a223 | SI-7603 Fix thread safety of FlagTranslation |
75b44a6 | [nomaster] macro expansions are now auto-duplicated |
3222add | SI-7752 Don't disambiguate type parameters of overloaded alts |
f91242c | SI-7014 Annot arg may refer to annotated class's member |
e65321c | SI-7694 Add @uncheckedBounds to the library |
5724cae | SI-7694 @uncheckedBounds, an opt-out from type bounds checking |
ebb01e0 | SI-7020 Determinism for pattern matcher warnings |
1d28fe6 | [nomaster] SI-7733 reflective packages now more consistent with scalac |
1dac5ef | showRaw now prints symbols of def trees |
26a8679 | currentRun.compiles now correctly works in toolboxes |
5626c74 | [nomaster] macro errors now always have positions |
36524c2 | SI-7331 tb.parse returns unpositioned trees |
cd41987 | SI-4907 SI-4615 scala.bat honors -J and -D options. |
2864c7f | brings JavaMirrors up to speed with ClassfileParser |
79009e3 | Rename t7636-neg.check to the standard t7636.check. |
050b4c9 | SI-7455 Drop dummy param for synthetic access constructor |
c4bf1d5 | SI-7636 Fix a NPE in typing class constructors |
2473e66 | SI-7687 Handle spaces in %COMSPEC% path in scala.bat. |
c34b048 | [backport] SI-7569 Fix end position in PostfixSelect tree |
ef979c0 | SI-7657 clarifies the "macro overrides method" rule |
48c677c | SI-7336 - Link flatMapped promises to avoid memory leaks |
06606e8 | SI-7265 General test for spec version |
6368ae7 | SI-7649 Fix positions for reshaped tag materializers |
d09a46b | fix typo in BigInt/BigDecimal deprecation messages |
e72ae70 | SI-7617 typedAssign no longer expands lhs |
55decf7 | makes it more convenient to work with SuppressMacroExpansionAttachment |
504b5f3 | SI-7638 Superaccessor lookup after specialization |
eebaae5 | SI-7603 Speculative fix for annotation binding error |
0c752d7 | Less noise on a partest failure. |
2285493 | SI-7344 Specialize methods in private scopes |
e7ac254 | SI-7571 Allow nesting of anonymous classes in value classes |
d2c5324 | Refactoring to the scala-concurrent-tck.scala - there were numerous logical is |
da54f34 | Cleaning up method implementations in Future Optimizations: 1) Avoiding |
c43b504 | SI-7343 Fixed phase ordering in specialization |
c0ba5eb | Removed redundant retypedMethod in Duplicators |
da1ae7a | [backport] relax time constraint in duration-tck.scala (for Windows VMs) (cherry |
3494397 | Add Eclipse project for JUnit tests. |
25a8e70 | Add support for JUnit tests |
c71fa58 | [backport] SI-7498 ParTrieMap.foreach no longer crashes |
d5288f8 | SI-7505 Test case for pattern matcher + type alias bug |
ac4e3ca | Refactor testing logic for only running under certain JDK versions |
fc6da8d | Test for reading JDK 8 (classfile format 52) class files. |
608f577 | SI-6841 Fix bug at the intersection of DelayedInit and named args |
dd5fa60 | SI-7558 Fix capture of free local vars in toolbox compiler |
28c5f73 | SI-7556 Fix runtime reflection involving ScalaLongSignature |
d2faeb9 | SI-7507 Fix lookup of private[this] member in presence of self type. |
4dc3a33 | SI-7375 ClassTag for value class aliases |
b941551 | SI-6138 Centralize and refine detection of getClass calls |
f92ef91 | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except |
5b54681 | SI-7473 Bad for expr crashes postfix |
bae4196 | A test case for a recent LUB progression. |
e18e48d | SI-7421 remove unneeded extra-attachement in maven deploy |
d38e8ae | SI-7497 Fix scala.util.Properties.isMac |
b89dc03 | Increase build.number to 2.10.3 |
658d90a | c.typeCheck(silent = true) now suppresses ambiguous errors |
73d494d | Reimplementing much of the DefaultPromise methods Optimizations: 1) Avoiding to |