Acme-Perl-VM

 view release on metacpan or  search on metacpan

lib/Acme/Perl/VM.pm  view on Meta::CPAN

97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
use Scalar::Util qw(looks_like_number refaddr);
use Carp ();
 
 
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

120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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

219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
    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

47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
    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.076 second using v1.01-cache-2.11-cpan-95122f20152 )