This file lists the major changes and improvements made to AspectC++ and the PUMA framework. Version 0.6pre2 (2002-07-08) * First Win32 release (using cygwin cross compiler 2.95.3 for mingw target) * Fixed examples for Solaris platform * Added support for -e switch to specify extension(s) for C++ files * Added support for pointcut of type class as argument for call and execution * Some minor code generator changes * Many parser extensions to handle non standard header files (GNUC, BCC, VC) Version 0.6pre1 (2002-05-10) * Now compiles with gcc3.1 * Fixed many small bugs * Improved code generation (inline declarations, casts, type information, forward declarations, ...) * Added basic exception support in PUMA * Changed all examples to use stdio instead of iostream Version 0.5 (2002-04-05) * Added support for nested around advice * Added support for operator functions (as join points) * Added support for dynamic Action objects * Changed ThisJoinPoint-API: - type of source (that()) and target (target()) object now available via JoinPoint::That/::Target typedef - that() and target() now use actual pointer type if possible - changed toString(), args(), argtype(int), signature(), id(), resulttype(), jptype() into static member functions of JoinPoint - now accessible via thisJoinPoint-> (deprecated) or JoinPoint:: * Improved code generation - handling of aspect attribute access in advice - handling of user defined aspectOf functions - merged per advice ThisJoinPoint structs into single per join point struct - on demand generation of action objects and wrapper functions Version 0.4 (2002-03-05) * New language features: introduction of base classes; user defined aspectOf functions * Support for Actions, proceed() in around advice (thisjoinPoint->action().trigger()); (limited to one around advice per call or execution join point) * Improved code generation (ThisJoinPoint now as struct not class) -> smaller memory footprint * New examples: o Action: demonstrates around advice for execution and call join point with thisjoinPoint->action().trigger() o Cache: very simple Action cache o ID: illustrates usage of thisJoinPoint->id() o IconCache: implementation of an application specific cache Version 0.4-pre3 (2002-02-12) * Added Support for "within" pointcut function * Fixed some bugs in the code generator Version 0.4-pre2 (2002-02-06) * Added rudimentary support for templates in PUMA Version 0.4-pre (2002-01-29) * Minor changes to compile on Solaris Version 0.3-fix1 (2002-01-24) * Changed code generation for call join points * Fixed a little strange bug in PUMA that prevented a correct code generation in some special cases Version 0.3 (2002-01-17) * Added support for call join points (functions, methods, _no_ operators) * New methods for the thisJoinPoint pseudo object - void* that(): gives the pointer of the callers object (if known, otherwise 0) - void* target(): gives the pointer of the target object (if known, otherwise 0) - int jptype(): gives the numerical type of a join point - void* result(): gives pointer to memory holding the result of a call (or 0 if unknown) - char* resulttype(): gives mangled type of result * Changed thisJoinPoint->typeinfo(int) into ->argtype(int) * Added support for virtual pointcuts * Added support for wrapping functions with default arguments * Fixed generated code for around advices, wrapper code for static functions * Fixed bug in PUMA project managment (path handling) * Minor improvements to the PUMA parser * More C++ ABI v3 name mangling support Version 0.2 (2001-12-03) * New methods for the thisJoinPoint pseudo object - unsigned id(): gives a unique identifier of the join point - const char* signature(): gives the signature of a method join point (C++ ABI v3 name mangling) - const char* typeinfo(int): gives the mangled type of a method argument * Extended Trace example: uses the new thisJoinPoint methods for an universal trace aspect * Replaced last Flex scanner with Orange equivalent * Fixed some internal PUMA bugs * Removed some minor memory leaks from PUMA * Added basic C++ ABI v3 name mangling support to PUMA Version 0.1 (2001-11-06) * Added automatic dependency mechanism * Removed some serious memory leaks from PUMA * Fixed some internal PUMA bugs