Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nqp for openSUSE:Factory checked in 
at 2021-08-23 10:08:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nqp (Old)
 and      /work/SRC/openSUSE:Factory/.nqp.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nqp"

Mon Aug 23 10:08:17 2021 rev:39 rq:913544 version:2021.08

Changes:
--------
--- /work/SRC/openSUSE:Factory/nqp/nqp.changes  2021-07-25 20:09:28.119429955 
+0200
+++ /work/SRC/openSUSE:Factory/.nqp.new.1899/nqp.changes        2021-08-23 
10:09:26.136157834 +0200
@@ -1,0 +2,6 @@
+Sun Aug 22 10:19:02 CEST 2021 - n...@detonation.org
+
+- update to version 2021.08
+  * Fix several issues on the JVM
+
+-------------------------------------------------------------------

Old:
----
  nqp-2021.07.tar.gz

New:
----
  nqp-2021.08.tar.gz

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

Other differences:
------------------
++++++ nqp.spec ++++++
--- /var/tmp/diff_new_pack.23Q1PA/_old  2021-08-23 10:09:26.744157125 +0200
+++ /var/tmp/diff_new_pack.23Q1PA/_new  2021-08-23 10:09:26.748157121 +0200
@@ -17,15 +17,15 @@
 
 
 Name:           nqp
-Version:        2021.07
+Version:        2021.08
 Release:        1.1
 Summary:        Not Quite Perl
 License:        Artistic-2.0
 Group:          Development/Languages/Other
 URL:            http://rakudo.org/
 Source:         nqp-%{version}.tar.gz
-BuildRequires:  moarvm-devel >= 2021.07
-Requires:       moarvm >= 2021.07
+BuildRequires:  moarvm-devel >= 2021.08
+Requires:       moarvm >= 2021.08
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description

++++++ nqp-2021.07.tar.gz -> nqp-2021.08.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/VERSION new/nqp-2021.08/VERSION
--- old/nqp-2021.07/VERSION     2021-07-24 17:07:56.000000000 +0200
+++ new/nqp-2021.08/VERSION     2021-08-21 15:19:53.000000000 +0200
@@ -1 +1 @@
-2021.07
+2021.08
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/docs/ops.markdown 
new/nqp-2021.08/docs/ops.markdown
--- old/nqp-2021.07/docs/ops.markdown   2021-07-24 17:07:37.000000000 +0200
+++ new/nqp-2021.08/docs/ops.markdown   2021-08-21 15:13:31.000000000 +0200
@@ -3260,16 +3260,10 @@
 time sleeping is spent.) Returns the passed in number.
 
 ## time
-* `time_i(--> int)` (DEPRECATED)
-* `time_n(--> num)` (DEPRECATED)
 * `time(--> int)`
 
 Return the time in nanoseconds since January 1, 1970 UTC 
(1970-01-01T00:00:00Z).
 
-The **DEPRECATED** `_i` and `_n` variants return the number of seconds
-since January 1, 1970 UTC.  `_i` as an integer value, `_n` as a fractional
-amount.
-
 # <a id="trig"></a> Trigonometric
 
 ## acos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/src/vm/jvm/QAST/Compiler.nqp 
new/nqp-2021.08/src/vm/jvm/QAST/Compiler.nqp
--- old/nqp-2021.07/src/vm/jvm/QAST/Compiler.nqp        2021-07-24 
17:07:37.000000000 +0200
+++ new/nqp-2021.08/src/vm/jvm/QAST/Compiler.nqp        2021-08-21 
15:13:31.000000000 +0200
@@ -831,11 +831,33 @@
 
         # Emit test.
         if $is_withy {
+            $il.append($qastcomp.coercion($cond, $RT_OBJ));
+
+            # Use 'findmethod' to detect and invoke method 'defined'.
+            $il.append($DUP);
+            $il.append(JAST::PushSVal.new( :value('defined') ));
             $il.append($ALOAD_1);
             $il.append(JAST::Instruction.new(:op('invokestatic'),
-                $TYPE_OPS, 'isconcrete', 'Long', $TYPE_SMO, $TYPE_TC));
-            $il.append($IVAL_ZERO);
-            $il.append($LCMP);
+                $TYPE_OPS, 'findmethod', $TYPE_SMO, $TYPE_SMO, $TYPE_STR, 
$TYPE_TC));
+
+            my $meth_temp := $*TA.fresh_o();
+            my $cond_temp := $*TA.fresh_o();
+            $il.append(JAST::Instruction.new( :op('astore'), $meth_temp));
+            $il.append(JAST::Instruction.new( :op('astore'), $cond_temp));
+            my $cs_idx := $*CODEREFS.get_callsite_idx([$ARG_OBJ], []);
+            my @argTypes := ['I', $TYPE_TC, $TYPE_SMO, $TYPE_SMO];
+            $il.append(JAST::PushIndex.new( :value($cs_idx) ));
+            $il.append($ALOAD_1);
+            $il.append(JAST::Instruction.new( :op('aload'), $meth_temp ));
+            $il.append(JAST::Instruction.new( :op('aload'), $cond_temp ));
+            $il.append(savesite(JAST::InvokeDynamic.new(
+                'indcall_noa', 'V', @argTypes, 
'org/raku/nqp/runtime/IndyBootstrap', 'indcall_noa'
+            )));
+            $il.append(JAST::Instruction.new( :op('aload'), 'cf' ));
+            $il.append(JAST::Instruction.new( :op('invokestatic'), $TYPE_OPS,
+                'result_o', $TYPE_SMO, $TYPE_CF ));
+
+            boolify_instructions($il, $RT_OBJ);
         }
         else {
             boolify_instructions($il, $cond.type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/t/nqp/067-container.t 
new/nqp-2021.08/t/nqp/067-container.t
--- old/nqp-2021.07/t/nqp/067-container.t       2021-07-24 17:07:37.000000000 
+0200
+++ new/nqp-2021.08/t/nqp/067-container.t       2021-08-21 15:13:31.000000000 
+0200
@@ -206,16 +206,23 @@
     my $cont_for_with_container_defined := nqp::create(SimpleCont);
     nqp::assign($cont_for_with_container_defined, ValueWithDefined.new(defined 
=> $cont_with_false_value));
 
+    is(nqp::with($cont_for_with_defined, "good", "bad"), "good", 'with - 
defined case');
+    is(nqp::with($cont_for_with_not_defined, "good", "bad"), "bad", 'with - 
undefined case');
     if nqp::getcomp('nqp').backend.name eq 'jvm' {
-        skip('on the jvm nqp::with incorrectly checks for type object instead 
of calling defined', 6);
+        todo('on the jvm nqp::with needs more work', 1);
+        ok(0);
     }
     else {
-        is(nqp::with($cont_for_with_defined, "good", "bad"), "good", 'with - 
defined case');
-        is(nqp::with($cont_for_with_not_defined, "good", "bad"), "bad", 'with 
- undefined case');
         is(nqp::with($cont_for_with_container_defined, "good", "bad"), "good", 
'with - defined returns container');
+    }
 
-        is(nqp::without($cont_for_with_defined, "good", "bad"), "bad", 
'without - defined case');
-        is(nqp::without($cont_for_with_not_defined, "good", "bad"), "good", 
'without - undefined case');
+    is(nqp::without($cont_for_with_defined, "good", "bad"), "bad", 'without - 
defined case');
+    is(nqp::without($cont_for_with_not_defined, "good", "bad"), "good", 
'without - undefined case');
+    if nqp::getcomp('nqp').backend.name eq 'jvm' {
+        todo('on the jvm nqp::with needs more work', 1);
+        ok(0);
+    }
+    else {
         is(nqp::without($cont_for_with_container_defined, "good", "bad"), 
"bad", 'without - defined returns container');
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/t/qast/01-qast.t 
new/nqp-2021.08/t/qast/01-qast.t
--- old/nqp-2021.07/t/qast/01-qast.t    2021-07-24 17:07:37.000000000 +0200
+++ new/nqp-2021.08/t/qast/01-qast.t    2021-08-21 15:13:31.000000000 +0200
@@ -1453,71 +1453,67 @@
 
 $dont_call := 0;
 
-if nqp::getcomp('nqp').backend.name eq 'jvm' {
-    skip("with/without are broken on the jvm", 4);
-} else {
-    my class IsDefined {
-        has int $!defined;
-        has $!left;
-        has $!right;
-        method new($defined, $left, $right) {
-            my $obj := nqp::create(self);
-            $obj.BUILD($defined, $left, $right);
-            $obj;
-        }
-        method BUILD($defined, $left, $right) {
-            $!defined := $defined;
-            $!left := $left;
-            $!right := $right;
-        }
-        method defined() {
-            $!defined;
-        }
-        method left() {
-            $!left;
-        }
-        method right() {
-            $!right;
-        }
+my class IsDefined {
+    has int $!defined;
+    has $!left;
+    has $!right;
+    method new($defined, $left, $right) {
+        my $obj := nqp::create(self);
+        $obj.BUILD($defined, $left, $right);
+        $obj;
     }
-
-    my sub with_arity($arity, $block) {
-        $block.arity($arity);
-        $block;
+    method BUILD($defined, $left, $right) {
+        $!defined := $defined;
+        $!left := $left;
+        $!right := $right;
+    }
+    method defined() {
+        $!defined;
+    }
+    method left() {
+        $!left;
     }
+    method right() {
+        $!right;
+    }
+}
 
-    my $test := -> $op {
-        QAST::Block.new(
-            QAST::Var.new( :name<arg>, :scope<local>, :decl<param>),
-            QAST::Op.new(
-                :op($op),
-                QAST::Var.new(:name<arg>, :scope<local>),
-                with_arity(1, QAST::Block.new(
-                    :blocktype<immediate>,
-                    QAST::Op.new(
-                        :op<callmethod>,
-                        :name<left>,
-                        QAST::Var.new(:name<b>, :scope<local>, :decl<param>)
-                    )
-                )),
-                with_arity(1, QAST::Block.new(
-                    :blocktype<immediate>,
-                    QAST::Op.new(
-                        :op<callmethod>,
-                        :name<right>,
-                        QAST::Var.new(:name<b>, :scope<local>, :decl<param>)
-                    )
-                ))
-             )
-        );
-    };
-
-    is_qast_args($test('with'), [IsDefined.new(1, 'good', 'bad')], 'good', 
'with op - defined');
-    is_qast_args($test('with'), [IsDefined.new(0, 'good', 'bad')], 'bad', 
'with op - not defined');
-    is_qast_args($test('without'), [IsDefined.new(1, 'bad', 'good')], 'good', 
'without op - defined');
-    is_qast_args($test('without'), [IsDefined.new(0, 'bad', 'good')], 'bad', 
'without op - not defined');
+my sub with_arity($arity, $block) {
+    $block.arity($arity);
+    $block;
 }
 
+my $test := -> $op {
+    QAST::Block.new(
+        QAST::Var.new( :name<arg>, :scope<local>, :decl<param>),
+        QAST::Op.new(
+            :op($op),
+            QAST::Var.new(:name<arg>, :scope<local>),
+            with_arity(1, QAST::Block.new(
+                :blocktype<immediate>,
+                QAST::Op.new(
+                    :op<callmethod>,
+                    :name<left>,
+                    QAST::Var.new(:name<b>, :scope<local>, :decl<param>)
+                )
+            )),
+            with_arity(1, QAST::Block.new(
+                :blocktype<immediate>,
+                QAST::Op.new(
+                    :op<callmethod>,
+                    :name<right>,
+                    QAST::Var.new(:name<b>, :scope<local>, :decl<param>)
+                )
+            ))
+         )
+    );
+};
+
+is_qast_args($test('with'), [IsDefined.new(1, 'good', 'bad')], 'good', 'with 
op - defined');
+is_qast_args($test('with'), [IsDefined.new(0, 'good', 'bad')], 'bad', 'with op 
- not defined');
+is_qast_args($test('without'), [IsDefined.new(1, 'bad', 'good')], 'good', 
'without op - defined');
+is_qast_args($test('without'), [IsDefined.new(0, 'bad', 'good')], 'bad', 
'without op - not defined');
+
 if nqp::getcomp('nqp').backend.name eq 'jvm' {
     skip('children of a QAST::Var with a "param" decl are not implemented', 6);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nqp-2021.07/tools/templates/MOAR_REVISION 
new/nqp-2021.08/tools/templates/MOAR_REVISION
--- old/nqp-2021.07/tools/templates/MOAR_REVISION       2021-07-24 
17:07:56.000000000 +0200
+++ new/nqp-2021.08/tools/templates/MOAR_REVISION       2021-08-21 
15:19:53.000000000 +0200
@@ -1 +1 @@
-2021.07
+2021.08

Reply via email to