Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Created March 27, 2017 22:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterDuke17/5bcd7b0413473cf5fe46dbad9763a857 to your computer and use it in GitHub Desktop.
Save MasterDuke17/5bcd7b0413473cf5fe46dbad9763a857 to your computer and use it in GitHub Desktop.
diff --git a/src/Perl6/Metamodel/BUILDPLAN.nqp b/src/Perl6/Metamodel/BUILDPLAN.nqp
index 1187f46ee..7d670d2e2 100644
--- a/src/Perl6/Metamodel/BUILDPLAN.nqp
+++ b/src/Perl6/Metamodel/BUILDPLAN.nqp
@@ -59,8 +59,14 @@ role Perl6::Metamodel::BUILDPLAN {
my $name := nqp::substr($attr_name, 2);
my $typespec := nqp::objprimspec($_.type);
if $typespec {
- @plan[+@plan] := [nqp::add_i(4, $typespec),
- $obj, $name, $attr_name];
+ if $typespec == 1 && nqp::objprimunsigned($_.type) {
+ note("unsigned");
+ @plan[+@plan] := [99, $obj, $name, $attr_name];
+ }
+ else {
+ @plan[+@plan] := [nqp::add_i(4, $typespec),
+ $obj, $name, $attr_name];
+ }
} else {
@plan[+@plan] := [1, $obj, $name, $attr_name];
}
diff --git a/src/core/Mu.pm b/src/core/Mu.pm
index 87ea4d381..bf32fe97e 100644
--- a/src/core/Mu.pm
+++ b/src/core/Mu.pm
@@ -216,6 +216,19 @@ my class Mu { # declared in BOOTSTRAP
)
),
+ nqp::if( # 99
+ nqp::iseq_i($code,99),
+ nqp::if(
+ nqp::existskey($init,nqp::atpos($task,2)),
+ nqp::bindattr_u(self,
+ nqp::atpos($task,1),
+ nqp::atpos($task,3),
+ nqp::decont(%attrinit.AT-KEY(
+ nqp::p6box_s(nqp::atpos($task,2))
+ ))
+ )
+ ),
+
nqp::if( # 6
nqp::iseq_i($code,6),
nqp::if(
@@ -309,7 +322,7 @@ my class Mu { # declared in BOOTSTRAP
nqp::isne_i($code,13), # no-op
die("Invalid BUILDALL plan")
)
- ))))))))))))));
+ )))))))))))))));
self
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment