Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
untangle code
  • Loading branch information
gerdr committed Feb 17, 2013
1 parent 6fc76a3 commit de66164
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 28 deletions.
28 changes: 6 additions & 22 deletions src/HLL/Compiler.pm
Expand Up @@ -149,17 +149,7 @@ class HLL::Compiler {
pir::set_runcore__0s("subprof_hll");
}
pir::trace__vI(%adverbs<trace>);

# Execute :init subs
if !$output.is_initialized('init') {
for $output.subs_by_tag('init') -> $sub { $sub(); }
$output.mark_initialized('init');
}

# Now execute the :main sub
my $main_sub := $output.main_sub();
$output := $main_sub(|@args);

$output := $output(|@args);
pir::trace__0i(0);
}
pir::set_runcore__vs($old_runcore);
Expand Down Expand Up @@ -454,17 +444,11 @@ class HLL::Compiler {
}

method init($source, *%adverbs) {
self.init_packfile($source)
}

method init_packfile($packfile) {
for $packfile.subs_by_tag('init') -> $sub { $sub(); }
$packfile.mark_initialized('init');
$packfile
}

method compile_and_init($source) {
self.init_packfile(pir::compreg__Ps('PIR').compile($source))
unless $source.is_initialized('init') {
for $source.subs_by_tag('init') -> $sub { $sub() }
$source.mark_initialized('init');
}
$source.main_sub()
}

method dumper($obj, $name, *%options) {
Expand Down
8 changes: 4 additions & 4 deletions src/NQP/World.pm
Expand Up @@ -240,10 +240,11 @@ class NQP::World is HLL::World {
my $nqpcomp := nqp::getcomp('nqp');
my $post := $nqpcomp.post(QAST::CompUnit.new( :hll('nqp'), $past ));
my $pir := $nqpcomp.pir($post);
my $compiled := $nqpcomp.compile_and_init($pir);
my $pbc := $nqpcomp.pbc($pir);
my $main := $nqpcomp.init($pbc);

# Fix up any code objects holding stubs with the real compiled thing.
my @all_subs := $compiled.all_subs();
my @all_subs := $pbc.all_subs();
my $c := nqp::elems(@all_subs);
my $i := 0;
while $i < $c {
Expand All @@ -269,8 +270,7 @@ class NQP::World is HLL::World {
$i := $i + 1;
}

my $main_sub := $compiled.main_sub();
$main_sub(|@args, |%named);
$main(|@args, |%named);
};

# Create code object, if we'll need one.
Expand Down
4 changes: 2 additions & 2 deletions src/QRegex/Cursor.nqp
Expand Up @@ -727,14 +727,14 @@ class NQPCursor does NQPCursorRole {
my $res := [];
for $var {
my $elem := $_;
$elem := $rxcompiler.compile($elem).main_sub()
$elem := $rxcompiler.compile($elem)
unless nqp::isinvokable($elem);
nqp::push($res, $elem);
}
$var := $res;
}
else {
$var := $rxcompiler.compile($var).main_sub();
$var := $rxcompiler.compile($var);
}
}
return self.'!INTERPOLATE'($var);
Expand Down

0 comments on commit de66164

Please sign in to comment.