Acme-Perl-VM
view release on metacpan or search on metacpan
lib/Acme/Perl/VM.pm view on Meta::CPAN
979899100101102103104105106107108109110111112113114115116117use
Carp ();
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
120121122123124125126127128129130131132133134135136137138139140our
$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
219220221222223224225226227228229230231232233234235236237238239
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
474849505152535455565758596061626364656667
return
;
}
package
B::OP;
sub
dump
{
my
(
$obj
) =
@_
;
$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 )