Revision history for Perl extension Aspect. 0.11 Thu Aug 3 2004 - Fixed problem in upgrading from 0.08, CPAN.pm was getting confused on Advice and Modular, because they had no version numbers, and undef is smaller than 0.08. (merlyn) - Lowered dependency on Test::Class to 0.03 0.10 Thu Jul 30 2004 - No longer a developer release - Added Listenable reusable aspect - Added subject_params() support for TestClass library aspect 0.09_3 Wed Jul 6 2004 - Added Carp::Heavy to list of untouchables in Weaver.pm, to avoid Carp dumping core - Test::Class aspect allows for customizing IUT through init_subject_state 0.09_2 Sat Mar 6 2004 - AdviceContext now has the original code, so you can do AspectJ-style around advice. You can call the original code from before or after advice. Added AdviceContext::run_original. - Memoize can memoize in any context, not just scalar, again - Added Test::Class helper aspect - Started using Devel::Symdump 0.09_1 Sat Mar 6 2004 - Released for review by participants in YAPC::Israel 2004 - New syntax is incompatible with old - New maintainer, Ran Eilam - Control flow pointcut: cflow(), done according to Marcel's design - Advice context trapping for control flow pointcuts - Use Test::Class for unit tests - Wormhole reusable aspect - Added prototypes so you can dispense with parentheses - Removed return/around pointcuts, added after advice - Removed attribute interface - Added a mutated version of Hook::LexWrap with support for appending/removing arguments - Moved reusable aspects to Aspect::Library - regression: Aspect exported subs generate join points again 0.07 Wed Jul 31 22:42:27 CEST 2002 - The distribution has been adapted for use with perl5.8.0. C is now a core module, but there was a problem with context (wantarray) handling with Aspect::Memoize. Sorry about the perl 5.6.x users, but this is bleeding-edge stuff, so you're expected to use the very latest gear. Anyway, you can still get an earlier version (up to 0.07) from CPAN, which will work with perl 5.6.x. - Aspect::Memoize is now intended for subroutines returning scalars only. That is, if the sub is called in list context, it will still only memoize, and return, a memoized scalar. Void context obviously doesn't matter when it comes to memoization; subroutines returning lists are something I have to think about. - Tests now use Test::More 0.07 Fri Mar 15 09:04:51 CET 2002 - symbols exported from Aspect.pm now don't generate join points. So I added Aspect::import() and modified Aspect::JoinPoint::enum() to check for %Aspect::exp_syms. 0.06 Fri Oct 26 16:42:51 CEST 2001 - added around() function to Aspect.pm - added Aspect::Profiled - added Aspect::Attribute interface to creating advice - made Aspect::Advice's enable() and disable() return $self - added cookbook example program callflow_attr.pl - added cookbook recipes for bounds checking and change tracking, plus sample programs 0.05 Thu Oct 11 09:44:50 CEST 2001 - removed dependency on Data::Denter 0.04 Mon Oct 1 18:33:00 CEST 2001 - removed the patched Hook::LexWrap now that 0.20 is out which fixes all the problems of 0.10 - added documentation (a recurring theme, never finishes) 0.03 Sun Sep 30 19:43:56 CEST 2001 - added documentation - Included a patched Hook::LexWrap that fixes a bug with wantarray preservation in subroutine wrappers. Will be removed if and when Damian approves of the patch or otherwise fixes the bug. 0.02 Fri Sep 28 12:59:06 CEST 2001 - added documentation - added '$::thisjp' global variable - added modular memoization aspect: Aspect::Memoize - added modular tracing aspect: Aspect::Trace 0.01 Fri Sep 28 10:36:08 CEST 2001 - original version; created by h2xs 1.20 with options -XAn Aspect