Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nqp for openSUSE:Factory checked in 
at 2022-04-03 21:31:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nqp (Old)
 and      /work/SRC/openSUSE:Factory/.nqp.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nqp"

Sun Apr  3 21:31:06 2022 rev:41 rq:966632 version:2022.03

Changes:
--------
--- /work/SRC/openSUSE:Factory/nqp/nqp.changes  2022-02-21 19:53:44.062870302 
+0100
+++ /work/SRC/openSUSE:Factory/.nqp.new.1900/nqp.changes        2022-04-03 
21:31:28.779497514 +0200
@@ -1,0 +2,15 @@
+Sun Apr  3 11:01:45 CEST 2022 - n...@detonation.org
+
+- update to version 2022.03
+  * Remove some not-needed trys, or convert to nqp::can + the method call
+  * Provide op coerce_ns on MoarVM and JVM
+  * Fix all returned native integers getting treated as signed
+
+-------------------------------------------------------------------
+Sun Mar 27 08:14:25 UTC 2022 - Stefan Seifert <n...@detonation.org>
+
+- Fix build on RHEL7
+  RHEL doesn't include perl's core libraries in its perl package, so
+  we need to explicitly depend on the modules we need for building.
+
+-------------------------------------------------------------------

Old:
----
  nqp-2022.02.tar.gz

New:
----
  nqp-2022.03.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nqp.spec ++++++
--- /var/tmp/diff_new_pack.eTk7FY/_old  2022-04-03 21:31:29.307491767 +0200
+++ /var/tmp/diff_new_pack.eTk7FY/_new  2022-04-03 21:31:29.311491724 +0200
@@ -17,20 +17,33 @@
 
 
 Name:           nqp
-Version:        2022.02
+Version:        2022.03
 Release:        1.1
 Summary:        Not Quite Perl
 License:        Artistic-2.0
 Group:          Development/Languages/Other
-URL:            http://rakudo.org/
+URL:            https://github.com/Raku/nqp
 Source:         nqp-%{version}.tar.gz
-BuildRequires:  moarvm-devel >= 2022.02
-Requires:       moarvm >= 2022.02
+BuildRequires:  moarvm-devel >= 2022.03
+Requires:       moarvm >= 2022.03
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+%ifarch s390x
+BuildRequires:  libffi-devel
+%endif
+BuildRequires:  perl
+BuildRequires:  perl(Digest::SHA)
+BuildRequires:  perl(IPC::Cmd)
 
 %description
-This is "Not Quite Perl" -- a compiler for a subset of Perl 6 used
-to implement a full Perl 6 compiler.
+This is "Not Quite Perl" -- a lightweight Raku-like environment for virtual
+machines. The key feature of NQP is that it's designed to be a very small
+environment (as compared with, say, raku or Rakudo) and is focused on being
+a high-level way to create compilers and libraries for virtual machines like
+MoarVM, the JVM, and others.
+
+Unlike a full-fledged implementation of Raku, NQP strives to have as small a
+runtime footprint as it can, while still providing a Raku object model and
+regular expression engine for the virtual machine.
 
 %prep
 %setup -q

++++++ nqp-2022.02.tar.gz -> nqp-2022.03.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/VERSION new/nqp-2022.03/VERSION
--- old/nqp-2022.02/VERSION     2022-02-11 19:27:03.000000000 +0100
+++ new/nqp-2022.03/VERSION     2022-03-20 19:06:23.000000000 +0100
@@ -1 +1 @@
-2022.02
+2022.03
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/docs/ops.markdown 
new/nqp-2022.03/docs/ops.markdown
--- old/nqp-2022.02/docs/ops.markdown   2022-02-11 19:26:59.000000000 +0100
+++ new/nqp-2022.03/docs/ops.markdown   2022-03-20 19:06:20.000000000 +0100
@@ -154,13 +154,13 @@
 
 [coerce_in](#coerce_in-moar) |
 [coerce_is](#coerce_is) |
-[coerce_is](#coerce_iu-moar) |
+[coerce_iu](#coerce_iu-moar) |
 [coerce_ni](#coerce_ni-moar) |
-[coerce_ns](#coerce_ns-moar) |
+[coerce_ns](#coerce_ns-moar-jvm) |
 [coerce_si](#coerce_si) |
 [coerce_sn](#coerce_sn-moar) |
 [coerce_ui](#coerce_ui-moar) |
-[coerce_us](#coerce_us-moar) |
+[coerce_us](#coerce_us-moar-jvm) |
 [intify](#intify-moar) |
 [numify](#numify-moar) |
 [stringify](#stringify)
@@ -1122,7 +1122,7 @@
 
 Coerce from num to int.
 
-## coerce_ns `moar`
+## coerce_ns `moar` `jvm`
 * `coerce_ns(num --> str)`
 
 Coerce from num to str.
@@ -1142,7 +1142,7 @@
 
 Coerce from uint to int.
 
-## coerce_us `moar`
+## coerce_us `moar` `jvm`
 * `coerce_us(uint --> str)`
 
 Coerce from uint to str.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/QRegex/NFA.nqp 
new/nqp-2022.03/src/QRegex/NFA.nqp
--- old/nqp-2022.02/src/QRegex/NFA.nqp  2022-02-11 19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/QRegex/NFA.nqp  2022-03-20 19:06:20.000000000 +0100
@@ -357,7 +357,7 @@
         my $subtype := $node.subtype;
 #        note("$indent subrule $from -> $to {$node.name}") if $nfadeb;
         if $node.name eq 'before' && !$node.negate &&
-                nqp::istype((try $node[0][1].ann('orig_qast')), QAST::Regex) {
+                nqp::can($node[0][1], "ann") && 
nqp::istype($node[0][1].ann('orig_qast'), QAST::Regex) {
             my int $end := self.addstate();
             self.regex_nfa($node[0][1].ann('orig_qast'), $from, $end);
 #            dentout(self.fate($node, $end, $to));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/vm/jvm/ModuleLoader.nqp 
new/nqp-2022.03/src/vm/jvm/ModuleLoader.nqp
--- old/nqp-2022.02/src/vm/jvm/ModuleLoader.nqp 2022-02-11 19:26:59.000000000 
+0100
+++ new/nqp-2022.03/src/vm/jvm/ModuleLoader.nqp 2022-03-20 19:06:20.000000000 
+0100
@@ -8,13 +8,11 @@
         # Put any explicitly specified path on the start of the list.
         my $explicit;
         if !nqp::isnull($explicit_path) {
-            try {
-                my $compiling := %*COMPILING;
-                unless nqp::isnull(%*COMPILING) {
-                    my $options := $compiling<%?OPTIONS>;
-                    unless nqp::isnull($options) {
-                        $explicit := $options{$explicit_path};
-                    }
+            my $compiling := %*COMPILING;
+            unless nqp::isnull($compiling) {
+                my $options := $compiling<%?OPTIONS>;
+                unless nqp::isnull($options) {
+                    $explicit := $options{$explicit_path};
                 }
             }
         }
@@ -61,13 +59,11 @@
             my $*CTXSAVE := self;
             my $*MAIN_CTX := ModuleLoader;
             my $boot_mode;
-            try {
-                my $compiling := %*COMPILING;
-                unless nqp::isnull(%*COMPILING) {
-                    my $options := $compiling<%?OPTIONS>;
-                    unless nqp::isnull($options) {
-                        $boot_mode := $options<bootstrap>;
-                    }
+            my $compiling := %*COMPILING;
+            unless nqp::isnull($compiling) {
+                my $options := $compiling<%?OPTIONS>;
+                unless nqp::isnull($options) {
+                    $boot_mode := $options<bootstrap>;
                 }
             }
             $boot_mode := !nqp::isnull($boot_mode) && $boot_mode;
@@ -180,13 +176,11 @@
                 my $*CTXSAVE := self;
                 my $*MAIN_CTX := ModuleLoader;
                 my $boot_mode;
-                try {
-                    my $compiling := %*COMPILING;
-                    unless nqp::isnull(%*COMPILING) {
-                        my $options := $compiling<%?OPTIONS>;
-                        unless nqp::isnull($options) {
-                            $boot_mode := $options<bootstrap>;
-                        }
+                my $compiling := %*COMPILING;
+                unless nqp::isnull($compiling) {
+                    my $options := $compiling<%?OPTIONS>;
+                    unless nqp::isnull($options) {
+                        $boot_mode := $options<bootstrap>;
                     }
                 }
                 $boot_mode := !nqp::isnull($boot_mode) && $boot_mode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/vm/jvm/QAST/Compiler.nqp 
new/nqp-2022.03/src/vm/jvm/QAST/Compiler.nqp
--- old/nqp-2022.02/src/vm/jvm/QAST/Compiler.nqp        2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/jvm/QAST/Compiler.nqp        2022-03-20 
19:06:20.000000000 +0100
@@ -3061,6 +3061,7 @@
 QAST::OperationsJAST.map_classlib_core_op('coerce_si', $TYPE_OPS, 'coerce_si', 
[$RT_STR], $RT_INT, :tc);
 QAST::OperationsJAST.map_classlib_core_op('coerce_is', $TYPE_OPS, 'coerce_is', 
[$RT_INT], $RT_STR, :tc);
 QAST::OperationsJAST.map_classlib_core_op('coerce_us', $TYPE_OPS, 'coerce_us', 
[$RT_UINT], $RT_STR, :tc);
+QAST::OperationsJAST.map_classlib_core_op('coerce_ns', $TYPE_OPS, 'coerce_ns', 
[$RT_NUM], $RT_STR, :tc);
 
 QAST::OperationsJAST.map_classlib_core_op('decodelocaltime', $TYPE_OPS, 
'decodelocaltime', [$RT_INT], $RT_OBJ, :tc);
 
@@ -3940,7 +3941,7 @@
         unless $*CODEREFS.know_cuid($node.cuid) {
             # Block gets fresh BlockInfo.
             my $*BINDVAL  := 0;
-            my $outer     := try $*BLOCK;
+            my $outer     := $*BLOCK;
             my $block     := BlockInfo.new($node, $outer);
 
             # This array will contain any catch/control exception handlers the
@@ -4358,7 +4359,7 @@
 
         # Now go by block type for producing a result; also need to 
special-case
         # the top-level, where we need no result.
-        if nqp::istype((try $*STACK), StackState) {
+        if nqp::istype($*STACK, StackState) {
             my $blocktype := $node.blocktype;
             if $blocktype eq '' || $blocktype eq 'declaration' || $blocktype 
eq 'declaration_static' {
                 return self.as_jast(QAST::BVal.new( :value($node) ));
@@ -4482,8 +4483,7 @@
     }
 
     multi method as_jast(QAST::Op $node, :$want) {
-        my $hll := '';
-        try $hll := $*HLL;
+        my $hll := $*HLL // '';
         QAST::OperationsJAST.compile_op(self, $hll, $node);
     }
 
@@ -5095,13 +5095,11 @@
             $il.append(pop_ins($got));
         }
         elsif $desired == $RT_OBJ {
-            my $hll := '';
-            try $hll := $*HLL;
+            my $hll := $*HLL // '';
             return QAST::OperationsJAST.box(self, $hll, $got);
         }
         elsif $got == $RT_OBJ {
-            my $hll := '';
-            try $hll := $*HLL;
+            my $hll := $*HLL // '';
             return QAST::OperationsJAST.unbox(self, $hll, $desired);
         }
         elsif $desired == $RT_INT {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nqp-2022.02/src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java 
new/nqp-2022.03/src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java
--- old/nqp-2022.02/src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java    
2022-02-11 19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java    
2022-03-20 19:06:20.000000000 +0100
@@ -1108,6 +1108,11 @@
             cf = cf.outer;
         return cf.iLex[i];
     }
+    public static long getlex_u_si(CallFrame cf, int i, int si) {
+        while (si-- > 0)
+            cf = cf.outer;
+        return cf.iLex[i];
+    }
     public static double getlex_n_si(CallFrame cf, int i, int si) {
         while (si-- > 0)
             cf = cf.outer;
@@ -1131,6 +1136,12 @@
         cf.iLex[i] = v;
         return v;
     }
+    public static long bindlex_u_si(long v, CallFrame cf, int i, int si) {
+        while (si-- > 0)
+            cf = cf.outer;
+        cf.iLex[i] = v;
+        return v;
+    }
     public static double bindlex_n_si(double v, CallFrame cf, int i, int si) {
         while (si-- > 0)
             cf = cf.outer;
@@ -7657,6 +7668,10 @@
         return Long.toUnsignedString(l);
     }
 
+    public static String coerce_ns(double d, ThreadContext tc) {
+        return coerce_n2s(d);
+    }
+
     public static SixModelObject decodelocaltime(long sinceEpoch, 
ThreadContext tc) {
         // Get calendar for current local host's timezone.
         Calendar c = Calendar.getInstance();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/vm/moar/ModuleLoader.nqp 
new/nqp-2022.03/src/vm/moar/ModuleLoader.nqp
--- old/nqp-2022.02/src/vm/moar/ModuleLoader.nqp        2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/moar/ModuleLoader.nqp        2022-03-20 
19:06:20.000000000 +0100
@@ -268,8 +268,7 @@
         my @search_paths;
 
         # Put any explicitly specified path on the start of the list.
-        my $explicit;
-        try { $explicit := nqp::ifnull(nqp::ifnull(%*COMPILING, 
{})<%?OPTIONS>, {}){$explicit_path}; }
+        my $explicit := nqp::ifnull(nqp::ifnull(%*COMPILING, {})<%?OPTIONS>, 
{}){$explicit_path};
         if !nqp::isnull($explicit) && nqp::defined($explicit) {
             nqp::push(@search_paths, $explicit);
         }
@@ -305,8 +304,7 @@
         else {
             my $*CTXSAVE := self;
             my $*MAIN_CTX := ModuleLoader;
-            my $boot_mode;
-            try { $boot_mode := nqp::ifnull(nqp::ifnull(%*COMPILING, 
{})<%?OPTIONS>, {})<bootstrap>; }
+            my $boot_mode := nqp::ifnull(nqp::ifnull(%*COMPILING, 
{})<%?OPTIONS>, {})<bootstrap>;
             $boot_mode := !nqp::isnull($boot_mode) && $boot_mode;
             my $preserve_global := nqp::getcurhllsym('GLOBAL');
             nqp::usecompileehllconfig() if $boot_mode;
@@ -407,8 +405,7 @@
             unless nqp::existskey(%settings_loaded, $path) {
                 my $*CTXSAVE := self;
                 my $*MAIN_CTX := ModuleLoader;
-                my $boot_mode;
-                try { $boot_mode := nqp::ifnull(nqp::ifnull(%*COMPILING, 
{})<%?OPTIONS>, {})<bootstrap>; }
+                my $boot_mode := nqp::ifnull(nqp::ifnull(%*COMPILING, 
{})<%?OPTIONS>, {})<bootstrap>;
                 $boot_mode := !nqp::isnull($boot_mode) && $boot_mode;
                 my $preserve_global := nqp::getcurhllsym('GLOBAL');
                 nqp::usecompileehllconfig() if $boot_mode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/vm/moar/QAST/QASTCompilerMAST.nqp 
new/nqp-2022.03/src/vm/moar/QAST/QASTCompilerMAST.nqp
--- old/nqp-2022.02/src/vm/moar/QAST/QASTCompilerMAST.nqp       2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/moar/QAST/QASTCompilerMAST.nqp       2022-03-20 
19:06:20.000000000 +0100
@@ -734,10 +734,10 @@
         'return_s',
         'return_o',
         '','','','','','','','',
-        'return_i', #FIXME need a return_u
-        'return_i',
-        'return_i',
-        'return_i'
+        'return_u',
+        'return_u',
+        'return_u',
+        'return_u'
     ];
 
     my @attr_opnames := [
@@ -1018,8 +1018,8 @@
                 :compunit($!mast_compunit));
 
             $!mast_compunit.add_frame($frame);
-            try $outer := $*BLOCK;
-            $block     := BlockInfo.new($node, (nqp::defined($outer) ?? $outer 
!! NQPMu), self);
+            $outer := $*BLOCK;
+            $block := BlockInfo.new($node, (nqp::defined($outer) ?? $outer !! 
NQPMu), self);
             %*BLOCKS_DONE{$cuid} := [$block, $outer];
 
             # stash the frame by the block's cuid so other references
@@ -1086,11 +1086,13 @@
                     $ins := self.coerce($ins, $MVM_reg_num64);
                 }
                 elsif $ins_result_kind == $MVM_reg_int32 || $ins_result_kind 
== $MVM_reg_int16 ||
-                        $ins_result_kind == $MVM_reg_int8 || $ins_result_kind 
== $MVM_reg_uint64 ||
-                        $ins_result_kind == $MVM_reg_uint32 || 
$ins_result_kind == $MVM_reg_uint16 ||
-                        $ins_result_kind == $MVM_reg_uint8 {
+                        $ins_result_kind == $MVM_reg_int8 {
                     $ins := self.coerce($ins, $MVM_reg_int64);
                 }
+                elsif $ins_result_kind == $MVM_reg_uint32 || $ins_result_kind 
== $MVM_reg_uint16 ||
+                        $ins_result_kind == $MVM_reg_uint8 {
+                    $ins := self.coerce($ins, $MVM_reg_uint64);
+                }
 
                 $block.return_kind($ins.result_kind);
                 # generate a return statement
@@ -1422,6 +1424,9 @@
         elsif $result-kind == $MVM_reg_int64 {
             op_dispatch_i($!mast_frame, $result-reg, $disp-name, $callsite-id, 
[$code-reg]);
         }
+        elsif $result-kind == $MVM_reg_uint64 {
+            op_dispatch_u($!mast_frame, $result-reg, $disp-name, $callsite-id, 
[$code-reg]);
+        }
         elsif $result-kind == $MVM_reg_num64 {
             op_dispatch_n($!mast_frame, $result-reg, $disp-name, $callsite-id, 
[$code-reg]);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/src/vm/moar/QAST/QASTOperationsMAST.nqp 
new/nqp-2022.03/src/vm/moar/QAST/QASTOperationsMAST.nqp
--- old/nqp-2022.02/src/vm/moar/QAST/QASTOperationsMAST.nqp     2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/moar/QAST/QASTOperationsMAST.nqp     2022-03-20 
19:06:20.000000000 +0100
@@ -2109,17 +2109,14 @@
 QAST::MASTOperations.add_hll_unbox('', $MVM_reg_uint64, -> $qastcomp, $reg {
     my $regalloc := $qastcomp.regalloc;
     my $frame := $qastcomp.mast_frame;
-    my $tmp_reg := $regalloc.fresh_register($MVM_reg_int64);
     my $res_reg := $regalloc.fresh_register($MVM_reg_uint64);
     $regalloc.release_register($reg, $MVM_reg_obj);
     my $dc := $regalloc.fresh_register($MVM_reg_obj);
     op_decont($frame, $dc, $reg);
     my uint $callsite_id := $frame.callsites.get_callsite_id_from_args(
         $FAKE_OBJECT_ARG, [MAST::InstructionList.new($dc, $MVM_reg_obj)]);
-    op_dispatch_i($frame, $tmp_reg, 'nqp-uintify', $callsite_id, [$dc]);
+    op_dispatch_u($frame, $res_reg, 'nqp-uintify', $callsite_id, [$dc]);
     $regalloc.release_register($dc, $MVM_reg_obj);
-    %core_op_generators{'coerce_iu'}($frame, $res_reg, $tmp_reg);
-    $regalloc.release_register($tmp_reg, $MVM_reg_int64);
     MAST::InstructionList.new($res_reg, $MVM_reg_uint64)
 });
 sub boxer($kind, $type_op, $op) {
@@ -2837,6 +2834,7 @@
     'fromI_I', 'coerce_II',
     'coerce_in', 'coerce_in',
     'coerce_ni', 'coerce_ni',
+    'coerce_ns', 'coerce_ns',
     'coerce_ui', 'coerce_ui',
     'coerce_iu', 'coerce_iu',
     'coerce_is', 'coerce_is',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nqp-2022.02/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp 
new/nqp-2022.03/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
--- old/nqp-2022.02/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp  2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp  2022-03-20 
19:06:20.000000000 +0100
@@ -56,6 +56,7 @@
 
 my &op_dispatch_v := %core_op_generators<dispatch_v>;
 my &op_dispatch_i := %core_op_generators<dispatch_i>;
+my &op_dispatch_u := %core_op_generators<dispatch_u>;
 my &op_dispatch_n := %core_op_generators<dispatch_n>;
 my &op_dispatch_s := %core_op_generators<dispatch_s>;
 my &op_dispatch_o := %core_op_generators<dispatch_o>;
@@ -78,7 +79,7 @@
             $res_reg := $qastcomp.regalloc.fresh_register($res_kind);
             op_dispatch_o($frame, $res_reg, $dispatcher_name, $callsite_id, 
@arg_idxs);
         }
-        elsif $primspec == 1 || $primspec == 10 {
+        elsif $primspec == 1 {
             if $res_kind == $MVM_reg_int64 {
                 $res_reg := $qastcomp.regalloc.fresh_register($res_kind);
                 op_dispatch_i($frame, $res_reg, $dispatcher_name, 
$callsite_id, @arg_idxs);
@@ -90,6 +91,18 @@
                     MAST::InstructionList.new($temp_reg, $MVM_reg_int64), 
$res_kind).result_reg;
             }
         }
+        elsif $primspec == 10 {
+            if $res_kind == $MVM_reg_uint64 {
+                $res_reg := $qastcomp.regalloc.fresh_register($res_kind);
+                op_dispatch_u($frame, $res_reg, $dispatcher_name, 
$callsite_id, @arg_idxs);
+            }
+            else {
+                my $temp_reg := 
$qastcomp.regalloc.fresh_register($MVM_reg_uint64);
+                op_dispatch_u($frame, $temp_reg, $dispatcher_name, 
$callsite_id, @arg_idxs);
+                $res_reg := $qastcomp.coerce(
+                    MAST::InstructionList.new($temp_reg, $MVM_reg_uint64), 
$res_kind).result_reg;
+            }
+        }
         elsif $primspec == 2 {
             if $res_kind == $MVM_reg_num64 {
                 $res_reg := $qastcomp.regalloc.fresh_register($res_kind);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/tools/build/gen-version.pl 
new/nqp-2022.03/tools/build/gen-version.pl
--- old/nqp-2022.02/tools/build/gen-version.pl  2022-02-11 19:26:59.000000000 
+0100
+++ new/nqp-2022.03/tools/build/gen-version.pl  2022-03-20 19:06:20.000000000 
+0100
@@ -12,11 +12,13 @@
 
 use Digest::SHA;
 use File::Find;
+use File::Spec;
 use POSIX 'strftime';
 
 my $prefix = shift // '';
 my $static_nqp_home = shift // '';
 my $libdir = shift // '';
+my $backend = shift // '';
 
 open(my $fh, '<', 'VERSION') or die $!;
 my $VERSION = <$fh>;
@@ -32,6 +34,13 @@
 
 my $sha = Digest::SHA->new;
 find(sub { return unless /\.nqp\z/; $sha->addfile($_) }, "src");
+if ($backend eq 'moar') {
+    $sha->addfile(File::Spec->catfile($libdir, 'MAST', $_)) for qw(Nodes.nqp 
Ops.nqp);
+}
+# add everything that could change the generated nqp-config.nqp and thus NQP's
+# sources, despite src/ not getting touched
+$sha->add(join "\0", $VERSION, $prefix, $static_nqp_home, $libdir);
+
 my $source_digest = $sha->hexdigest;
 
 print <<"END_VERSION";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2022.02/tools/templates/MOAR_REVISION 
new/nqp-2022.03/tools/templates/MOAR_REVISION
--- old/nqp-2022.02/tools/templates/MOAR_REVISION       2022-02-11 
19:27:03.000000000 +0100
+++ new/nqp-2022.03/tools/templates/MOAR_REVISION       2022-03-20 
19:06:23.000000000 +0100
@@ -1 +1 @@
-2022.02
+2022.03
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nqp-2022.02/tools/templates/Makefile-backend-common.in 
new/nqp-2022.03/tools/templates/Makefile-backend-common.in
--- old/nqp-2022.02/tools/templates/Makefile-backend-common.in  2022-02-11 
19:26:59.000000000 +0100
+++ new/nqp-2022.03/tools/templates/Makefile-backend-common.in  2022-03-20 
19:06:20.000000000 +0100
@@ -120,7 +120,7 @@
 
 @nfp(@stage_dir@/nqp-config.nqp)@: @bpm(SOURCES)@
        @echo(+++ Generating    stage @stage@ nqp-config.nqp)@
-       $(NOECHO)$(PERL5) @shquot(@script(gen-version.pl)@)@ @q($(PREFIX))@ 
@q($(STATIC_NQP_HOME))@ @q($(NQP_LIB_DIR))@ > @nfpq(@stage_dir@/nqp-config.nqp)@
+       $(NOECHO)$(PERL5) @shquot(@script(gen-version.pl)@)@ @q($(PREFIX))@ 
@q($(STATIC_NQP_HOME))@ @q($(NQP_LIB_DIR))@ @backend@ > 
@nfpq(@stage_dir@/nqp-config.nqp)@
 
 @nfp(@stage_dir@/@bsm(NQP)@)@: @bsm(NQP_@ucprev_stage@)@ 
@nfp(@stage_dir@/@bsm(QAST)@)@ @nfp(@stage_dir@/@bsm(P6QREGEX)@)@ @bpm(SOURCES)@
        @echo(+++ Creating      stage @stage@ NQP)@

Reply via email to