This file lists the major changes and improvements made to AspectC++ Add-In. Version 1.1.1 (24.11.2006) * ac++ commercial version 1.0pre3_bugfix1 - bug #324 fixed: problem with relative paths in the project repository if source files are located in subdirectories of the project Version 1.1.0 (17.03.2006) * ac++ commercial version 1.0pre3 - support for 'slices' - a new language feature for introductions - generated #line directives improved - new policy to deal with AspectC++ keywords implemented - by default handled as keywords only in aspect header files - -k/--keywords option added to control the policy - fixed code generation bug for nested around advice - fixed crash that was caused by empty input files - parser now resolves calls to conversion functions returning pointers - now a warning is issued when tried to insert friend declarations into macro-generated classes - code improvements in order to work on 64 bit platforms - several parser bugs fixed (function name lookup) * Visual Studio 2005 compatible version of the Add-In * Installer improvements - automatic recognition of installed Visual Studio version - parallel installation of Add-In for Visual Studio .NET, 2003, and 2005 - optional installation of the AspectC++ example projects * syntax highlighting for new AspectC++ keyword 'slice' added Version 1.0.13 (21.12.2005) * ac++ commercial version 1.0pre2 - several workarounds for VC++ compiler problems implemented - support for introductions into aspects - array wrappers improved (needed by generated copy constructors) - call advice for conversion functions implemented - fixed handling of nested classes in template classes - fixed call advice to functions that are declared as friend - fixed generated code for call advice for unary and binary operators if the call was located in a static member function - signatures of functions in namespaces are now correct - fixed problem with access rights of wrapper code that is generated to implement call advice - support for the 'virtual' keyword in function signature match expressions - fixed several bugs related to call advice - fixed problem with execution advice for introduced functions - numerous parser bugs fixed - improved debugging support, error messages, warnings - numerous performance and generated code size improvements Version 1.0.12 (18.05.2005) * ac++ commercial version 0.9.3 - fixed execution advice for new and delete operator functions - removed the unneeded 'p' from the delete operator in the generated namespace AC, this sometimes caused warnings - the deprecated syntax 'advice : void before() ...' is no longer supported, use 'before' and not 'void before' - improved the project repository - invalid and empty project repository files are rejected - wrong project repository version number yields a warning - fixed severe problem with context binding functions - improved introductions: introduction code is no longer semantically analyzed in the aspect, only in the target class(es) Version 1.0.11 (09.03.2005) * ac++ commercial version 0.9.2 - fixed major size_t and ptrdiff_t handling bug - fixed the signature strings of template functions - fixed construction advice code generation - fixed handling of #pragma once - added check for cyclic header file includes - extended JoinPoint-API for the result type of wrapped functions - improved call advice for functions with variable number of arguments - improved execution join point code generation pattern - further parser improvements regarding template parsing - further code generation improvements Version 1.0.10 (21.10.2004) * ac++ commercial version 0.9 - "link-once" code is not anymore generated and needed - extended JoinPoint-API by JPID and JPTYPE enumerators - match-expressions in order advice are now matched only with aspects - fixed combination of construction/destruction with within and that - fixed problems with advice for calls to const functions - fixed problems with generated copy constructors - improved JoinPoint::Target&That type - made generated signature strings aware of 'const' - improved code generation for call join points - improved the generation of #line directives - further parser improvements - fixed lots of little code generation bugs - fixed problems with filename handling on Windows * syntax highlighting for AspectC++ keywords added * automatic rebuild of a project if an aspect is changed Version 1.0.8 (23.07.2004) * ac++ commercial version 0.9pre1 - implemented a match expression parser that tolerates whitespace and checks the match expression syntax - described and implemented "construction" and "destruction" joinpoints - Changed the code generation pattern for cflow - improved handling of macros - important fixed parser bugs * Introduced AC_OPTIONS preprocessor define. Permits to set ac++ option form Visual Studio Project e.g. AC_OPTIONS="-v9" to enable more weaver output * project handling changed - only files listed in the project are recognized by the weaver * added a new example 'ObserverPattern' Version 1.0.7 (19.03.2004) * ac++ commercial version 0.8 - improved the implementation of the cflow() pointcut function - access control by the C++ compiler is no longer inhibited by replacing every "private" or "protected" by "public" - strongly changed the implementation of dynamic type checks - finished implementation of that and target functions and their combination to complex conditions - support for advice for calls during the initialization of globals and in baseclass initializer lists of constructors - changed code generation to support advice activation from forward joinpoints - changed code generation: advice and aspectof functions now remain members of the aspect class - made the wrapped function of an execution join point always inline and const or volatile according to its type. - changed the code generation at execution join points - __exec_old.. is never virtual now - a lot of bug fixes Version 1.0.6 (01.12.2003) * improved project handling - source files don't have to be below the VS project directory anymore Version 1.0.5a (25.08.2003) * broken documentation fixed Version 1.0.5 (22.08.2003) * ac++ commercial version 0.7.2 - broken call advice fixed Version 1.0.4 (08.08.2003) * ac++ commercial version 0.7.1 - some minor bug fixes - ordering of aspects improved * Visual Studio .NET 2003 compatibility improved * manuals updated * obsolete config tool removed Version 1.0.3 (02.07.2003) * ac++ commercial version 0.7 - some bug fixes Version 1.0.2 (27.06.2003) * Add-In registration for Visual Studio .NET 2003 added * Windows XP support improved * improved performance Version 1.0.1 (21.06.2003) * language reference added * seperate implementation of aspects: - aspect code can be placed into an *.acc file * a lot of bug fixes * renaming: - 'thisJoinPoint' was renamed to 'tjp' - 'aspectOf' was renamed to 'aspectof' - using the old names is still allowed but not recommended as they might become unsupported in future releases * name pointcuts with function names now partly supported: - '||','&&', '!', and within works with function names - the argument of call() and execution() can now be a complex expression, which results in a name pointcut that contains function names - within() supports function names * proceed: - it is now possible to use tjp->proceed() instead of tjp->action().trigger() * examples: - void removed in front of before, after, and around - thisJoinPoint and aspectOf renamed - updated proceed calls