Skip to content

Commit

Permalink
Use new nqp::track / nqp::guard ops
Browse files Browse the repository at this point in the history
Because after the bump we can.  Plus a little streamlining for
readability
  • Loading branch information
lizmat committed Jan 17, 2024
1 parent 2d8839e commit 1343953
Show file tree
Hide file tree
Showing 3 changed files with 297 additions and 338 deletions.
23 changes: 11 additions & 12 deletions src/Perl6/Metamodel/ClassHOW.nqp
Original file line number Diff line number Diff line change
Expand Up @@ -389,23 +389,23 @@ class Perl6::Metamodel::ClassHOW
# invocator
my $how := nqp::captureposarg($capture, 0);

my $track-how := nqp::syscall('dispatcher-track-arg', $capture, 0);
nqp::syscall('dispatcher-guard-concreteness', $track-how);
my $track-how := nqp::track('arg', $capture, 0);
nqp::guard('concreteness', $track-how);

unless nqp::isconcrete($how) {
nqp::delegate('boot-code-constant', $archetypes-ng);
}

my $obj := nqp::captureposarg($capture, 1);
my $track-obj := nqp::syscall('dispatcher-track-arg', $capture, 1);
nqp::syscall('dispatcher-guard-concreteness', $track-obj);
nqp::syscall('dispatcher-guard-type', $track-obj);
my $track-obj := nqp::track('arg', $capture, 1);
nqp::guard('concreteness', $track-obj);
nqp::guard('type', $track-obj);

if nqp::isconcrete_nd($obj) && nqp::iscont($obj) {
my $Scalar := nqp::gethllsym('Raku', 'Scalar');
my $track-value := nqp::syscall('dispatcher-track-attr', $track-obj, $Scalar, '$!value');
nqp::syscall('dispatcher-guard-concreteness', $track-value);
nqp::syscall('dispatcher-guard-type', $track-value);
my $track-value := nqp::track('attr', $track-obj, $Scalar, '$!value');
nqp::guard('concreteness', $track-value);
nqp::guard('type', $track-value);
$obj := nqp::getattr($obj, $Scalar, '$!value');
}

Expand All @@ -422,10 +422,9 @@ class Perl6::Metamodel::ClassHOW
0, { $obj.is-generic ?? $archetypes-g !! $archetypes-ng }));
}
else {
my $track-archetypes-attr :=
nqp::syscall('dispatcher-track-attr',
$track-how, Perl6::Metamodel::ClassHOW, '$!archetypes');
nqp::syscall('dispatcher-guard-literal', $track-archetypes-attr);
my $track-archetypes-attr := nqp::track('attr',
$track-how, Perl6::Metamodel::ClassHOW, '$!archetypes');
nqp::guard('literal', $track-archetypes-attr);

nqp::delegate('boot-constant',
nqp::syscall('dispatcher-insert-arg-literal-obj', $capture, 0,
Expand Down
6 changes: 3 additions & 3 deletions src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Original file line number Diff line number Diff line change
Expand Up @@ -4374,9 +4374,9 @@ my @transform_type := nqp::list(
-> $uint { nqp::box_u($uint, Int) },
);
nqp::register('raku-hllize', -> $capture {
my $arg := nqp::syscall('dispatcher-track-arg', $capture, 0);
nqp::syscall('dispatcher-guard-type', $arg);
nqp::syscall('dispatcher-guard-concreteness', $arg);
my $arg := nqp::track('arg', $capture, 0);
nqp::guard('type', $arg);
nqp::guard('concreteness', $arg);
my $spec := nqp::captureposprimspec($capture, 0);
if $spec {
nqp::delegate('lang-call',
Expand Down

0 comments on commit 1343953

Please sign in to comment.