[aspectc-user] Announcement AspectC++ 0.7pre2
danilo.beuche at pure-systems.com
Wed Mar 12 23:19:09 CET 2003
things are speeding up, we are happy to announce a second pre-release of
AspectC++: Release 0.7pre2 "still powered by bugs" is available for
Linux, Solaris(back again) and Win32 (MacOS X will arrive tomorrow)!!
This is an experimental pre-release of the upcoming 0.7.
Major changes to 0.7pre1 (from ChangeLog):
* better performance
* new 'single translation unit transformation' mode:
- ac++ can now manipulate the translation units,
the header files, and generate the acgen-file in
- => simple integration of ac++ into Makefiles
- new command line options (run ac++ without arguments
to get a description)
. ac++ -p . -c foo.cc -o foo.acc
g++ -o foo.o -x C++ -c foo.acc
=> use these commands to compile foo.cc
ac++ -p . -g -o gen.acc
g++ -o gen.o -x C++ -c gen.acc
=> use these commands to generate all link-once code.
ac++ -p . -d somepath/manipulated_headers -i
=> use this to generate manipulated header files
(useful if your program is a library)
- even in the new mode the -p option is still needed, because
ac++ needs to know, which files belong to the project.
External files are never manipulated.
- full compatibility: the old 'whole program transformation'
mode still works as usual.
* -a option to specify the aspect header files explicity, e.g.
. ac++ -p . -c a.cc -o a.acc -a aspect1.ah -a aspect2.ah
=> transforms a.cc -> a.acc and regards the listed aspect
. use -a 0, if no aspect header files should be considered
(if this option is combined with -a <any-aspect> it has no
* Many code generation bugfixes, e.g.:
- derived() pointcut function fixed
- code generation for execution join points fixed
- generation of empty initializer list for JoinPoint object
* Significantly reduced the number segmentation faults in
the parser :-)
* Incomplete template handling (no STL so far) (however, number
of problems reduced drastically)
* stdio_impl.h under Solaris 9 cannot be parsed correctly
(Solaris 6 is okay)
Changes to 0.6 and earlier:
This release includes a completely new parser which is more flexible and
Basic template stuff already does work. However, template
support is not yet complete enough to be very useful.
The commandline interface has been changed slightly:
"-p" doesn't allow two arguments anymore, use
"-p dir-in -d dir-out" instead.
The "-x" switch to select the support of language dialects (GNU,Borland
C++, ...) is currently not available.
The PUMA_CONFIG ( usually called puma.config ) has a slightly different
format compared to version 0.6. Please update this file with the new
There are still bugs. We now provide a bug tracking system at
http://www.aspectc.org/bugzilla. Please use this system to report bugs.
Packages for all targets are available from http://www.aspectc.org.
If you encounter difficulties parsing some header files, we need your
feedback to extend and adapt AspectC++.
- AspectC++ expects C++ files to be named as .cc. If your are
using other extensions, you can specify them with the -e command line
Example: if your files are named as .cpp call ac++ as "ac++ -e cpp"
If you are using more than just one file extension, you can give a
regular expression as the argument of -e to specify them - don't use
multiple -e switches i.e. -e "(cxx|cpp)" .
Special notes on the Win32 version:
- The Win32 package is a ZIP archive. If you are using WinZip you should
extract the archive to C:\ - all the files contained in the archive will
be placed under C:\AC.
- The package contains the three files env.bat, examples.bat and
pumabc55.cfg that show how to setup environment variables for BCC55 and
how to run AspectC++ and the BCC compiler on the examples.
- This version is only tested with the free version of Borland C++ 5.5
available from htt;/www.borland.com. It should work with other
compilers, as long as AspectC++ can parse the include files provided by
Danilo Beuche Phone: +49-391-54456910
pure-systems GmbH Fax: +49-391-54456990
More information about the aspectc-user