This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Scala 2.8.0 final

It is finally here!! After many, many months of hard work, the Scala team is truly happy to announce the new, much-awaited stable release of Scala! The all-new Scala 2.8.0 final distribution is ready to be downloaded from our Download Page. The Scala 2.8.0 codebase includes a huge number of bug fixes with respect to 2.7.7, and an impressive amount of new features. Please read below for further details!

 

The Scala 2.8.0 distribution

What is new?

The Scala 2.8 codebase includes the following new fixes and features:

  • Redesigned collection library
    The collection library has undergone a complete overhaul for Scala 2.8, offering a more coherent and efficient design, while maintaining virtually complete compatibility with existing sources. Detailed information at: http://www.scala-lang.org/sid/3

  • New array implementation, manifests for polymorphic arrays
    Handling of arrays has been simplified and optimized in Scala 2.8. The previous compiler magic has been replaced by a more systematic and predictable implementation in terms of implicit conversions. Full details at: http://www.scala-lang.org/sid/7

  • Type specialization
    Scala 2.8 adds specialized type parameters, which enable the compiler to generate transparently multiple versions of a given definition, and to use the most specific version whenever the static type information at a call site allows it. Details at: http://www.scala-lang.org/sid/9
  • Named and default arguments
    Named arguments improve the readability of method calls with many arguments. Default arguments reduce code duplication, and enable "copy" methods for case classes, useful to generate quickly modified copies of case classes. A complete description at: http://www.scala-lang.org/sid/1
  • Package objects
    Packages can now contain besides classes and objects also methods, fields or type aliases. These are added to a package by declaring a package object. More capabilities might be added to package objects in subsequent releases.
  • Beefed up Scala Swing libraries, better documentation
    Components publish key events, input events can be consumed, refactored window subhierarchy, additional demos, Swing listeners are installed lazily, more complete component caching, minor refactorings, bugfixes, more Scaladocs. Design document at: http://www.scala-lang.org/sid/8
  • Revamped REPL
    Many bugfixes. Tab-completion for all packages on the classpath, as well as object and instance methods and fields, including type aliases and package objects. Searchable history, integrated shell access, and a power mode which offers direct access to compiler internals.
  • Implicits changes
    We have refined the implicit resolution process so that resolution is now able to determine type variables.
  • Improved equality
    Equality across numeric types is to be consistent across all the primitives types, while also adhering to the equals/hashCode contract. Numeric comparisons will have the same results as they would between Java primitive.
  • Packrat parser combinators
    With support for packrat parsing, parser combinators are now able to handle left-recursive grammars and will show improved performance for ambiguous productions.
  • Improved XML library
    Many bugfixes.
  • Type constructor inference
    Type inference has been extended to deal with type constructors, so that, in certain cases, you can omit type parameter lists that contain higher-kinded types (aka type constructors, e.g., List).
  • Improved Annotations
    Scala 2.8 adds support for nested java annotations. For annotations on fields, it is now possible to specify which synthetic members (getter / setter) will have the annotation. Documentation about Scala annotations can be found at: http://www.scala-lang.org/sid/5
  • Enhanced actors
    New Reactors provide more lightweight, purely event-based actors with optional, implicit sender identification. Support for actors with daemon-style semantics was added. Actors can be configured to use the efficient JSR166y fork/join pool, resulting in significant performance improvements on 1.6 JVMs. Schedulers are now pluggable and easier to customize.
  • Support for continuations
    Continuations are supported by a compiler plugin, which is now supported as part of the main distribution.
     

Internal improvements

  • New presentation compiler
    This new infrastructure, within the Scala compiler, enables IDEs to hook into the compiler to find efficiently information about the structure of the program under editing. This new code offers a better platform for the development of IDE plugins.
  • New build manager
    The new feature used by for example Eclipse to detect intelligently changes in the files and compile only necessary Scala sources, instead of performing clean build on whole projects. This technique enables to significantly reduce the compilation time on bigger projects.
  • Speed improvements
    The compiler now runs as optimised code. In addition, a number of improvements and fine-tunings have further improved the compiler speed up to 50%.
     

Bug fixes

Additional tools

  • Scaladoc 2
    A new look-and-feel, automatic comments expansion and wiki-like syntax, as well as compile-time error checking. Read more about changes on the Scaladoc 2 mini-site.
  • Sbaz 2
    Sbaz includes many bug fixes and enhancements. It now gives better feedback to the user during lengthy downloads and while diagnosing dependency audits, which in turn have been re-factored and enhanced. Sbaz should work properly on Windows using either cmd or cygwin, and is now capable of reliably updating itself. Support for pack200 has been added, in some cases reducing file sizes up to 70%.
  • Scalap
    A new Scalap, contributed by the community, is included. The new Scalap is aware of package objects and can decompile them by using <package_name>.package
  • Scala IDE for Eclipse
    The IDE has been extensively reworked with much functionality moved into the Scala compiler where it can be better maintained and reused by non-Eclipse IDEs and other tools. The integration with Eclipse's JDT has been deepened, and much previously Scala-specific behaviour and functionality is now provided directly by the JDT leading to across the board improvements.
    The Scala IDE for Eclipse is now hosted at Assembla. You can obtain it from its download page.
     

Acknowledgments and Thanks

Many members of the Scala community have helped us by fixing or reporting bugs, contributing new code and tools (including some of those listed above), and addressing user questions on the mailing lists: their contributions help shaping the future of Scala day by day.

  • We would like to thank:
    Paul Phillips, Miles Sabin, Ilya Sergey, Caoyuan Deng, James Matlik, Frank Teubler, Kevin Wright, Manohar Jonnalagedda, Pedro Furlanetto, Johannes Rudolph, Jason Zaugg, Seth Tisue, Ismael Juma, Mark Harrah, Colin Howe, Mirko Stocker, Anders Bach Nielsen, Spiros Tzavellas, Matt Russell, David Taylor, and all the other frequent contributors to our mailing lists, too many to list here. Thank you all!

 

The Scala Team at EPFL

Martin Odersky, Lukas Rytz, Hubert Plociniczak, Iulian Dragos, Miguel Garcia, Gilles Dubochet, Philipp Haller, Aleksandar Prokopec, Antonio Cunei, Tiark Rompf, Donna Malayeri, Phil Bagwell, Adriaan Moors, Ingo Maier.

Re: Scala 2.8.0 final

"This is currently still being completed" (from the bullet on equality) seems left over from the RC announcements

Re: Scala 2.8.0 final

It's fixed now. Thanks!

Re: Scala 2.8.0 final

Great news!!!

thanks to all scala team for this release.

Massimo

Re: Scala 2.8.0 final

Huzzah!  A very exciting day.  Congrats to Martin, the EPFL team, and everyone else who has helped out from myself and the rest of the team at foursquare.com.

Re: Scala 2.8.0 final

at last.. thanks to all.. i checked every day for final release... like a scalamaniac :)

Re: Scala 2.8.0 final

Hello Martin and Everybody involved in the development, I sent the warmest congratulations in getting Scala 2.8.0 final candidate release out to the world!

 

Regards Peter Pilgrim, London

 

Re: Scala 2.8.0 final

Congratulations to everyone who worked so hard on this release!

Re: Scala 2.8.0 final

Congrats guys. I have added an HelloWorld introduction to scala in my blog - have a look chiradip.typepad.com/technology/2010/07/dive-into-scala.html

Re: Scala 2.8.0 final

Congratulations to the Scala team!!!

By the way ... i've noticed there's no API documentation for ScalaDBC ... any reason for this?

Re: Scala 2.8.0 final

I'm happy that Scala 2.8 is final now and hope that this release is the beginning of the Scala conquest of the business world. And I'm hoping that new developers find their way to http://scala-forum.org.

Thanks to the Scala team for doing so much good work!

Re: Scala 2.8.0 final

Thanks for the link.

Re: Scala 2.8.0 final

Great news!!! 

Thanks to the Scala and the Scala Ide-Team

For the great work they have done, both for 2.8 as well as the previous releases!

Learning scala should become a mandatory course for all (java?-)programmers which seek to improve their skills. From all the languages I've learnt so far, its my definitive favorite and the best guidance into "good" programming I ever had. I have even started to build my own tuples, options and single-linked-lists to use them in "pure" java as well.. ;-)

Re: Thanks to the Scala and the Scala Ide-Team

It is the same with me, too. Scala was the most inspiring language I've ever learned. The first thing I have done is to implement an Option class for my Java projects to avoid NullPointerExceptions. Every Java developer should learn Scala even if Scala cannot be used in the actual projects for whatever reason. 

Re: Scala 2.8.0 final

Congratullations, downloading the new version already. :)

 

Thanks for all the work that went into it.

Re: Scala 2.8.0 final

Congrats !

Good work, Scala team !

Hope I will also be good enough to use all the good new things inside ;-)

 

Joe Herrmann

Re: Scala 2.8.0 final

Awesome news for all Scala develpers worldwide! Congratulations to Scala team!!!

Re: Scala 2.8.0 final

Great news! Just in time for me to introduce at my company. Thanks to Scala team.

Re: Scala 2.8.0 final

Great news and good job!

 

The Scala community has to be loving the delays in the JDK 7 release -- makes Scala look even more attractive as a stable language that IS moving forward. :-)

Re: Scala 2.8.0 final

You work deserves appreciation. However, I still find Scala IDE to be very unstable. It detect perfectly legal code as error, messing with import statements all the time. I make a fresh installation of Eclipse Classic 3.5.2 & Scala IDE on top, but as soon as I make a 10-lines-of-code class, things start to mess.

I hope that you guy will fix these problems soon. Scala is great, and it deserves a decent IDE like Java (or even Ruby)

On decent IDEs

Just use Scala Plugin for Intellij IDEA community edition (it's free and open source, and, frankly, way (lightyears) better than Eclipse).

Re: On decent IDEs

That may be so, but since Eclipse is one of the most widely used IDE's, and many developers aren't in a position to choose, it's vital to Scala's acceptance that the plugin improves. I introduced Scala at work, where we develop an Eclipse RCP application, and my fellow developers have stopped using Scala, mainly due to the build problems and the incessant cycle of cleaning/closing projects that is required. I'm regarded as a bit of a nutty Scala fanboy for not giving up on the Scala + Eclipse combo. 

That said, I'm well aware that everybody's working very hard and doing a great job. I think 2.8.0 is great, and the plugin is improving constantly, so a great big thank you to all involved! I absolutely love Scala to bits.

Re: Scala 2.8.0 final

Congrats on 2.8.

I couldn't comment on the front page poll, so I'll comment here: I'll upgrade when there's a .deb for Ubuntu. It's currently on 2.7.7.

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland