[abc-announce] version 1.0.1 released

From: Ganesh Sittampalam <ganesh@earth.li>
Date: Wed Jan 05 2005 - 21:58:43 GMT

We are pleased to announce the release of abc 1.0.1, an incremental
improvement on abc 1.0.0 incorporating some bug fixes and performance
improvements (most notably from inlining advice bodies where appropriate).
A full changelog can be found below.

The release is later than we had hoped because we have been putting quite
a lot of effort into discussing the design of AspectJ 5 with the ajc team.
Although we will not be able to provide a release of abc supporting Java 5
or the new AspectJ features as quickly as ajc, it is a priority for us to
do so as fast as possible.

The release can be downloaded from http://abc.comlab.ox.ac.uk/download
We would like to encourage all our users to register on our download page
if they have not already done so; it is very helpful to have this
information when applying for grants that will enable us to continue abc

We would also like to encourage everyone that is extending abc in some way
to make themselves known to us on the abc-dev mailing list. In particular
it would be enormously helpful to know which internal interfaces in abc
you are relying on; we have adopted a policy of redesigning the internals
of abc where this is necessary to keep the code base maintainable and
support future development, but in the places where extenders are relying
on interfaces, we will try to keep this to a minimum and where necessary
help to adapt your code. In the changelog below we have included a special
section listing some small changes that we believe may affect you.


Ganesh (on behalf of the abc team)

Changelog for users of abc:

- Added support for inlining of advice bodies at join point shadows. A
  heuristic is used to decide when to do this. Inlining also exposes
  opportunities for removing the boxing that is sometimes associated with
  advice implementation. The original advice bodies are also removed
  if rendered redundant by inlining.
- Updated runtime library to return a value copy of the argument list from
  thisJoinPoint.getArgs(), in line with ajc bug 67592.
- Fixed bug 34, in which arithmetic calculations within strings were sometimes
  misinterpreted as string concatenation. Thanks to Jonathan Churchill for
  reporting this bug.
- Fixed bug 35, Java identifiers containing '$' are not "visible" from
  pointcuts. Thanks to Kevin Viggers for an extremely clear description of the
  precise problem and the code for the fix.
- Fixed bug 36, in which circular references to named pointcuts within
  cflow caused a stack overflow.
- Fixed bug 37, named pointcuts and multiply nested cflows interact badly.
- Fixed bug 43, declare parents on binary classes needs to perform
  semantic checks.

Changelog for extenders of abc:

- If you extend ShadowMatch, AdviceApplication, Residue,
  WeavingVar or ContextValue, you will need to implement a new method called
  inline. The purpose of this method is to handle a new implementation of
  constructor inlining. It should normally be straightforward to implement
  this method; if your class contains any references to Jimple values you
  will need to look up new versions of these references using a mapping that
  is provided, and construct a new copy of the object. The implementations
  in the standard abc classes should be easy to adapt.
- If you extend Residue, you will also need to implement a new optimize()
  method. If your residue does not itself contain residues, you can just
  return the same object.
- If you extend Pointcut, the inline method has acquired a new parameter
  which you can normally just ignore, or pass unchanged to any contained
  pointcuts. The sensible thing to do would be to replace this set of
  parameters with an object, and this may happen in future.
- The current implementation of advice precedence is broken and needs a
  redesign, which will happen soon. This will likely have an impact on
  the doAddAdviceApplication method in subclasses of ShadowMatch.
- Some abc variables that can only hold Jimple immediates (locals or constants)
  but previously had the overly generic declared type Value now have the
  tighter type Immediate.
Received on Wed Jan 5 22:01:22 2005

This archive was generated by hypermail 2.1.8 : Mon Jan 31 2005 - 23:50:03 GMT