[aspectc-user] Announcement of AspectC++ 0.9pre1

Olaf Spinczyk 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 

Best regards,

Olaf Spinczyk

More information about the aspectc-user mailing list