[abc-announce] abc version 1.3.0 released

From: Pavel Avgustinov <pavel.avgustinov_at_magd.ox.ac.uk>
Date: Wed, 2 Apr 2008 10:53:49 +0200

The abc team is pleased to announce the release of abc version 1.3.0.
A lot of work has gone into this release; some of the highlights are:

* New frontend: A completely new Java frontend is provided as a
stand-alone extension called abc.ja. This is implemented using the
JastAdd compiler compiler system, and uses the JastAddJ extensible
Java compiler to provide great compatibility with pure Java. In
particular, you can compile Java5 source code with this extension.
More information is available at:


* Reworked AbcExtension structure: It is now possible to customise the
compilation process even further.

* More bundled extensions: The existing EAJ and tracematches
extensions have been ported to make use of the new frontend and serve
as examples for extenders of abc; they are available as abc.ja.eaj
and abc.ja.tm.

* Performance improvements, in particular for tracematches and their
whole-program analyses.

* Lots of bugfixes and infrastructure improvements.

This release also uses updated versions of Polyglot (for the old
frontend) and Soot, propagating many bugfixes to our users.

As usual, the release can be downloaded from
http://aspectbench.org/download, a full changelog can be found below.

Pavel (on behalf of the abc team)


- The structure of the AbcExtension class has been reworked; in
particular, the entire compilation process is now driven by a
CompileSequence. This allows greater flexibility in replacing parts
of the compiler; in particular, it is possible to replace the
complete frontend or backend.
- abc extenders wishing to write their extensions using JastAdd should
extend abc.ja.AbcExtension, abc.ja.CompileSequence, etc. rather than
abc.AbcExtension as they normally would - see the new implementation
of EAJ-ja for an example of how this is done.

- abc now has a completely re-written frontend. It is no longer
pure-Java, but is a modern form of attribute grammar - compiled with
the JastAdd meta-compiler. The new frontend extends the existing Java
and Java 5 frontends written by the creator of JastAdd, Torbjorn
Ekman. As a result, abc now supports Java 5 source code! (but not
AspectJ 5) To use the new frontend, invoke abc with the option: -ext
- abc.eaj now supports the arrayget()/arrayset() pointcut primitives.
abc now supports multiple whole-program optimizations for
tracematches. Those can be enabled by selecting the extension
abc.tmwpopt instead of abc.tm. The optimization level can be set
using the command line option -laststage. (see -help)
- abc.eaj now supports additional pointcuts, in particular the
arrayget/arrayset pointcuts and the lock/unlock pointcuts (enabled
via -debug enableLockPointcuts) see:
- abc further supports the new pointcut maybeShared() that matches
field set and get events affecting fields which are potentially
shared between threads. In the default setting, this pointcut matches
*all* sets/gets; to enable whole-program optimizations, state -debug
optimizeMaybeSharedPointcut on the command line.
Received on Wed Apr 02 2008 - 09:58:12 BST

This archive was generated by hypermail 2.2.0 : Wed Apr 30 2008 - 23:50:04 BST