Acme-Perl-VM
view release on metacpan or search on metacpan
lib/Acme/Perl/VM.pm view on Meta::CPAN
use Scalar::Util qw(looks_like_number refaddr);
use Carp ();
use Acme::Perl::VM::Context;
use Acme::Perl::VM::Scope;
use Acme::Perl::VM::PP;
use Acme::Perl::VM::B;
our $PL_runops = (APVM_TRACE || APVM_STACK)
? \&runops_debug
: \&runops_standard;
our $PL_op;
our $PL_curcop;
our @PL_stack;
our @PL_markstack;
our @PL_cxstack;
our @PL_scopestack;
our @PL_savestack;
lib/Acme/Perl/VM.pm view on Meta::CPAN
our $PL_tmps_floor;
our $PL_comppad;
our $PL_comppad_name;
our @PL_curpad;
our $PL_last_in_gv;
our @PL_ppaddr;
our $color = 'GREEN BOLD'; # for debugging log
sub not_implemented;
{
my $i = 0;
while(my $ppname = B::ppname($i)){
my $ppaddr = \$Acme::Perl::VM::PP::{$ppname};
if(ref($ppaddr) eq 'GLOB'){
$PL_ppaddr[$i] = *{$ppaddr}{CODE};
lib/Acme/Perl/VM.pm view on Meta::CPAN
deb ' KIDS' if $flags & OPf_KIDS;
deb ' PARENS' if $flags & OPf_PARENS;
deb ' REF' if $flags & OPf_REF;
deb ' MOD' if $flags & OPf_MOD;
deb ' STACKED' if $flags & OPf_STACKED;
deb ' SPECIAL' if $flags & OPf_SPECIAL;
deb "\n";
}
sub runops_debug{
_op_trace();
while(${ $PL_op = &{$PL_ppaddr[$PL_op->type]} }){
if(APVM_STACK){
dump_stack();
}
_op_trace();
}
if(APVM_STACK){
dump_stack();
lib/Acme/Perl/VM/B.pm view on Meta::CPAN
return;
}
package
B::OP;
sub dump{
my($obj) = @_;
require B::Debug;
$obj->debug;
return;
}
package
B::SPECIAL;
my %special_sv = (
${ B::sv_undef() } => \(undef),
${ B::sv_yes() } => \(1 == 1),
${ B::sv_no() } => \(1 != 1),
( run in 1.307 second using v1.01-cache-2.11-cpan-49f99fa48dc )