Aspect
view release on metacpan or search on metacpan
precursor to changing it's behaviour at an API level.
- Now that the descope execution of the closure hook is able to be
trusted, we no longer need the Aspect::Cleanup DESTROY-time
self-execution magick.
- Added the ->wantarray property to the AdviceContext object.
This is provided as a convenience to the user (since the wantarray)
function works properly inside the advice code. It's main use is
for some AspectContext internals.
- Added wantarray context test, which uncovered a bug where
void-context calls were incorrectly running the advice in scalar
context.
0.24 Wed 30 Dec 2009 - Adam Kennedy
- Changes file now uses tabs (to make it less annoying for me) :)
- Moved the inline Aspect::Hook::LexWrap::Cleanup class into it's
own dedicated Aspect::Cleanup class.
- Merged Advice-specific hooks from Aspect::Hook::Lexwrap into the
advice classes.
- Removed the now-redundant Aspect::Hook::Lexwrap entirely
- Simplified the Aspect::AdviceContext constructor to make it faster
- Logically merged the code-generated functionality from ->install
and the Hook::LexWrap-inspired ->hook methods for each Advice
class. This removes a lot of guess work and double handling from
the main execution path, and should be significantly faster.
- With the code merged, pushed the scope exit flag outside the
symbol table iteration in the installer. Instead of a large array
of separate exit-tracking objects, we can instead use one single
shared lexical hook that works via mixed depth closure Magick.
- Only call wantarray once per hook execution and share the result
therafter as a variable. Saves two function calls per hook.
0.23 Thu 24 Dec 2009 - Adam Kennedy
- Removed the concept of a standalone Aspect::Weaver class
- Each Aspect::Advice:: subclass now does most of the setup for the weaving
individually, with similar but slightly different implementations.
This adds some duplication of code, but removes a lot of architectural
complexity. It should make the creation of new types of Advice simpler.
- Corrected the versions of the test libs (which went out of sync)
- The Hook::LexWrap wrap function is now split into Advice-specific hooks
before and after, duplicating some code but making each type simpler and
faster.
0.22 Mon 21 Dec 2009 - Adam Kennedy
- Part one of an upcoming series of major upgrades
- Migrating to Sub::Uplevel to remove our custom CORE::GLOBAL::caller
0.21 Tue 21 Jul 2009 - Adam Kennedy
- Bumped the version to 0.21 so the Hook::LexWrap module indexes
0.16 Tue 19 May 2009 - Adam Kennedy
- Moved out Aspect::Library::Profiler into a standalone distribution
0.15 Thu Jul 24 23:02:11 CEST 2008 (Marcel Gruenauer <marcel@cpan.org>)
- fixed version in all modules. *sigh*
0.14 Thu Jul 24 22:46:43 CEST 2008 (Marcel Gruenauer <marcel@cpan.org>)
- fixed dist style
0.13 Thu Jul 24 18:22:15 CEST 2008 (Marcel Gruenauer <marcel@cpan.org>)
- Made sure every module has a $VERSION
- updated MANIFEST and MANIFEST.SKIP
- removed META.yml as it is being generated by Module::Install
- added requirements to Makefile.PL
- converted Makefile.PL to use Module::Install
- Aspect::Hook::LexWrap now uses warnings and strict; some changes were
necessary for those to go through
- fixed POD error in Aspect::Modular
- added spaces where necessary to avoid having the template's start_tag in
the code
- renamed t/all_tests.t to t/01_all.t
- added t/perlcriticrc
- added .shipit
- set version to 0.13
- updated MANIFEST
- updated t/perlcriticrc
0.12 Sat, 24 Mar 2007 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- You can now attach advice to subs in main:: package, see Advice tests
- Made everything easier to install by including dependencies required for
testing
- Added __always_fire option to Listenable
- Listenable: You can now let listeners receive any parameters, not just
the event, see the test object_listener
- Modified our hack on Hook::LexWrap so it does not ignore prototypes, see
Advice tests
- Removed old warning from Makefile.PL
0.11 Tue, 03 Aug 2004 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- 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 Fri, 30 Jul 2004 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- No longer a developer release
- Added Listenable reusable aspect
- Added subject_params() support for TestClass library aspect
0.09_03 Tue, 06 Jul 2004 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- 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_02 Sat, 06 Mar 2004 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- 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_01 Sat, 06 Mar 2004 00:00:00 +0100 (Ran Eilam <ran.eilam@gmail.com>)
- 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, 31 Jul 2002 22:42:27 +0200 (Marcel Gruenauer <marcel@cpan.org>)
- The distribution has been adapted for use with perl5.8.0.
C<Hook::LexWrap> 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.
( run in 1.612 second using v1.01-cache-2.11-cpan-5837b0d9d2c )