[aspectc-user] Announcement of AspectC++ 0.9pre1
Olaf.Spinczyk at informatik.uni-erlangen.de
Wed Jul 7 19:59:59 CEST 2004
after a long period without new ac++ releases we now uploaded
the first pre-release of version 0.9 (0.9pre1). It can be download from
www.aspectc.org. Binaries for Linux, Solaris and Win32 as well as the
source code (GPL license) are available. Binaries for MacOS X can be
compiled on demand. For the first time we also offer a statically linked
Linux version. Of course, the manual collection was also updated.
The new version comes with the following new features (excerpt from the
Version 0.9.pre1 (2004-07-07)
* implemented a match expression parser that tolerates
whitespace and checks the match expression syntax. The syntax
and semantics of the new match expressions in not 100%
compatible. Refer to the corresponding section in the
Language Reference Manual for details and read my comments
* described and implemented "construction" and "destruction"
joinpoints, which may be used to define advice for object
instantiations. The 'Instanced' example now uses this new
* changed handling of "forced includes". See -include option
in the compiler manual.
* the joinpoint IDs which can be obtained via the joinpoint-API
are now unique not only in the translation unit but in the
whole project if a project repository is used (-r option).
* the -g -i -d and -o can now be used together, i.e. the name of
the acgen.cc file can be selected even if headers are
generated at the same time.
* Changed the code generation pattern for cflow.
This fixes the Visual C++ problem #185 and is a first step to
make acgen.cc unneeded.
* implemented an option --no_line that avoids the generation of
#line directives by ac++.
* improved handling of macros. The chance that ac++ is not able
to weave because of macros was reduced. For example, if only
a function name or function call argument is a macro, weaving
will work now, while it failed in older versions.
* fixed execution advice for conversion operators
* important fixed parser bugs: elaborated type names made the
parser jump into the wrong scope, fixed two serious problems
in the overload resolution, member functions of nested classes
were not parsed so far, fixed #include directives for absolute
paths, fixed implicit conversion from 0 to pointer.
* code improvements: all Puma classes are now encapsulated in
a namespace. After some cleanup woven code now compiles in
Visual Studio 2003. This means: It is possible to compile
ac++ with VC++ 7, makefiles improved
* pumag++conf.pl is now ready for g++ 3.4.
* implemented some more GNU g++ extensions.
* performance improvements: pointcut evaluation and parser
(name lookup in namespaces)
* updated manuals, avoid problem with black background with
acroread 5 on Linux.
* made a new example 'ObserverPattern'.
Note that you have to check your match expressions if you compile old
code with this new release. The syntax and semantics is described in the
Language Reference Manual. It is basically what we intented when we
implemented the simple text based mechanism used in previous versions,
but there was no chance to check it. Therefore, some of your match
expressions might be syntactically incorrect or might not match anymore.
The most obvious difference is that "% %(...)" matched all functions in
any scope, while it now only matches functions in the global scope. To
match functions in all scopes you have to use "% ...::%(...)" now. You
will see that the new match mechanism is much more powerful than the old
We are happy that more and more users submit bug reports with bugzilla
(http://www.aspectc.org/bugzilla/) or simply report their problems on
the aspectc-user list. Please continue! Many of your problems are solved
More information about the aspectc-user