We are happy to announce the new release candidate of the Scala
distribution: Scala 2.7.4 RC1 is available from our Download Page at
http://www.scala-lang.org/downloads. 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 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
#1589 | Lazy val binding causes compiler/REPL crash
#1269 | scalac command line should support @ syntax like javac so
| not all filenames need be passed on command line
#1143 | Serializable again
#934 | fsc Ant task should not call System.exit() on error
#216 | 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 will be 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 (
http://twitter.com/milessabin).
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. If you want to install the Release Candidate of the new
version 2.7.4, the update site is:
http://www.scala-lang.org/scala-eclipse-plugin-rcMeanwhile, the previous stable version 2.7.3 will remain available from
the regular update site at:
http://www.scala-lang.org/scala-eclipse-pluginNote that these are update site URLs, and are not navigable using a
web-browser. Please see
http://www.scala-lang.org/node/94 for further
information. Important: if you are installing the 2.7.4 plugin on
Eclipse 3.4.x, JDT weaving needs to be manually enabled after
installation: go to Window -> Preferences -> JDT Weaving; if the
preference dialog shows that JDT Weaving is currently disabled, then
click on the button to enable it and follow the instructions to restart
Eclipse. This step is not required with Eclipse 3.5.
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
http://wiki.eclipse.org/JDT_weaving_features.
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
---------------------------------------------------------------
#1778 | NPE in JDTUtils.flatten
#1741 | Resources not being copied to output folder
#1719 | Multiple assert(true) in ScalaUIPlugin
#1717 | Character being delayed when typing literal Strings.
#1716 | Can't set breakpoint.
#1694 | creation of empty src directory
#1679 | Window | New Editor results in editor closing
#1669 | ASTConverter throws stack traces on my source file
#1662 | Scala files show as Java files in package explorer
#1661 | Scala Eclipse plugin interferes with EclEmmaEclipe plugin
| highlighting in Java Editor Area.
#1647 | scala-library manifest is missing the scala.annotation.unchecked
| package
#1644 | Camel-case code assist
#1643 | Code completion is case insensitive (behaviour different from
| Eclipse Java support)
#1636 | In 2.7.3.final Creating a new Object created two entries in the
| Package Explorer
#1627 | Abnormal Workbench Condition While Undoing (Ctrl+Z)
#1621 | Invalid Menu Extension error
#1593 | Scala Editor Fails to Open on Eclipse 3.5
#1590 | Run as JUnit often returns "No tests found with test runner
| 'JUnit 4'"
#1575 | Full build fails to create class files for a Scala project not
| created by plugin
#1542 | Looping NPE 'Error in JDT core during AST creation'
#1534 | Java Editor "Save Actions" are applied to Scala source files
#1516 | Navigating over annotations does not work
#1507 | Linked projects break scala builder
#1506 | Code completion outside class definition throws exception
#1483 | imported scala files show up twice in package / project explorer
#1475 | Eclipse plugin fails to start when build output directory does
| not exist
#1471 | Editor fails to open in Eclipse 3.5 M3
#1455 | NPE trying to launch Scala app
#1410 | Scala source editor adding final keywords
#1370 | Eclipse plugin affects warning and error icons in tabs for Java
| files
#1349 | Eclipse plugin affects Run As menu in Java files
#1287 | Error message when opening Scala Project
#1275 | New Scala Application wizard doesn't work on project
#1253 | Multiple scala classes in a file confuse Java editor
#1233 | Add the outline view to the Scala perspective
#1228 | Copying Scala sources in Package Explorer does not work
#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
#1166 | ScalaDefElement cannot be cast to IField
#1002 | Hyperlink navigation is unreliable in projects created outside
| the Eclipse workspace
#941 | Eclipse misbehaves when projects have a non-standard structure
#766 | Code complete sometimes overwrites succeeding code
#450 | add eclipse plugin key bindings for Run/Debug Scala app
#135 | Scala compiler won't take sources from linked dirs?
References
==========
- Equinox Aspects:
http://www.eclipse.org/equinox/incubator/aspects/- JDT weaving features:
http://wiki.eclipse.org/JDT_weaving_features- AJDT:
http://www.eclipse.org/ajdt/- The Scala IDE for Eclipse FAQ:
http://lampsvn.epfl.ch/trac/scala/wiki/EclipsePluginFAQ- Notes for (potential) contributors:
http://lampsvn.epfl.ch/trac/scala/wiki/EclipsePluginAcknowledgements
================
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