Hi,
I'm happy to announce that our Scala Eclipse Plugin (2.1.0) is ready
for public beta testing.
The remote Eclipse update site from where the plugin beta can be
installed is located at
http://lamp.epfl.ch/~mcdirmid/scala-plugin.
Installation is standard for an eclipse plugin: activate the Help/
Software Updates/Find and Install.../ menu, select the "Search for
new features to install" option, add a "New Remote Site" with the URL
http://lamp.epfl.ch/~mcdirmid/scala-plugin and whatever name you want
to give it, check this new update site, hit next, check the only
feature on this site, say yes to the license, ...., restart Eclipse.
The Scala Eclipse plugin is completely self contained, and no other
downloads or installation steps are required. Conversely, there is no
way to get the Scala plugin to use a pre-existing Scala distribution.
IMPORTANT: the plugin currently works under Eclipse 3.2M4 with Java
1.5+. Any other Eclipse/Java configuration will not work at all.
Although platform/architecture should work, we have only tested under
X86 Linux, Windows XP, and Mac OS X.
After you have installed the plugin and restarted Eclipse, you can
activate the "Help/Help Contents" menu to look at the (very
incomplete) Scala Development Tool documentation. The only
documentation pages currently available is a "Getting Started" page
and an "Issues" page. The getting started page will explain how to
use the plugin to create and develop a Scala project. The "Issues"
page lists known issues that exist in the plugin. Please take a look
at both pages before reporting bugs.
This release of the Scala plugin includes the following features:
* An integrated incremental builder that conservatively recompiles
Scala source files when the Scala source files that they depend on
change.
* Integrated display of compiler errors
* An editor with the following features:
-- Syntax highlighting
-- Text hover to display inferred type information and Scala-doc
documentation (if any)
-- Hyperlink navigation to definition of symbol
-- Content assist
-- Content outline
Please see the documentation for more information on how to use these
features.
If you have any problems with the plugin, please send me email or
post to this list. To report a bug, please include the version number
of the plugin installed (currently @ 2.1.0, to check see "Help/About
Eclipse SDK/Plug-in Details"), and the .metadata/.log file from your
workspace.
Thank you,
Sean McDirmid
LAMP
Thread at a glance:
Previous Message by Date:
click to view message preview
Sbaz reference manual
I've posted a reference manual for Scala Bazaars.
http://lamp.epfl.ch/~spoon/sbaz/
This is a place to document decisions about the system as they
accumulate.
Regards,
-Lex
Next Message by Date:
click to view message preview
New linearization
Been playing a bit with the new mixin classes; see
http://scala.sygneca.com/code/shared-objects
Scala2 forces the first class "extension" to be an "extends" clause, and
does not allow "with". This seems a bit draconian -- can an "extends
ScalaObject" not be implicitly inserted?
The Scala2 change doc tells us that "abstract override", when used in a
mixin class that is mixed in with "with", shifts super to be the prior
definition within the class being mixed into.
In my example I have a "FixedHash" mixin that uses abstract override to
redefine how hashes are computed. I also have a "SharedObject" that
further refines how equality tests are done. If I want to combine them,
the most natural thing to write is (possibly):
Mixin class FixedShared extends FixedHash with SharedObject
But I can't...because the abstract overrides on FixedHash are no longer
used. I could do this:
Mixin class FixedShared with FixedHash with SharedObject
But that compiler won't accept that. I also cannot write:
Mixin class FixedShared extends ScalaObject with FixedHash with
SharedObject
As the compiler tells me ScalaObject is inherited twice. I can write:
Mixin class Fake;
Mixin class FixedShared extends Fake with FixedHash with SharedObject;
That compiles, but when I do a "with FixedShared", the abstract
overrides are lost. I'll have to check to see if the latest compiler
exhibits this behavior or not.
The linearization definitions in the changes document make sense to me,
but it appears that with the way things are currently specified there is
no way to combine "with" behaviors and abstract overrides -- each must
be specified:
Class Var extends Term with FixedHash with SharedObject;
Mixin classes currently prohibit constructor values. Observe:
/** Log prints a message when hashCode or equals is called. */
mixin class Log {
abstract override def hashCode() = {
Console.println(tag + ".hashCode");
super.hashCode()
}
abstract override def equals(o: Any) = {
Console.println(tag + ".equals");
super.equals(o);
}
val tag: String = getClass().getName();
}
We've got a log mixin here that logs calls to hashCode and equals. Note
the "tag" def -- that's how we're labelling. To use this we do
something like this:
Class Something with Log {
override val tag = "Something";
}
I am wondering if it makes sense to allow "val" for mixin parameters.
mixin class Log(val tag: String) {
abstract override def hashCode() = {
Console.println(tag + ".hashCode");
super.hashCode()
}
abstract override def equals(o: Any) = {
Console.println(tag + ".equals");
super.equals(o);
}
}
I can then write:
class Something with SharedObject(myFactory) with Log("MyLogger");
Right now constructs must be specified like this:
private[shared] def duplicate(f: SharedFactory) =
new Var(name) with FixedHash with SharedObject with Log {
val factory = f;
val tag = "MyLogger";
}
Perhaps the compiler can do this transformation automatically...
Previous Message by Thread:
click to view message preview
Sbaz reference manual
I've posted a reference manual for Scala Bazaars.
http://lamp.epfl.ch/~spoon/sbaz/
This is a place to document decisions about the system as they
accumulate.
Regards,
-Lex
Next Message by Thread:
click to view message preview
Re: Scala Eclipse Plugin Beta
I'm one more to congratulate the nice work on the plugin. Unless I
encounter serious errors, Eclipse will be my Scala development
platform from now on. Thank you.
--
[]s, Andrei Formiga
On 2/2/06, Sean McDirmid <sean.mcdirmid@xxxxxxx> wrote:
> Hi,
>
> I'm happy to announce that our Scala Eclipse Plugin (2.1.0) is ready
> for public beta testing.
>