Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
03:04 ufobat_ joined, p6bannerbot sets mode: +v ufobat_ 03:07 ufobat left, lizmat left 06:16 robertle left
nine .tell patrickb Though I don't remember the thoughts behind RAKUDO_PREFIX, it seems to be a documented interface and I'd guess one used in some packaging or build scripts. I'd rather not break those without good reason. 06:27
yoleaux nine: I'll pass your message to patrickb.
07:33 brrt joined 07:34 p6bannerbot sets mode: +v brrt 07:57 robertle joined, p6bannerbot sets mode: +v robertle 08:16 lizmat joined, p6bannerbot sets mode: +v lizmat
lizmat Files=1265, Tests=88017, 379 wallclock secs (20.26 usr 6.21 sys + 2699.20 cusr 231.20 csys = 2956.87 CPU) 08:18
09:28 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy
|Tux| Rakudo version 2018.12-217-g54fe8a1a8 - MoarVM version 2018.12-29-g1ff55bf1c
csv-ip5xs0.740 - 0.755
csv-ip5xs-206.548 - 6.671
csv-parser22.174 - 22.968
csv-test-xs-200.426 - 0.437
test7.661 - 7.984
test-t1.842 - 1.877
test-t --race0.837 - 0.876
test-t-2031.219 - 31.932
test-t-20 --race9.635 - 9.808
11:16
Geth rakudo: 2ed2f39813 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp
Allow for my %h is Set[Int] = ... to work

More specifically, any "is" trait with a type and a parameterization will now perform the parameterization if the .HOW of the type has a "parameterize" method.
11:37
11:38 MasterDuke left
Geth rakudo: eb50d8cefc | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Update comment
12:04
12:27 brrt` joined, p6bannerbot sets mode: +v brrt` 12:29 brrt left 12:33 brrt`` joined 12:34 p6bannerbot sets mode: +v brrt`` 12:35 brrt` left
dogbert17 lizmat: should we be worried about t/spec/S14-traits/attributes.t ? 12:41
lizmat interesting... I assumed that it was a flapper :-( 12:42
dogbert17 unfurtunately it's fails very consistently 12:43
lizmat yeah, I see that now :-( 12:46
lizmat investigate 12:49
s
dogbert17 perhaps it's an easy fix
lizmat looking at the diff, I don't see how I changed the code path for "is doc('barks')" 12:50
timotimo maybe the debugserver could help by putting a breakpoint in the relevant places and seeing what triggers them 12:51
13:18 brrt`` is now known as brrt
lizmat dogbert17: yeah, fix is easy, although one could argue that the test is iffy 13:19
because "doc" is actually a type in that file, "is doc" without any parameter does not do what you expect 13:20
even if you make the second argument on the trait_mod optional
"is Type" is just handled specifically and especially 13:23
Geth rakudo: 8ad750ab57 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp
Limit is Type[OtherType] parameterization to QuantHashes

Unbreaks S14-traits/attributes.t , dogbert17++ for spotting
13:28
rakudo: 6a8f08b95f | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm6
Show the actual value instead of its type

Improves the error message for "Set[Int}.new = <a b c>" from:
   Type check failed in binding; expected Int but got Str (Str)
to:
   Type check failed in binding; expected Int but got Str ("a")
14:09
releasable6 Next release in ā‰ˆ4 days and ā‰ˆ3 hours. 6 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
lizmat afk for a bit&
jnthn Every time I look the blockers count goes up :P 15:01
15:05 brrt left
nine So why do you keep looking? :P 15:08
jnthn Good question :P 15:10
Well, now I have a bit of time to see if I can help with any of 'em... :) 15:19
15:23 patrickb joined, p6bannerbot sets mode: +v patrickb
patrickb o/ 15:24
yoleaux 06:27Z <nine> patrickb: Though I don't remember the thoughts behind RAKUDO_PREFIX, it seems to be a documented interface and I'd guess one used in some packaging or build scripts. I'd rather not break those without good reason.
jnthn m: for 1..3 { { say $_ ; last } if $_ == 2 }
camelia True
jnthn committable6: 2018.12 for 1..3 { { say $_ ; last } if $_ == 2 }
committable6 jnthn, Ā¦2018.12: Ā«2ā¤Ā»
jnthn Huh, this one is broken even with --optimize=off 15:25
(On HEAD)
patrickb Google just opened registration for summer of code mentoring organisations!
Or is at least bound to do so today... 15:28
I'd very much like perl6 (or tpf or whatever makes most sense) to take part again. 15:30
I'll see what I can do (even if it's only buggering the right people). 15:32
jnthn In github.com/rakudo/rakudo/issues/2601 are we really sure that 541a4f16 is the one to blame... 15:33
committable6: 541a4f16 for 1..3 { { say $_ ; last } if $_ == 2 }
committable6 jnthn, Ā¦541a4f1: Ā«Trueā¤Ā»
jnthn committable6: 541a4f16~1 for 1..3 { { say $_ ; last } if $_ == 2 }
committable6 jnthn, Ā¦541a4f16~1: Ā«2ā¤Ā»
jnthn How on earth can a commit that only touches Optimizer.nqp have an effect if --optimize=off 15:34
committable6: 541a4f16~1 --optimize=off for 1..3 { { say $_ ; last } if $_ == 2 } 15:35
committable6 jnthn, gist.github.com/49ccc7dfdebae3ff92...91ddb61ff3
jnthn AlexDaniel: Is there a way to do ^^ (that is, run a commit with a command line option passed to Rakudo)?
I'm wondering if the optimizer hid a problem introduced in an earlier commit, then got fixed so it didn't hide the bug 15:36
AlexDaniel committable6: 541a4f16~1 run <perl6 --optimize=off -e>, ļ½¢for 1..3 { { say $_ ; last } if $_ == 2 }ļ½£
committable6 AlexDaniel, Ā¦541a4f16~1: Ā«Trueā¤Ā»
AlexDaniel is this good enough?
jnthn Yes, and confirms the hypothesis...now, can I bisset...
bisectable6: run <perl6 --optimize=off -e>, ļ½¢for 1..3 { { say $_ ; last } if $_ == 2 }ļ½£ 15:37
bisectable6 jnthn, Bisecting by output (old=2015.12 new=6a8f08b) because on both starting points the exit code is 0
jnthn, bisect log: gist.github.com/e8f56bde082cb4bddc...ab63f9854e
jnthn, (2018-02-10) github.com/rakudo/rakudo/commit/df...671e512898
jnthn Wow!
AlexDaniel c: dfb6d951d7e^,dfb6d951d7e run <perl6 --optimize=off -e>, ļ½¢for 1..3 { { say $_ ; last } if $_ == 2 }ļ½£ 15:38
committable6 AlexDaniel, Ā¦dfb6d951d7e^: Ā«2ā¤Ā» Ā¦dfb6d95: Ā«Trueā¤Ā»
jnthn committable6: 2018.12 run <perl6 --optimize=off -e>, ļ½¢for 1..3 { { say $_ ; last } if $_ == 2 }ļ½£
committable6 jnthn, Ā¦2018.12: Ā«Trueā¤Ā»
jnthn Gosh.
So what's happening is that `{ say $_ ; last } if $_ == 2` is getting compiled as if it was `if $_ == 2 { say $_ ; last }` 15:39
But it appears it has been for a while, but an optimizer flattening bug covered it up 15:40
committable6: 2018.12 for 1..3 { { say $_ ; last } if $_ == 2 }
committable6 jnthn, Ā¦2018.12: Ā«2ā¤Ā»
jnthn committable6: 2018.12 for 1..3 { { my $x = 42; say $_ ; last } if $_ == 2 }
committable6 jnthn, Ā¦2018.12: Ā«Trueā¤Ā»
jnthn Yup; that declaration of $x was enough to prevent the old flattener from doing its work. 15:41
And probably the commit bissectable just found us was when code-gen changed so as to start respecting .count or something on a QAST::Block 15:42
And the optimizer hid the regression, and nobody wrote something complex enough in the block on the LHS to unveil the bug 15:43
AlexDaniel heh
jnthn So finally, I correct the block flattener to (correctly, given the AST it's looking at) not flatten that inner one because it's a block taking an arg, and...suddenly it appears. Serves me right for fixing things :P
AlexDaniel haha :D 15:44
jnthn So now the interesting question is how to fix it properly. :)
AlexDaniel jnthn: it's a new button, btw 15:45
jnthn Yeah, it's a really nice idea to have it
AlexDaniel it appeared around the same time they introduced ā€œTransfer issueā€ feature
I think
jnthn spectests a fix 15:59
15:59 cfa joined, p6bannerbot sets mode: +v cfa
cfa šŸ‘‹šŸ½ 16:00
jnthn m: use Test; my $res; for 1..3 { { $res = $_; last } if $_ == 2; }; is $res, 2
camelia not ok 1 -
# Failed test at <tmp> line 1
# expected: '2'
# got: 'True'
AlexDaniel relocates to another roomā€¦
jnthn m: use Test; my $res; for 1..3 { { $res = $_; last } unless $_ != 2; }; is $res, 2
camelia not ok 1 -
# Failed test at <tmp> line 1
# expected: '2'
# got: 'False'
AlexDaniel neighbour above is using their rotary hammerā€¦ to drill holes in the floor??
right on top of my headā€¦
jnthn !!
That sounds headache-inducing... 16:01
dogbert17 AlexDaniel: are they spying on you :) 16:02
Geth rakudo: c0f8378827 | (Jonathan Worthington)++ | src/Perl6/Actions.nqp
Fix handling of $_ in blocks to if/unless mods

The program:
   for 1..3 { { say $_; last } if $_ == 2 }
Recently started to output `True` instead of `2`. This bissected to the ... (11 more lines)
16:20
roast: 9cdec2fd9c | (Jonathan Worthington)++ | 2 files
Test $_ behavior in block with if/unless mods

Covers the regression reported in
  github.com/rakudo/rakudo/issues/2601.
16:21
jnthn That's one half of #2601 16:23
cfa jnthn: wow, that sounds a bit gnarly 16:28
nice one
patrickb relocates 16:31
16:31 patrickb left 16:36 lucasb joined, p6bannerbot sets mode: +v lucasb
jnthn m: use Test; { $_ = 42; is (do if 42 { $_ }), 42; } 16:42
camelia not ok 1 -
# Failed test at <tmp> line 1
# expected: '42'
# got: (Rakudo::Internals::LoweredAwayLexical)
16:45 brrt joined, p6bannerbot sets mode: +v brrt
Geth rakudo: 623450d805 | (Jonathan Worthington)++ | src/Perl6/Optimizer.nqp
Remove an unused parameter
16:49
rakudo: 08d87f7061 | (Jonathan Worthington)++ | src/Perl6/Optimizer.nqp
Do not copy $_ upon immediate block inlining

Otherwise, in some circumstances, it can lead to lexical accesses that were meant to read outer $_ reading the lowered stub one. This addresses the second issue that was reported in #2601.
16:51
roast: 7c08f8f29a | (Jonathan Worthington)++ | S04-statements/do.t
Cover `do if 42 { $_ }` evaluating correctly

Covers a bug reported in github.com/rakudo/rakudo/issues/2601.
16:54
16:55 ilmari_ left 17:00 lizmat left 17:03 robertle left 17:04 patrickb joined 17:05 p6bannerbot sets mode: +v patrickb
AlexDaniel jnthn++ 17:05
17:07 patrickz joined, lizmat joined, p6bannerbot sets mode: +v lizmat, p6bannerbot sets mode: +v patrickz 17:10 patrickb left 17:24 dct joined, p6bannerbot sets mode: +v dct 18:07 robertle joined 18:08 p6bannerbot sets mode: +v robertle 18:16 dct left 18:24 brrt left 19:11 dct joined, p6bannerbot sets mode: +v dct 20:05 lucasb left 20:20 lizmat left 20:25 lizmat joined, p6bannerbot sets mode: +v lizmat
Geth rakudo: bdc63f0a8d | (Elizabeth Mattijsen)++ | src/core/Rat.pm6
Revert "Introducing $*FULL-PRECISION"

This reverts commit 9f956aff4a9c0e90c223f18bbaa63603bf859d65.
Jonathan need to mull over this some more, so carry this across the release.
20:27
20:56 lizmat left 21:03 lizmat joined, p6bannerbot sets mode: +v lizmat 21:41 entonian joined 21:42 p6bannerbot sets mode: +v entonian 21:47 entonian left
Geth roast: 73e63d5aba | (Elizabeth Mattijsen)++ | 3 files
Add basic parameterized Set/Bag/Mix tests
21:50
22:05 ufobat_ left, patrickz left
Geth roast: 7df0786dec | (Elizabeth Mattijsen)++ | 3 files
Unskip tests for SetHash/BagHash/MixHash

Also correct some tests as they were originally written at a time when the semantics weren't as clear as they are now.
22:26
rakudo: 87b71c2758 | (Elizabeth Mattijsen)++ | src/core/MixHash.pm6
Oops, forgot to check on types in MixHash.AT-KEY

Found thanks to the power of tests!
22:45
roast: 2df8f54493 | (Elizabeth Mattijsen)++ | 3 files
Add basic parameterized SetHash/BagHash/MixHash tests
22:46
lizmat and that concludes my hacking for today&
22:51 cfa left 22:52 dct left
lizmat just spotted a new error in S32-basics/xxKEY.t, will look at this tomorrow 22:57
afk&