- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
Scala 2.10.0 Milestone 7
Created by admin on 2012-08-27.
Updated: 2012-08-27, 16:38
A new milestone release for Scala is available. This release is cut directly from current development and is not intended for production environments, but is a great chance to try out the up and coming features for Scala 2.10.0. The milestone 2.10.0-M7 includes many fixes and improvements, listed below.
New in this milestone:
- Performance Improvements
- Macros:
- c.reify removed, use c.universe.reify instead
- scala.reflect.makro renamed to scala.reflect.macros
- Usages of macros no longer require scala-reflect.jar on library classpath
- Macros now only allow c.AbsTypeTag context bounds (details). Use c.AbsTypeTag instead of c.TypeTag, implicitly[c.AbsTypeTag[T]].tpe instead of c.typeOf[T] (in RC1 there will be a shortcut, c.absTypeOf[T])
- Breakage!! Macro impls for macro defs with implicit parameters cannot have type tag context bounds: https://issues.scala-lang.org/browse/SI-6281. Fixed in RC1, see the linked issue for a workaround.
- Reflection:
- Introduced MethodSymbol.{params, typeParams, returnType}
- asXXXSymbol renamed to asXXX, asType renamed to Type, asTypeConstructor renamed to toTypeConstructor
- Introduced TermSymbol.{getter, setter, accessed} to navigate between accessor symbols and underlying field symbols
- Flags on symbols are gone and replaced with a lot of new isXXX tests
- Some isXXX tests on symbols moved from Symbol to descendants
- Breakage!! isXXX tests don’t work unless a symbol is initialized: https://issues.scala-lang.org/browse/SI-6277. Will be fixed in RC1, see the linked issue for a workaround.
- Some methods on types are gone and should be replaced by pattern matching (e.g. Type.typeParams is removed and is supposed to be acquired by matching against PolyType)
- TermSymbol.resolveOverloaded is removed and is planned to be resurrected in 2.10.1
- base.StandardNames and api.StandardNames have undergone a drastic cleanup
- Implementation of mirrors is now complete: ModuleMirror.instance works for nested modules, MethodMirror.apply support magic symbols, mirrors correctly work with value classes, etc
- See this thread for some info about migration: http://groups.google.com/group/scala-internals/browse_thread/thread/4758995dfa2da9db
- ClassTag.Nothing now throws an exception to emphasize the fact that there are no values of type Nothing. On a second thought, this is deemed to be a mistake and is reverted in RC1.
Here's a list of isssues that have been fixed since v2.10.0-M6
Issue(s) | Commit | Message |
---|---|---|
SI-5788 | c17c95ca3f | SI-5788 correct test and symbol update |
SI-6236 | faa114e2fb | Fixes SI-6236. |
SI-6189 | 5a8dfad583 | Fixes SI-6189. |
SI-6234 | 41bf9c3c35 | Fixes backend crash due to incorrect consumedTypes |
SI-6167 | 7281be9599 | SI-6167 Override SeqLike#isEmpty for better performance |
SI-6223 | 97ae6f6f72 | Move side-effecting call out of debuglog(). Fixes SI-6223. |
SI-5940, SI-5940 | 64138082a4 | SI-5940 impls are no longer in macro def pickles |
SI-6214 | 21fcf64c81 | Fixes SI-6214. |
SI-6198 | cef4726232 | Added test for SI-6198 |
SI-6201 | 8d87387e6a | SI-6201 minor fixes in key points |
SI-6022 | 9108b2506c | SI-6022 cleaner model of variable equality modulo <: |
SI-6022 | e232a614dd | SI-6022 refactor to clean up model of variable equality modulo <: |
SI-6184 | d97f7d9543 | SI-6184 don't introduce dummies in checkableType |
SI-6204, SI-6204 | 4ced74a5ee | SI-6204 reifier no longer causes cyclic errors |
SI-5756 | 2ba6774766 | SI-5756 correctly reifies local module classes |
SI-5687 | 95b3648982 | Fixes SI-5687. |
SI-5158, SI-6070, SI-5739 | 8ebe8e3e88 | SI-5739 (bis) vals for subpatterns unless -optimize |
SI-4023, SI-5947 | 81535ce5b9 | SI-5947 works around getDeclaredClasses |
SI-6040 | f76306b77f | SI-6040 error on unauthorized extension Dynamic |
SI-5933 | 8aebc6c805 | SI-5933 do the new patmat translation for scaladoc |
SI-6186 | 788478d3ab | SI-6186 TypeTags no longer supported in macros |
SI-5498 | e8f1a423d1 | SI-5498 completes ModuleMirror.instance |
SI-6183 | 383fd5c137 | SI-6183 don't crash on type error in outer test |
SI-6145, SI-6145, SI-6145 | 9d330e3c83 | SI-6145 lax typing of args to synthetic case-labels |
SI-6199 | cac52ac3e3 | SI-6199 unit-returning methods now return unit |
SI-4945 | 963aabbeb4 | Fix for SI-4945, repl hang on -i input. |
SI-6181 | 3c4f4865f6 | SI-6181 method mirrors now support by-name args |
SI-6179 | 3aa221e28c | SI-6179 mirrors now work with value classes |
SI-6178 | 432d7b86cb | SI-6178 reflective invocation of magic symbols |
SI-6063 | b65b7b1392 | Fix for SI-6063, broken static forwarders. |
SI-5788, SI-5788 | f492d0aaaa | SI-5788 Tailcalls LabelDefs correctly duplicated |
SI-6188 | cb6066ee61 | Temporarily skips failing test due to optimizer bug SI-6188 |
SI-6185 | 5b82a9702d | SI-6185 - add "prepare" hook to ExecutionContext |
SI-6074 | 816c291006 | SI-6074 |
SI-6175 | ce4bcb5362 | SI-6175 reflect over classes with symbolic names |
SI-6172 | d1a95c8789 | Fixes SI-6172. |
SI-5919, SI-5908 | a354ec2a77 | first stab at serialization of exprs and tags |
SI-5888 | b578059b43 | SI-5888 Mirrors now have sane toStrings |
SI-5736 | 7112c66d69 | navigation between fields and accessors |
SI-5732, SI-5732 | a727c6fc19 | SI-5732 members and derivatives now return Scope |
SI-5751 | ddcba10984 | SI-5751 cleans up toolboxes for the release |
SI-6084 | 991b50f3f4 | Fix for SI-6084, type alias crasher. |
SI-5764 | 6d088252ba | SI-5764 Honor -language:_ |
SI-5866 | 5589eeeb9a | SI-5866 Support casting null to value classes |
SI-5031 | 2a14dd2d23 | Fixed SI-5031. Only consider classes when looking for companion class. sym.effectiveOwner revealed this piece of inconsistency. companionModule is fine because similar check is there already. |
SI-5799 | aad84ecba3 | SI-5799 Secondary constructors in value classes not allowed |
SI-5878 | daf0953c1f | Closes SI-5878 |
SI-5882 | 95d5323583 | Closes SI-5882 |
SI-6146 | a4bb3b679a | Changed isHidden condition back to isSynthetic. |
SI-5958 | ae28472bc7 | SI-5958 This deserves a stable type |
SI-6140 | fa09fad51f | SI-6140 Scaladoc infinite recursion in wiki parser |
SI-4601, SI-4560 | cf709c2dd2 | SI-4560 - improved test |
SI-4601, SI-4560 | 6eb55d4b7a | Fix SI-4560, NoSuchMethodErrors involving self types. |
SI-5897 | 115eede127 | SI-5897 don't check sensicality in match |
SI-2038 | e6912050bf | SI-2038 make pt fully-defined when typing Typed |
Special thanks to all the contribtuors!
# | Author |
---|---|
48 | Eugene Burmako |
31 | Martin Odersky |
23 | Paul Phillips |
15 | Adriaan Moors |
10 | Grzegorz Kossakowski |
6 | Hubert Plociniczak |
5 | Vlad Ureche |
5 | Ruediger Klaehn |
4 | Johannes Rudolph |
2 | Lukas Rytz |
2 | Aleksandar Prokopec |
2 | phaller |
1 | Erik Osheim |
1 | Heather Miller |
1 | Iulian Dragos |
1 | clhodapp |
1 | Simon Ochsenreither |
Community Projects
Special thanks to the 22 projects that have made releases available for this version of Scala!
- scala-arm
Scala-arm provides automated resource management to ensure all your resources are closed without all the extra work!
Location: "org.scala-lang" % "scala-arm_2.10.0-M7" % "1.2"
- scalaz
Scalaz: Type Classes and Pure Functional Data Structures for Scala
Location: "org.scalaz" % "scalaz-core_2.10.0-M7" % "6.0.3" "org.scalaz" % "scalaz-core_2.10.0-M7" % "6.0.4" "org.scalaz" % "scalaz-core_2.10.0-M7" % "7.0.0-M3"
- ScalaInterpreterPane
A Swing based front-end for the Scala REPL (interpreter)
Location: "de.sciss" %% "scalainterpreterpane" % "1.1.+"
- AudioWidgets
Specialized Swing widgets for audio applications in Scala
Location: "de.sciss" %% "audiowidgets" % "1.0.+"
- ScalaAudioWidgets
Scala-Swing wrappers for the AudioWidgets library
Location: "de.sciss" %% "scalaaudiowidgets" % "1.0.+"
- ScalaAudioFile
A library to read and write uncompressed audio files (AIFF, WAVE, etc.)
Location: "de.sciss" %% "scalaaudiofile" % "1.0.+"
- ScalaOSC
A library for OpenSoundControl (OSC), a message protocol used in multi-media applications.
Location: "de.sciss" %% "scalaosc" % "1.0.+"
- ScalaCollider
A sound synthesis library for the SuperCollider server
Location: "de.sciss" %% "scalacollider" % "1.0.+"
- ScalaColliderSwing
A Swing and REPL front-end for ScalaCollider
Location: "de.sciss" %% "scalacolliderswing" % "1.0.+"
- Scala-IO Core
Library for idiomatic IO in Scala
Location: "com.github.scala-incubator.io" % "scala-io-core_2.10" % "0.4.1"
- Scala-IO File
Library for idiomatic Filesystem access in Scala
Location: "com.github.scala-incubator.io" % "scala-io-file_2.10" % "0.4.1"
- specs2
specs2 is a library for executable specifications in Scala
Location: "org.specs2" % "specs2_2.10.0-M7" % "1.12.1"
- ScalaTest
ScalaTest - simple, clear tests and executable specifications
Location: "org.scalatest" % "scalatest_2.10.0-M7" % "1.9-2.10.0-M7-B1"
- Scales Xml
Scales Xml provides superb performance with low memory usage, a unified pull and push model, Iteratee and Iterator based pull parsing, equality framework, both an embedded XPath DSL and string based XPath 1.0 support.
Location: "org.scalesxml" % "scales-xml_2.10.0-M7" % "0.3.0"
- parboiled
Elegant parsing in Java and Scala - lightweight, easy-to-use, powerful.
Location: "org.parboiled" % "parboiled-scala" % "1.1" Repository: http://repo.spray.cc
- scalalogging
Convenient and performant logging in Scala
Location: "com.typesafe" %% "scalalogging-slf4j" % "0.3.0-SNAPSHOT" cross CrossVersion.full
- scala-stm
Software transactional memory for Scala
Location: resolvers += ("releases" at "http://oss.sonatype.org/content/repositories/releases") libraryDependencies += ("org.scala-tools" %% "scala-stm" % "0.6")
- Akka
Akka is a platform for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM.
Location: Repository: http://repo.akka.io/releases/ "com.typesafe.akka" % "akka-actor_2.10.0-M7" % "2.1-M2" Docs: http://doc.akka.io/docs/akka/2.1-M1/ ScalaDoc: http://doc.akka.io/api/akka/2.1-M1/#package Full distribution: http://akka.io/downloads/
- kiama
Kiama is a language processing library
Location: "com.googlecode.kiama" % "kiama_2.10.0-M7" % "1.4.0-B1""
Complete commit list!
sha | Title |
---|---|
d971777c87 | rebuilt the starr after performance optimizations |
df9f470f14 | Attempts to improve inlining behavior for map, flatMap. |
ebb719fb92 | Slightly less drastic disabling of statistics. |
bc4e1442b4 | Reverted closure hoisting except for functions returning a Boolean result |
5978a52314 | Partial revert of itransform commit. |
80ba578458 | Reverted addition of 5 specialized method from LinearSeqOptimized to List. |
82c61687d8 | Manaul inling of `UndoLog.undoUnless`. |
c2aae3faa5 | Optimizations to SymTree and transform |
2a2d92352c | Moved five methods from LinearSeqOptimized to List |
67756313a1 | Don't allocate closure in List.hashCode. |
b2f8acda75 | Rework synchronization scheme of `UndoLog` for performance. |
76d8f8bb4b | Mark logging methods in `SymbolTable` with `@inline`. |
fb3157726b | Make Array creation more efficient in hot places. |
1ee7ffb6fd | Optimizations to cut down on #closures created |
0cde930b19 | Made hashCode a method on Type to avoid megamorphic dispatch |
51f47a3c3f | Optimization to atOwner |
1241af326c | Method splitting for erasure, genJVM, parsers, scanners, uncurry |
3bf87369cf | Second part of typed1 optimization |
1a6a9b4c75 | More method hoisting. |
cf9b7ae086 | Compilespeed improvements: Exists arguments and others |
bef9b2ae3d | Fix for community build blocker. |
c17c95ca3f | SI-5788 correct test and symbol update |
ac430ac8ba | cleanup for macroExpand |
b16ea5075c | Restored lastNoSuccess to Parsers. |
05407cdf19 | Use rawflags for checking FINAL flag. |
faa114e2fb | Fixes SI-6236. |
5a8dfad583 | Fixes SI-6189. |
1b3054c077 | Hunting down eliminable :: allocations. |
4b5bf74c69 | Absolutize tools.nsc => scala.tools.nsc. |
5c6d6f4095 | Optimization in SubstMap. |
414106d32c | macroImplSigs => macroImplSig |
6a67ef6914 | phaseId(currentPeriod) >= erasurePhase.id |
8ca3cdb569 | materializeImplicit and implicitsOfExpectedType |
46d57d47e8 | cleanup of reflection- and macro-related stuff |
ce90a46a69 | adds the `skipPackage` attribute to Scaladoc |
41bf9c3c35 | Fixes backend crash due to incorrect consumedTypes |
7281be9599 | SI-6167 Override SeqLike#isEmpty for better performance |
9285bdbd40 | don't catch StackOverFlowError: kills performance |
f783d0b16b | accommodated the feedback for the pull request |
37a290b02e | HIDDEN => ARTIFACT |
caf7eb6b56 | Fix for view isEmpty. |
97ae6f6f72 | Move side-effecting call out of debuglog(). Fixes SI-6223. |
46aab7b8d7 | macro implementations must be public |
64138082a4 | SI-5940 impls are no longer in macro def pickles |
613970af6b | Rewrite of transformTypeTagEvidenceParams. |
01067efa93 | .ensime template for compiler development |
21fcf64c81 | Fixes SI-6214. |
a55788e275 | More resilience to missing classes. |
5d4e4e29b9 | Added make not private logic for @inline accesses back to ExplicitOuter. |
88c9a3cdf1 | A little less indirection. |
cef4726232 | Added test for SI-6198 |
8d87387e6a | SI-6201 minor fixes in key points |
79b0da95b4 | a follow up on e01ec05a1e |
ceb414fa47 | some more copyright cleanup for 2012 |
e01ec05a1e | refines api.FlagSets |
e62248c510 | Ensure that a.merged(b)(null) always chooses a in case of collisions |
39ef1e1e90 | Removed hot statistics call in normal path. |
1f3f1addfd | Only create a HashTrieSet if necessary. |
f71dca29e4 | Made inliner work for @inline methods that access private variables. |
f07501e6f9 | Support per-group flags files in partest |
9108b2506c | SI-6022 cleaner model of variable equality modulo <: |
e232a614dd | SI-6022 refactor to clean up model of variable equality modulo <: |
9cc1f88ad4 | Allow skipping the xz archives |
d97f7d9543 | SI-6184 don't introduce dummies in checkableType |
4c255c46fe | Create a HashSet1 in case ks1 contains just one entry |
90714e7d4a | Renamed elem to head and next to tail |
4ced74a5ee | SI-6204 reifier no longer causes cyclic errors |
2ba6774766 | SI-5756 correctly reifies local module classes |
1183f0639e | an important fixup for macro universe API |
e6b4204604 | Moved inline logic before pickler. |
802771b403 | Better pattern matcher error message. |
95b3648982 | Fixes SI-5687. |
8ebe8e3e88 | SI-5739 (bis) vals for subpatterns unless -optimize |
81535ce5b9 | SI-5947 works around getDeclaredClasses |
f76306b77f | SI-6040 error on unauthorized extension Dynamic |
8aebc6c805 | SI-5933 do the new patmat translation for scaladoc |
788478d3ab | SI-6186 TypeTags no longer supported in macros |
4caa766e85 | Enable inlining in constructors. |
cc3badae17 | Removes AnyRef specialization from library |
e8f1a423d1 | SI-5498 completes ModuleMirror.instance |
90533942f0 | Makes all private variables accessed from an @inline method non-private. |
383fd5c137 | SI-6183 don't crash on type error in outer test |
9d330e3c83 | SI-6145 lax typing of args to synthetic case-labels |
fd3601a833 | Restored :warnings to working order. |
cac52ac3e3 | SI-6199 unit-returning methods now return unit |
963aabbeb4 | Fix for SI-4945, repl hang on -i input. |
7bcb9da473 | mirrors now support overriden fields and methods |
3cbe07f3e3 | sanity check for reflectConstructor |
3c4f4865f6 | SI-6181 method mirrors now support by-name args |
3aa221e28c | SI-6179 mirrors now work with value classes |
432d7b86cb | SI-6178 reflective invocation of magic symbols |
b65b7b1392 | Fix for SI-6063, broken static forwarders. |
f492d0aaaa | SI-5788 Tailcalls LabelDefs correctly duplicated |
d2ab211814 | compatibility stub for SBT 0.12.0 |
f6f15279aa | adds more tests for api.Symbols |
cb6066ee61 | Temporarily skips failing test due to optimizer bug SI-6188 |
5b82a9702d | SI-6185 - add "prepare" hook to ExecutionContext |
c533bf30a4 | Clear uniques via perRunCaches. |
816c291006 | SI-6074 |
ce4bcb5362 | SI-6175 reflect over classes with symbolic names |
f16e2c0874 | Better worksheet support. |
d1a95c8789 | Fixes SI-6172. |
a354ec2a77 | first stab at serialization of exprs and tags |
a19f0e83bf | deploys a new starr that knows reify is a macro |
f7164b8715 | moves Expr from api to base |
a0a63c4558 | evicts last traces of makro from our codebase |
9892f52adf | reflect.makro => reflect.macros (Step I) |
5e1a005252 | removes -Xmacro-(.*)-classpath compiler options |
f126f40b8c | prepares our macro defs for refactoring (Step II) |
280c4906d1 | prepares our macro defs for refactoring (Step I) |
027b00171c | more refinements of reflection API |
b578059b43 | SI-5888 Mirrors now have sane toStrings |
013acf6eb0 | renames asType to toType and asXXXSymbol to asXXX |
367b82de04 | miscellaneous refinements of reflection API |
7112c66d69 | navigation between fields and accessors |
37d4bfe77c | moves most of symbol tests in API to descendants |
336145f979 | simplifies flag API |
a727c6fc19 | SI-5732 members and derivatives now return Scope |
ddcba10984 | SI-5751 cleans up toolboxes for the release |
f0f4fedd50 | I actually managed to hit the limit of Scala signature annotation not fitting into a single string (high five everyone) and entered the undisovered region of arrEncode in GenASM. arrEncode returns Array[String] so asm.AnnotationWriter is not going to like it. |
848756d47b | Added more variants to achieve getLinkPos |
8d4b4262b0 | Checkfile update. |
82f818eeef | Fixed maddening "..." lately in printed types. |
991b50f3f4 | Fix for SI-6084, type alias crasher. |
6d088252ba | SI-5764 Honor -language:_ |
7d8c464791 | Removed resolveOverloaded |
5589eeeb9a | SI-5866 Support casting null to value classes |
a5aa050a25 | ClassTag.Nothing now throws an exception |
2a14dd2d23 | Fixed SI-5031. Only consider classes when looking for companion class. sym.effectiveOwner revealed this piece of inconsistency. companionModule is fine because similar check is there already. |
aad84ecba3 | SI-5799 Secondary constructors in value classes not allowed |
daf0953c1f | Closes SI-5878 |
e245b68129 | Promote unchecked warnings into being emitted by default. |
95d5323583 | Closes SI-5882 |
ed915c54cc | Closed 6029 ... |
e3bfe10973 | New Worksheet mixing scheme |
b964bac5e2 | Raw string interpolator |
e896c0ab2d | Adds method askForResponse |
50903959ef | Disable interrupts during code instrumentation |
923d5e0229 | New Executor. |
f15dc74394 | Eliminated all the current feature warnings. |
a4bb3b679a | Changed isHidden condition back to isSynthetic. |
61d1933e29 | Eliminated remainder of "catches Throwable" warnings. |
bc719cb8e4 | Improve unchecked warnings a lot. |
54bab793ae | Avoids loading scala.package and scala.reflect.package from source if a classfile exists. |
33118594a3 | `ScriptSourceFile` should not hard-code `OffsetPosition`. |
6c734305a9 | Fix `Instrumentation.getStatistics` method in partest. |
9e04e2365a | Instrument all classes in `instrumented` package. |
ae28472bc7 | SI-5958 This deserves a stable type |
fa09fad51f | SI-6140 Scaladoc infinite recursion in wiki parser |
cf709c2dd2 | SI-4560 - improved test |
c8bdf19947 | Revert "tentative fix for RC5 lift build problem." |
097e5690e5 | Revert "Closes #4560. Review by dragos." (introduction of safeREF) |
8abdfa48e4 | Revert fix part of "Closes 4560. Review by dragos." |
6eb55d4b7a | Fix SI-4560, NoSuchMethodErrors involving self types. |
75eb8a4984 | use hasAllFlags to detect gadt skolems |
115eede127 | SI-5897 don't check sensicality in match |
0391436aa1 | move synthetic case symbol detection to treeInfo |
e6912050bf | SI-2038 make pt fully-defined when typing Typed |
- Login or register to post comments
- Printer-friendly version
Re: Scala 2.10.0 Milestone 7
Is there any brief material introducing the new feature included in 2.10.0 ?
Re: Scala 2.10.0 Milestone 7
This slideshare link might help for 2.10.