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

Scala 2.7.4 final

It's ready! The new stable release of the Scala distribution, Scala 2.7.4 final, is now available from our Download Page. This new version is a maintenance release; several bugs have been fixed, but at this stage we are only adding new features to the new Scala 2.8 codebase, which should be complete within a few months. The version 2.7.4 of the Scala IDE for Eclipse, however, introduces many improvements, listed below.

This version will be the last release of the 2.7.x branch, and will also be the last one to support the old version 1.4 of the Java Virtual Machine. Please read below for further details on what is new in Scala 2.7.4, and in the new and improved Scala IDE for Eclipse.

 

The Scala 2.7.4 distribution

What is new?

The 2.7.4 release of Scala includes several bug fixes, listed below:

Ticket Summary
#1882 bad class file: scala/RandomAccessSeq$Mutable.class undeclared type variable: A
#1858 Stack.push overload is ambiguous
#1801 Actors memory leak
#1775 Another Serializable issue
#1721 List.endsWith broken
#1711 bad class file generated for method with local function definition
#1691 List.range with step = 0 ends in OutOfMemoryError
#1689 Incorrect regex in JavaTokenParsers.decimalNumber
#1686 Remote actors fail to run due to classloader issue
#1684 interpreter always throws exception under -Ydebug
#1659 Compiler crash with type refinement
#1652 Actor.reactWithin gives java.lang.IllegalStateException: Timer already cancelled
#1651 Please add a LICENSE file to the distribution bundle
#1648 scala.util.logging.ConsoleLogger cannot be mixed with a Logged
#1269 scalac command line should support @ syntax like javac so not all filenames need be passed on command line
#1143 Serializable again
#535353 fsc Ant task should not call System.exit() on error
#1f1f1f Tuple hashCode crashes when tuple contains null


Scala Swing is now also included in the JVM 1.4-compatible version of the distribution. Please note that Scala 2.7.4 is the last version of Scala to support version 1.4 of the Java Virtual Machine. Future versions will require Java 5 or newer.

 

The Scala IDE for Eclipse

The following release notes are by the lead plugin developer, Miles Sabin.

Highlights

This release is based on a new approach to integration with the Eclipse JDT which makes use of Equinox Aspects and the JDT weaving functionality developed in conjunction with Andrew Eisenberg of AJDT.

This allows for much deeper and more robust interoperation between Eclipse's Scala and Java tooling. As a result many long standing bugs have been resolved (see below) and many additional JDT features will now work correctly with Scala projects.

From 2.7.4 onwards the new name for the plugin is the Scala IDE for Eclipse (thanks to Ian Skerrett of the Eclipse Foundation for the suggestion).

Since 2.7.3 I have taken on the role of lead for the project.

Installation Notes

The recommended installation method is using the Scala IDE for Eclipse update site; the update site is at:

http://www.scala-lang.org/scala-eclipse-plugin

Note that this is an update site URLs, and is not navigable using a web-browser. Please see this page for further information.

Currently (as of April 2009) it is difficult (but not impossible) to install the Scala IDE into a readonly Eclipse installation. This is resolved on very recent builds of Eclipse 3.5 (post M6) but for now it's recommended to install from the RC update site directly into a fresh read-write Eclipse installation. Instructions for installing into a read-only or otherwise unusually laid out Eclipse can be found in the section "Installing JDT Weaving in a non-default location" of this guide.

If you don't install into a fresh Eclipse instance, I would recommend uninstalling any previous Scala IDE versions first.

Upgrade Notes

It's no longer necessary to have per-projects settings for the Java builder (disabling output folder scrubbing and preventing the copying of .scala files to the output folder). It's not strictly necessary to remove these settings, but it's advisable. This should improve the behaviour of tools which generate Eclipse projects programmatically (eg. Maven).

There have been some minor changes to the way syntax highlight colour preferences are stored ... if things don't look quite as you'd expect then I recommend resetting them to their defaults and redo any customization you had previously.

There are persistent issues with dependency management which might show us after upgrading. If you experience hangs or extremely slow builds then I recommend locating and deleting the .manager folders that you will find at the top level of your Scala project. I expect this issue to be resolved in 2.8.0 which will make use of a significantly improved dependency management mechanism.

Bugs Fixed

The following bugfixes and enhancements are included in this release: 

Ticket Summary
#1669 ASTConverter throws stack traces on my source file
#464646 add eclipse plugin key bindings for Run/Debug Scala app
#1644 Camel-case code assist
#1233 Add the outline view to the Scala perspective
#1778 NPE in JDTUtils.flatten
#1741 Resources not being copied to output folder
#1661 Scala Eclipse plugin interferes with EclEmmaEclipe plugin highlighting in Java Editor Area.
#1253 Multiple scala classes in a file confuse Java editor
#1717 Character being delayed when typing literal Strings.
#1590 Run as JUnit often returns "No tests found with test runner 'JUnit 4'"
#1636 In 2.7.3.final Creating a new Object created two entries in the Package Explorer
#1662 Scala files show as Java files in package explorer
#1719 Multiple assert(true) in ScalaUIPlugin
#1716 Can't set breakpoint.
#1627 Abnormal Workbench Condition While Undoing (Ctrl+Z)
#1534 Java Editor "Save Actions" are applied to Scala source files
#1410 Scala source editor adding final keywords
#1516 Navigating over annotations does not work
#1483 imported scala files show up twice in package / project explorer
#1542 Looping NPE 'Error in JDT core during AST creation', brings CPU to 100% utilization
#1370 Eclipse plugin affects warning and error icons in tabs for Java files
#1349 Eclipse plugin affects Run As menu in Java files
#1228 Copying Scala sources in Package Explorer does not work
#1643 Code completion is case insensitive (behaviour different from Eclipse Java support)
#1192 Leaving breadcrumbs enabled causes Scala plugin to throw NPE.
#1191 Package Explorer / Rename insists on .java extention
#1174 NPE in StructureBuilderTraverser$TypeOwner$class.addType
#1694 creation of empty src directory
#1507 Linked projects break scala builder
#1275 New Scala Application wizard doesn't work on project
#1002 Hyperlink navigation is unreliable in projects created outside the Eclipse workspace
#575757 Eclipse misbehaves when projects have a non-standard structure
#2c2c2c Scala compiler won't take sources from linked dirs?
#1575 Full build fails to create class files for a Scala project not created by plugin
#6b6b6b Code complete sometimes overwrites succeeding code
#1506 Code completion outside class definition throws exception
#1471 Editor fails to open in Eclipse 3.5 M3
#1593 Scala Editor Fails to Open on Eclipse 3.5
#1679 Window | New Editor results in editor closing
#1647 scala-library manifest is missing the scala.annotation.unchecked package
#1621 Invalid Menu Extension error
#1287 Error message when opening Scala Project
#1455 NPE trying to launch Scala app
#1166 ScalaDefElement cannot be cast to IField
#1475 Eclipse plugin fails to start when build output directory does not exist

References

Acknowledgements

The following people provided patches and/or significant insights into bugs or new features included in this release:

  • Pawel Badenski
  • Mohamed Bana
  • David Bernard
  • Andrew Gaydenko
  • Ben Hutchison
  • Ismael Juma
  • Joshua Suereth

Many thanks ... much appreciated. (Apologies if I've left anyone out ... please let me know if I have).

And many thanks to everyone who has helped improve the plugin by reporting bugs and asking and answering questions on the mailing lists and #scala.

Cheers,

Miles

 

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