PL_check hacks using Perl callbacks
Switch branches/tags
Clone or download
Pull request Compare This branch is 23 commits ahead of rafl:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
inc/ExtUtils/MakeMaker/Dist/Zilla
lib/B
t
.gitignore
.travis.yml
CONTRIBUTING
Changes
INSTALL
LICENCE
MANIFEST.SKIP
Makefile.PL
OPCheck.xs
README.pod
dist.ini
ppport.h

README.pod

NAME

B::OPCheck - PL_check hacks using Perl callbacks

VERSION

version 0.32

SYNOPSIS

use B::Generate; # to change things

use B::OPCheck entersub => check => sub {
    my $op = shift; # op has been checked by normal PL_check
    sodomize($op);
};

foo(); # this entersub will have the callback triggered

DESCRIPTION

PL_check is an array indexed by opcode number (op_type) that contains function pointers invoked as the last stage of optree compilation, per op.

This hook is called in bottom up order, as the code is parsed and the optree is prepared.

This is how modules like autobox do their magic

This module provides an api for registering PL_check hooks lexically, allowing you to alter the behavior of certain ops using B::Generate from perl space.

CHECK TYPES

check

Called after normal PL_checking. The return value is ignored.

after

Not yet implemented.

Allows you to return a processed B::OP. The op has been processed by PL_check already.

before

Not yet implemented.

Allows you to return a processed B::OP to be passed to normal PL_check.

replace

Not yet implemented.

Allows you to return a processed B::OP yourself, skipping normal PL_check handling completely.

SUPPORT

Bugs may be submitted through the RT bug tracker (or bug-B-OPCheck@rt.cpan.org).

AUTHORS

  • Chia-liang Kao <clkao@clkao.org>

  • יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

CONTRIBUTORS

  • Karen Etheridge <ether@cpan.org>

  • Florian Ragwitz <rafl@debian.org>

  • Alexandr Ciornii <alexchorny@gmail.com>

COPYRIGHT AND LICENCE

This software is copyright (c) 2009 by Chia-liang Kao, יובל קוג'מן (Yuval Kogman).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.