Skip Menu |
Report information
Id: 130532
Status: open
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: bartolin [at] gmx.de
Cc:
AdminCc:

Severity: (no value)
Tag: (no value)
Platform: (no value)
Patch Status: (no value)
VM: (no value)



From: Christian Bartolomaeus <bartolin [...] gmx.de>
Date: Mon, 9 Jan 2017 08:30:40 +0100
To: rakudobug [...] perl.org
Subject: [JVM] Failing tests for itemization of arguments with infix:<Z> after introduction of Rakudo::Internals.OneValueIterator
Download (untitled) / with headers
text/plain 649b
Since the new Rakudo::Internals.OneValueIterator is used in infix:<Z> (Rakudo commit c405f06724) there are four failing tests in S03-metaops/zip.t on rakudo-j. One example of failing code: $ ./perl6-j -e 'say $(1, 2) Z <a b c>' (((1 2) a) ((Mu) b) ((Mu) c)) $ ./perl6-m -e 'say $(1, 2) Z <a b c>' (((1 2) a)) I investigated a bit and it looks like $!value is Mu here on rakudo-j (instead of nqp::null on rakudo-m): https://github.com/rakudo/rakudo/blob/fbbe446c64fbf98f3fc7e64016e5213a3ee1f09f/src/core/Rakudo/Internals.pm#L1002 I didn't find the underlying reason, yet. I'll try to investigate further, but for now, I'm opening this ticket.
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 801b
On Sun, 08 Jan 2017 23:31:11 -0800, bartolin@gmx.de wrote: Show quoted text
> Since the new Rakudo::Internals.OneValueIterator is used in infix:<Z> > (Rakudo commit c405f06724) there are four failing tests in > S03-metaops/zip.t on rakudo-j. > > One example of failing code: > > $ ./perl6-j -e 'say $(1, 2) Z <a b c>' > (((1 2) a) ((Mu) b) ((Mu) c)) > > $ ./perl6-m -e 'say $(1, 2) Z <a b c>' > (((1 2) a)) > > I investigated a bit and it looks like $!value is Mu here on rakudo-j > (instead of nqp::null on rakudo-m): > > https://github.com/rakudo/rakudo/blob/fbbe446c64fbf98f3fc7e64016e5213a3ee1f09f/src/core/Rakudo/Internals.pm#L1002
I managed to golf this a bit: $ ./perl6-j -e 'use nqp; class A { has Mu $!foo; method bar () { $!foo := nqp::null; say nqp::isnull($!foo) ?? "null" !! $!foo } }.new.bar' (Mu)
Download (untitled) / with headers
text/plain 559b
On Tue, 10 Jan 2017 12:46:48 -0800, bartolin@gmx.de wrote: Show quoted text
> I managed to golf this a bit: > > $ ./perl6-j -e 'use nqp; class A { has Mu $!foo; method bar () { $!foo > := nqp::null; say nqp::isnull($!foo) ?? "null" !! $!foo } }.new.bar' > (Mu)
As far as I understand, the problem is deep in nqp-j -- either in bind_attribute_boxed (called here: https://github.com/perl6/nqp/blob/7479ce662d6313c303cd684ebbbd56559cb82da3/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java#L2913 ) or in get_attribute_boxed. The code for those methods is far above my paygrade.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org