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 0.810 second using v1.01-cache-2.11-cpan-0a6323c29d9 )