[aspectc-user] Announcement of AspectC++ 2.0

Olaf Spinczyk os at aspectc.org
Sun Feb 21 21:20:33 CET 2016


Dear AspectC++ users!

The new release, AspectC++ 2.0, is now available for download at
www.aspectc.org ...


Version 2.0 (2016-02-21)

The last release of ac++ was a long time ago. Therefore, we can't list
all changes here. This is just an overview about the most important
improvements. For details refer to the subversion log.

 * The Clang parser from the LLVM framework is now the default
   front-end. As an alternative, AspectC++ 2.0 still supports the Puma
   front-end, which was used by the 1.x releases. The build process is
   now configurable and the environment variable FRONTEND=Clang or
   FRONTEND=Puma selects the respective front-end.
   The Clang versions 3.4 and 3.6.2 are currently supported. There is
   experimental support for version 3.7.1.

 * The Clang-based configuration (default) supports the C++11
   standard. There is no specific advice for C++11 language
   features, yet.

 * The build process has been simplified, since there is no need for
   ac++ or woven sources anymore (Clang configuration). See README-LLVM
   for building the Clang configuration.

 * We offer MacOS X binaries, again, now supporting 64-bit architecure.

 * The Windows binaries have also been moved to 64-bit versions only.

 * The new command line option --builtin_operators enables the new
   pointcut function builtin(), which allows advice for calls to builtin
   operators. For example, builtin("int operator +(int,int)") matches
   the addition of integer variables.

 * The new command line option --data_joinpoints enables advice for
   data access. New pointcut function get(), set(), and ref() are
   introduced that enable advice for variable access. Please refer
   to the AspectC++ language reference manual for more information.

 * The class matching has been changed. For example, the pointcut
   expression "Parser" matches a class that is defined in the global
   scope, but nested classes within "Parser" are not matched. To match
   nested classes, the new pointcut function member() has been
   introduced. For example, member("Parser") matches all nested classes
   within parser (and member functions and data members). See language
   reference manual, section 3.2, for details.

 * Fixed many parser and weaver bugs.


I hope you find it useful.

Best regards,

Olaf Spinczyk



More information about the aspectc-user mailing list