# New Ticket Created by  Elizabeth Mattijsen 
# Please include the string:  [perl #122783]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=122783 >


10:43:13] <dwarring>     I've bisected parrot failures affecting 
advent2010-07.t and other advent tests...
[10:43:55] <dwarring>    (test suite had been out of action on parrot for about 
a week)
[10:44:43] <FROGGS>     dwarring: and?
[10:44:52] <dwarring>    looks like this test started hanging around rakudo 
commit 3e96fe51a29fd3758fe774b5e3e95aae9e7196dd
[10:44:55] <FROGGS>     dwarring: I am about checking panda on parrot again
[10:45:31] <FROGGS>     dwarring: yes, that seems also to be the panda problem
[10:45:51] <lizmat>     dwarring: going to check that now
[10:45:58] <lizmat>      (as that commit was my doing)
[10:46:25] <dwarring>    there's also a second regression at 
df2f8b4954477f02f2481f981a7d7c564a959544
[10:47:01] <dwarring>    hoping this gist explains things a bit more - 
https://gist.github.com/dwarring/12c1e32440a8aea43337
[10:47:12] <dwarring>    (see comments)
[10:48:21] <lizmat>     dwarring: I'm on it
[11:26:38] <lizmat>      looks like parrot has a problem with basic math
[11:26:46] <lizmat>      1 + 1 + 0 = 0
[11:32:41] <lizmat>      more specifically: $moving = $chars + 1 + 
nqp::eqat($ns, $CRLF, $nextpos);
[11:33:09] <lizmat>      seems to come out as 0 always on parrot
[11:36:08] <FROGGS>      lizmat: what is the test case you're using?
[11:36:27] <lizmat>      say "a\r\nb\nc\n".lines.elems
[11:36:33] <FROGGS>      k
[11:37:10] <lizmat>      that hangs on parrot atm
[11:37:40] <lizmat>      if I put the result of nqp::eqat in a temp variable, 
it works ok
[11:38:42] <lizmat>      something like my int $extra = nqp::eqat; $moving = 
$chars + 1 + extra;
[11:39:32] <lizmat>      some code gen, maybe optimization issue ?
[11:40:16] <FROGGS>      I would say that a code-gen bug on parrot is very 
unlikely
[11:40:45] <FROGGS>      and we cannot change the optimization level for 
perl6-p because some stuff relies on optimization and will break without
[11:46:57] <FROGGS>      p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), 
nqp::unbox_s("\r\n"), 3)
[11:46:59] <+camelia>    rakudo-parrot 351c12: OUTPUT«1␤»
[11:47:03] <FROGGS>      p: say 0 + nqp::eqat(nqp::unbox_s("foo\r\nbar"), 
nqp::unbox_s("\r\n"), 3)
[11:47:04] <+camelia>    rakudo-parrot 351c12: OUTPUT«1␤»
[11:47:17] <FROGGS>      p: say 0 + 1 + nqp::eqat(nqp::unbox_s("foo\r\nbar"), 
nqp::unbox_s("\r\n"), 4)
[11:47:18] <+camelia>    rakudo-parrot 351c12: OUTPUT«1␤»
[11:47:39] <FROGGS>      why does that work here?
[11:48:11] <lizmat>      because you're not using variables?
[11:48:36] <pmurias>     lizmat: reducing the bug to an nqp level test that we 
could put into the nqp test suit would be great
[11:48:45] <FROGGS>      then it might be really a code-gen bug
[11:49:05] <FROGGS>      it could be that eqat uses a hard coded register
[11:49:10] <FROGGS>      lemme look
[11:49:13] <lizmat>      but one that exists on parrot only
[11:49:22] <lizmat>      jvm is also clean, I just checked
[11:49:25] <FROGGS>      lizmat: code-gen is backend specific
[11:52:45] <pmurias>     all the code-gen in jvm, moar, parrot is a very 
similiar manner
[11:59:36] <FROGGS>      p: my str $CRLF = nqp::unbox_s("\r\n"); my int $chars; 
say $chars + 1 + nqp::eqat(nqp::unbox_s("a\r\nb"), $CRLF, 0) # here is the bug
[11:59:37] <+camelia>    rakudo-parrot 351c12: OUTPUT«0␤»
[12:01:08] <FROGGS>      it vanishes when I make $chars an Int, and also when I 
replace nqp::eqat by a literal 0
[12:02:45]      anaeem1 (~anaeem1@119.154.219.52) joined the channel.
[12:05:12] <lizmat>      shall I rakudobug it ?
[12:05:42] <FROGGS>      yes...

Reply via email to