Geth | rakudo: 02d2e2cafd | (Zoffix Znet)++ | src/core/Version.pm Make Version.new 82x faster - Measured with git-describe string as input - This opt is mostly done to get rid of regexes, so we could use this method earlier in the setting to initialize some objects. |
02:07 | |||||||||||||||||||||||||||||||||||||
rakudo: ae7d89d245 | (Zoffix Znet)++ | 2 files Remove Version.new-from-git-describe - This should've been a Rakudo::Internal method instead - This is no longer needed, as Version.new was made to work without using regexes |
02:09 | ||||||||||||||||||||||||||||||||||||||
rakudo: 23a8aa87b0 | (Zoffix Znet)++ | src/core/core_epilogue.pm Remove un-needed Version.new's There are no concurrency issues in this code. During a race, the cache may come to be initialized twice, but that's fine. Removing these from this part of the codebase, to reduce the spaghetti factor. |
02:10 | ||||||||||||||||||||||||||||||||||||||
rakudo: 0bf735aaf7 | (Zoffix Znet)++ | tools/build/gen-version.pl Differentiate failed version from git describe If we fail to get version from git describe, append a string to the version from VERSION file, so we'd have a way to differentiate this case from the user using one of our releases. The appended string is choosen to fit into the assumption that our versions are `YYYY.DD.<[.]+xdigit>+`, to be different from release, and to be $release before $broken-git-ver before $first-working-git-ver |
02:14 | ||||||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build passed. Zoffix Znet 'Differentiate failed version from git describe | 03:24 | |||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/337836709 github.com/rakudo/rakudo/compare/2...f735aaf75c | |||||||||||||||||||||||||||||||||||||||
[Tux] |
|
07:42 | |||||||||||||||||||||||||||||||||||||
Geth | roast: b545dabf4b | (Zoffix Znet)++ | S06-operator-overloading/prefix.t Unbust highlights in atom github.com/perl6/atom-language-perl6/issues/81 |
10:38 | |||||||||||||||||||||||||||||||||||||
roast/post-inc-dec-opt: 9bcee77ff7 | (Zoffix Znet)++ | S06-operator-overloading/prefix.t Test post-inc/dec op optimization does not affect custom ops Closes github.com/rakudo/rakudo/issues/1477 Closes github.com/rakudo/rakudo/issues/1315 |
10:52 | ||||||||||||||||||||||||||||||||||||||
rakudo/post-inc-dec-opt: 779693ae3c | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp Fix/add native type post-inc/dec to pre- optimization Fixes github.com/rakudo/rakudo/issues/1315 Part of github.com/rakudo/rakudo/issues/1477 - Do not perform optimization if the op is not a core op - Add optimization for native num types: - rewrite the op call to NQP ops directly |
10:54 | ||||||||||||||||||||||||||||||||||||||
Zoffix | . | 13:27 | |||||||||||||||||||||||||||||||||||||
yoleaux | 13:05Z <jnthn> Zoffix: It's never been spec'd either way so far. I'm curious when the behavior changed, though. Can probably use the bissect bot, but I'm a bit busy with other stuff at the moment. | ||||||||||||||||||||||||||||||||||||||
Zoffix | OK. I'll just leave it alone :) AlexDaniel FYI ^ RE the "supply out of react" thing | 13:28 | |||||||||||||||||||||||||||||||||||||
buggable: toast | |||||||||||||||||||||||||||||||||||||||
buggable | Zoffix, Between 2018.01-121-g0bf735a and 2018.01: 12 (1.23%) modules got burnt; 15 (1.53%) got unsucced; 255 (26.07%) out of 978 modules appear unusable. See toast.perl6.party/ for details. | ||||||||||||||||||||||||||||||||||||||
Zoffix | .tell AlexDaniel mid-month toast run: toast.perl6.party/ 12 burnt; 15 unsucced | ||||||||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to AlexDaniel. | ||||||||||||||||||||||||||||||||||||||
Zoffix | "When invoking 41 '', provided outer frame 0x1134a3d0 (43 '') does not match expected static frame 0x1134a1e0 (42 '')" well, that I never seen before | 13:29 | |||||||||||||||||||||||||||||||||||||
dogbert2_ | m: for ^2 { for ^2 { say "{ (state $a)++ }" } } # RT #129114 | 13:32 | |||||||||||||||||||||||||||||||||||||
camelia | 0 0 0 0 |
||||||||||||||||||||||||||||||||||||||
synopsebot | RT#129114 [new]: rt.perl.org/Ticket/Display.html?id=129114 [BUG] state variable declared inside of a {} interpolation in a string, attaches to wrong scope | ||||||||||||||||||||||||||||||||||||||
jnthn | The state var there is inside of a closure, which is cloned per entry to the outer block. So all 0s is the correct answer there | 13:33 | |||||||||||||||||||||||||||||||||||||
state can't mind-read which scope you were thinking of :) | |||||||||||||||||||||||||||||||||||||||
timotimo | m: for ^2 { for ^2 { say "$( (state $a)++ )" } } | 13:34 | |||||||||||||||||||||||||||||||||||||
camelia | 0 1 0 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | m: for ^2 { for ^2 { say "$((state $a)++)" } } | ||||||||||||||||||||||||||||||||||||||
camelia | 0 1 0 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | heh :) | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: say do loop { state $x = 0; last if ++$x > 2; $x } | ||||||||||||||||||||||||||||||||||||||
camelia | (1 2) | ||||||||||||||||||||||||||||||||||||||
jnthn | That looks correct, though a PR that I think touched that recently had a slightly bothersome description | 13:35 | |||||||||||||||||||||||||||||||||||||
Zoffix | It was R#1467 | ||||||||||||||||||||||||||||||||||||||
jnthn | In that the state var shouldn't need to move in this case, and doing so would probably hide a different problem | ||||||||||||||||||||||||||||||||||||||
synopsebot | R#1467 [closed]: github.com/rakudo/rakudo/pull/1467 Issue 1341: Elevate statevars to enclosing block when wrapped | ||||||||||||||||||||||||||||||||||||||
Zoffix | Oh. it does move them | 13:36 | |||||||||||||||||||||||||||||||||||||
dogbert2_ | so the RT is bogus then? | ||||||||||||||||||||||||||||||||||||||
Zoffix | dogbert2_: yeah | ||||||||||||||||||||||||||||||||||||||
dogbert2_ | so I guess we can reject it without AlexDaniel going crazy :-) | 13:37 | |||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: Yeah, didn't have time to dig any further but the movement of it outside of the block it was declared on feels wrong. I think that'd just be hiding the real problem (and probably making a new one) | 13:38 | |||||||||||||||||||||||||||||||||||||
Zoffix | OK. I opened R#1484 to take a closer look at this later on. | 13:41 | |||||||||||||||||||||||||||||||||||||
synopsebot | R#1484 [open]: github.com/rakudo/rakudo/issues/1484 `say do loop { state...` fix might be hiding the actual problem | ||||||||||||||||||||||||||||||||||||||
Zoffix | uh-oh. I see one toast burnt by my hands | 13:42 | |||||||||||||||||||||||||||||||||||||
m: (@ = <a b c>) .= grep :k | 13:43 | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> You can't adverb .= at <tmp>:1 ------> 3(@ = <a b c>) .= grep :k7⏏5<EOL> expecting any of: pair value |
||||||||||||||||||||||||||||||||||||||
Zoffix | c: 2018.01 (@ = <a b c>) .= grep :k | ||||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2018.01: «Cannot resolve caller grep(Array: :k); none of these signatures match: ($: Bool:D $t, *%_) ($: Mu $t, *%_) in block <unit> at /tmp/mL64MAdg6V line 1 «exit code = 1»» | ||||||||||||||||||||||||||||||||||||||
Zoffix | c: 2018.01 (@ = <a b c>) .= grep "a", :k | ||||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, gist.github.com/e38d29ffed54ef9c70...844cf32a1e | ||||||||||||||||||||||||||||||||||||||
Zoffix | c: 2018.01 (@ = <a b c>) .= grep: "a", :k | ||||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2018.01: «» | ||||||||||||||||||||||||||||||||||||||
Zoffix | c: 2018.01,HEAD (@ = <a b c>) .= grep: "a", :k | 13:44 | |||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2018.01,HEAD(0bf735a): «» | ||||||||||||||||||||||||||||||||||||||
Zoffix | c: 2018.01 class F { method z(|c) { dd c } }; ($ = F) .= z :42foo :70bar | 13:45 | |||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2018.01: «\(:bar(70), :foo(42))» | ||||||||||||||||||||||||||||||||||||||
Zoffix | the fake-infix pairs got broken. | ||||||||||||||||||||||||||||||||||||||
There's a whole bunch of burns due to "When invoking 41 '', provided outer frame 0xab45868 (43 '') does not match expected static frame 0xab45678 (42 '')"... which seems to come from Panda::* module lots of modules use | 13:50 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: thanks | 13:51 | |||||||||||||||||||||||||||||||||||||
yoleaux | 10:33Z <Zoffix> AlexDaniel: just a note. In spec, we use full URL to Rakudo's Issues when labeling tests. So here github.com/perl6/roast/commit/396a...ead86cfb84 it'd be `# github.com/rakudo/rakudo/issues/1477` . Just labeling with "GH#1477" doesn't indicate what implementation it is (or is it roast Issue?) | ||||||||||||||||||||||||||||||||||||||
synopsebot | GH#1477 [open]: github.com/rakudo/rakudo/issues/1477 [optimizer] Postfix → Prefix ++/-- optimization | ||||||||||||||||||||||||||||||||||||||
yoleaux | 10:35Z <Zoffix> AlexDaniel: and just to note: no need to modify that commit. I'll do it when I write more tests for R#1477 | ||||||||||||||||||||||||||||||||||||||
13:28Z <Zoffix> AlexDaniel: mid-month toast run: toast.perl6.party/ 12 burnt; 15 unsucced | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: what about using R#12345 | ||||||||||||||||||||||||||||||||||||||
Zoffix | the GH#1477 is already fixed in a branch | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | R#1477 | 13:52 | |||||||||||||||||||||||||||||||||||||
ok… | |||||||||||||||||||||||||||||||||||||||
:) | |||||||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: that makes it a bit clearer what the issue is from, yeah | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | but the bot does not understand that syntax | ||||||||||||||||||||||||||||||||||||||
GH#1477 | |||||||||||||||||||||||||||||||||||||||
Zoffix | I'm still gonna use full links 'cause it's something I can just copy-paste to visit instead of trying to figure out how to get to it | 13:53 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | ah… it does | ||||||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: it does. It's just mentioned that issue recently so it won't mention it again for (I think) 10 m | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | R#1467 | ||||||||||||||||||||||||||||||||||||||
synopsebot | R#1467 [closed]: github.com/rakudo/rakudo/pull/1467 Issue 1341: Elevate statevars to enclosing block when wrapped | ||||||||||||||||||||||||||||||||||||||
dogbert2_ | m: { berp => "lerp", ( with "herp" { $_ => "derp" } ) } # RT #126945 | ||||||||||||||||||||||||||||||||||||||
camelia | When invoking 1 '', provided outer frame 0x1908990 (3 '<unit>') does not match expected static frame 0x1908a88 (2 '') in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
synopsebot | RT#126945 [new]: rt.perl.org/Ticket/Display.html?id=126945 [BUG] outer frame does not match expected static frame | ||||||||||||||||||||||||||||||||||||||
Zoffix | bisect: { berp => "lerp", ( with "herp" { $_ => "derp" } ) } | ||||||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, Bisecting by output (old=2015.12 new=0bf735a) because on both starting points the exit code is 1 | ||||||||||||||||||||||||||||||||||||||
Zoffix | boo | 13:54 | |||||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, bisect log: gist.github.com/3148839775eee07e16...ce09ca119e | ||||||||||||||||||||||||||||||||||||||
Zoffix, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053 | |||||||||||||||||||||||||||||||||||||||
Zoffix, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」) | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert2_: wait, what's the reason to go crazy this time? :) | 13:55 | |||||||||||||||||||||||||||||||||||||
Zoffix hopes for another tip from jnthn for this bug, akin to "blocks need to be in the same scope" :) | |||||||||||||||||||||||||||||||||||||||
I fixed like a whole ton of bugs now with that tip :)_ | |||||||||||||||||||||||||||||||||||||||
dogbert2_ | I rejected RT #129114 :-) | ||||||||||||||||||||||||||||||||||||||
synopsebot | RT#129114 [rejected]: rt.perl.org/Ticket/Display.html?id=129114 [BUG] state variable declared inside of a {} interpolation in a string, attaches to wrong scope | ||||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: I'd think that error would also be thanks to mis-nesting | ||||||||||||||||||||||||||||||||||||||
Zoffix | \o/ | 13:56 | |||||||||||||||||||||||||||||||||||||
dogbert2_ | could RT #130383 be something similar? | 13:57 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#130383 [new]: rt.perl.org/Ticket/Display.html?id=130383 [BUG] perl6 -n does not set $_ when it's interpolated via a block | ||||||||||||||||||||||||||||||||||||||
Zoffix | dogbert2_: but isn't the ticket showing "0 1 2 3" as the output, while the current and correct output is "0 0 0 0"? So looks like there was a bug that is now fixed and needs to be covered. The OP just didn't describe the correct behaviour correctly | ||||||||||||||||||||||||||||||||||||||
mc: for ^2 { for ^2 { say "{ (state $a)++ }" } } | |||||||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2015.12: «0123» | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: for ^2 { for ^2 { say "{ (state $a)++ }" } } | ||||||||||||||||||||||||||||||||||||||
camelia | 0 0 0 0 |
||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert2_: yes, would've been easier if the current behavior was shown | ||||||||||||||||||||||||||||||||||||||
but 0 0 0 0 looks correct to me too | |||||||||||||||||||||||||||||||||||||||
dogbert2_ | things always goes wrong when I reject stuff :( | 13:58 | |||||||||||||||||||||||||||||||||||||
jnthn | Yes, there was a missing clone before. That caused some horrible threading bugs, where you got the wrong thread's data interpolated. /o\ | ||||||||||||||||||||||||||||||||||||||
dogbert2_ was looking for RT's which would convert Zoffix Monster Kill to an Ultra Kill :-) | 14:00 | ||||||||||||||||||||||||||||||||||||||
Zoffix | dogbert2_: RT#1481 would be it | 14:01 | |||||||||||||||||||||||||||||||||||||
dogbert2_: R#1481 would be it | 14:02 | ||||||||||||||||||||||||||||||||||||||
synopsebot | R#1481 [open]: github.com/rakudo/rakudo/issues/1481 `where` with regex miscopes QAST::Blocks inside the regex | ||||||||||||||||||||||||||||||||||||||
dogbert2_ | AlexDaniel: thx, I can add a test later | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert2_: also, it is pretty much “resolved” and not “rejected” in a sense that the wrong behavior is now gone and is replaced with the right one (not what was asked, but that's ok) :) | 14:03 | |||||||||||||||||||||||||||||||||||||
this difference does not exist on github and I'm very grateful for it :) | 14:05 | ||||||||||||||||||||||||||||||||||||||
Zoffix: any news on github.com/rakudo/rakudo/issues/1481 ? It prevents me from rolling out a bot xD | 14:06 | ||||||||||||||||||||||||||||||||||||||
Zoffix | R#1481 | ||||||||||||||||||||||||||||||||||||||
Ah. | 14:07 | ||||||||||||||||||||||||||||||||||||||
I'll fix it in 0-72hrs | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | thank you very much! | 14:08 | |||||||||||||||||||||||||||||||||||||
Zoffix | What would be the excted result of `{ berp => "lerp", ( with "herp" { $_ => "derp" } ) }` ? | ||||||||||||||||||||||||||||||||||||||
m: dd %( berp => "lerp", ( with "herp" { $_ => "derp" } ) ) | |||||||||||||||||||||||||||||||||||||||
camelia | Hash % = {:berp("lerp"), :herp("derp")} | ||||||||||||||||||||||||||||||||||||||
Zoffix | This? | ||||||||||||||||||||||||||||||||||||||
Or a block | |||||||||||||||||||||||||||||||||||||||
IIRC speculations say "if starts with Pair -> tis a block" | 14:09 | ||||||||||||||||||||||||||||||||||||||
s/block/hash/; | |||||||||||||||||||||||||||||||||||||||
m: use QAST:from<NQP>; BEGIN $*W.compile_time_evaluate: $, QAST::Op.new: :op<call>, :name<&say>, QAST::Op.new: :op<with>, QAST::IVal.new(:value(1)), QAST::Block.new(QAST::Stmts.new, QAST::Stmts.new: QAST::Op.new: :op<say>, QAST::SVal.new: :value<meow>).annotate_self: 'blocktype', 'immediate' | 14:11 | ||||||||||||||||||||||||||||||||||||||
camelia | <anon> | ||||||||||||||||||||||||||||||||||||||
Zoffix | I don't get how `%( berp => "lerp", ( with "herp" { $_ => "derp" } ) )` ends up with a Pair instead of a Block for the `with` part | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: looks like a block to me | 14:12 | |||||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: why a block? | 14:13 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | well, rakudo always disagrees with me on this one… | ||||||||||||||||||||||||||||||||||||||
Zoffix | The OP clearly wanted a hash | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | should've used %() then :S | 14:14 | |||||||||||||||||||||||||||||||||||||
Zoffix | From design.perl6.org/S03.html `Inside must be either empty, or a single list starting with a pair or a hash, otherwise you must use hash() or %() instead.` | ||||||||||||||||||||||||||||||||||||||
That looks like a single list starting with pair to me. So I guess that should be a hash | |||||||||||||||||||||||||||||||||||||||
m: $_ = "foo"; dd {:$_} | |||||||||||||||||||||||||||||||||||||||
camelia | -> ;; $_? is raw { #`(Block|62590184) ... } | ||||||||||||||||||||||||||||||||||||||
Zoffix | But that doesn't follow that rule | 14:15 | |||||||||||||||||||||||||||||||||||||
m: $_ = "foo"; dd {:foo, (if 1 { :bar })} | 14:16 | ||||||||||||||||||||||||||||||||||||||
camelia | ===SORRY!=== Cannot reference undeclared local 'pres_topic__1' |
||||||||||||||||||||||||||||||||||||||
Zoffix | eheheh | ||||||||||||||||||||||||||||||||||||||
Looks to be in the same family as the `with` thing | 14:18 | ||||||||||||||||||||||||||||||||||||||
m: $_ = "foo"; dd {:foo, (if 1 -> $x { :bar })} | |||||||||||||||||||||||||||||||||||||||
camelia | When invoking 1 '', provided outer frame 0x32e3940 (3 '<unit>') does not match expected static frame 0x32e3a38 (2 '') in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
AlexDaniel | also, what's the meaning of “or a hash” in that definiton? | ||||||||||||||||||||||||||||||||||||||
m: dd { %(42 => 5) } | 14:19 | ||||||||||||||||||||||||||||||||||||||
camelia | -> ;; $_? is raw { #`(Block|54536944) ... } | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | m: dd { {42 => 5} } | ||||||||||||||||||||||||||||||||||||||
camelia | -> ;; $_? is raw { #`(Block|54337856) ... } | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | m: dd { {42 => 5}, abc => 42 } | ||||||||||||||||||||||||||||||||||||||
camelia | -> ;; $_? is raw { #`(Block|72498144) ... } | ||||||||||||||||||||||||||||||||||||||
Zoffix | Yeah, I guess a precise definition of when {...} means Hash needs to be defined (and documented) | 14:20 | |||||||||||||||||||||||||||||||||||||
"Note that this construct does not re-parse the contents; rather, the contents are always parsed as a statement list (i.e. like a block), and if the later analysis shows that it needs to be interpreted as a hash, the block is executed and coerced to Hash." | |||||||||||||||||||||||||||||||||||||||
That seems to be awfully implementation-specific prose | 14:21 | ||||||||||||||||||||||||||||||||||||||
From docs.perl6.org/routine/%7B%20%7D | |||||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: I believe the synopses had a pretty detailed one | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | github.com/perl6/doc/issues/1758 | 14:22 | |||||||||||||||||||||||||||||||||||||
Zoffix | jnthn: so far we one one mention that doesn't say anything about $_, but does say that hash inside means hash, which isn't the current behaviour | ||||||||||||||||||||||||||||||||||||||
jnthn | Uff | 14:23 | |||||||||||||||||||||||||||||||||||||
Zoffix | S03: "Inside must be either empty, or a single list starting with a pair or a hash, otherwise you must use hash() or %() instead." | ||||||||||||||||||||||||||||||||||||||
jnthn | There's a spectest file dedicated to this, though | ||||||||||||||||||||||||||||||||||||||
Zoffix | cool, I'll look for it | ||||||||||||||||||||||||||||||||||||||
jnthn | block_vs_hash or some similar name | ||||||||||||||||||||||||||||||||||||||
Zoffix | ./S06-other/anon-hashes-vs-blocks.t | ||||||||||||||||||||||||||||||||||||||
Zoffix looks at S06 | 14:24 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | m: my %h = :42a, :50b; dd { %h } | 14:25 | |||||||||||||||||||||||||||||||||||||
camelia | Hash % = {:a(42), :b(50)} | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | m: my %h = :42a, :50b; dd { %h, 5 => 6 } | ||||||||||||||||||||||||||||||||||||||
camelia | Hash % = {"5" => 6, :a(42), :b(50)} | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | that's what it means by “hash” I think? | ||||||||||||||||||||||||||||||||||||||
Zoffix | Ah | 14:26 | |||||||||||||||||||||||||||||||||||||
m: dd pair(1, 2) | 14:27 | ||||||||||||||||||||||||||||||||||||||
camelia | 1 => 2 | ||||||||||||||||||||||||||||||||||||||
Zoffix | TIL we have &pair | ||||||||||||||||||||||||||||||||||||||
jnthn | Funny thing about the prose: that is *not* how it's presently implemented, so far as I recall. But if we *did* implement it like that, it'd probably be better. :) | ||||||||||||||||||||||||||||||||||||||
The one pass parse part is correct. But iirc, we rewrite the AST to call circumfix:<{ }> with the stuff in the block. | |||||||||||||||||||||||||||||||||||||||
Zoffix | But the one pass parse part is implementation-specific, isn't it? | 14:28 | |||||||||||||||||||||||||||||||||||||
jnthn | No | ||||||||||||||||||||||||||||||||||||||
Zoffix | :o | ||||||||||||||||||||||||||||||||||||||
jnthn | Pretty sure it's laid down that Perl 6 is parsed in a single pass | ||||||||||||||||||||||||||||||||||||||
Zoffix | TIL | ||||||||||||||||||||||||||||||||||||||
jnthn | Otherwise, you can't execute BEGIN blocks safely :) | 14:29 | |||||||||||||||||||||||||||||||||||||
It's another question entirely whether this prose in the docs helps the language user, however :) | 14:30 | ||||||||||||||||||||||||||||||||||||||
Zoffix | Neither the S06 speculation nor S06-other/anon* seem to define whether `{:foo, (if 1 -> $x { :bar })}` is a hash or a block. There's mention in the spec that $_ or $^foo force a block, which `{:foo, (if 1 -> $x { :bar })}` ain't got, so I'm thinking it should be a hash | 14:35 | |||||||||||||||||||||||||||||||||||||
jnthn | I think hash also. And I think if we implemented it by leaving it as a block and passing the result to circumfix:<{ }> instead of trying to be clever, then we'd probably not have that bug | 14:36 | |||||||||||||||||||||||||||||||||||||
At a slight performance cost, maybe. | 14:37 | ||||||||||||||||||||||||||||||||||||||
But we can inline any small blocks, and for big ones the overhead will probably be noise | |||||||||||||||||||||||||||||||||||||||
Zoffix doesn't get what "passing the result to circumfix:<{ }> instead" mean | 14:39 | ||||||||||||||||||||||||||||||||||||||
Like, it can't take a Block | |||||||||||||||||||||||||||||||||||||||
m: circumfix:<{ }>({; say 42}) | |||||||||||||||||||||||||||||||||||||||
camelia | Odd number of elements found where hash initializer expected: Only saw: -> ;; $_? is raw { #`(Block|69353528) ... } in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | Call the block, pass what the block returns to circumfix:<{ }> | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: circumfix:<{ }>({; say 42}()) | 14:40 | |||||||||||||||||||||||||||||||||||||
camelia | 42 Odd number of elements found where hash initializer expected: Only saw: Bool::True in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | m: dd circumfix:<{ }>(-> { a => 1, b => 2 }()) | ||||||||||||||||||||||||||||||||||||||
camelia | Hash % = {:a(1), :b(2)} | ||||||||||||||||||||||||||||||||||||||
jnthn | At the moment we try to turn it into not-a-QAST::Block | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: $_ = 42; dd circumfix:<{ }>(-> { a => 1, :$_ }()) | 14:41 | |||||||||||||||||||||||||||||||||||||
camelia | Hash % = {:_(42), :a(1)} | ||||||||||||||||||||||||||||||||||||||
Zoffix | But then this would break the current behavour about params (though the speculations don't seem to say anything about them) | ||||||||||||||||||||||||||||||||||||||
I still don't get it, so I'll leave it alone for now :) | 14:43 | ||||||||||||||||||||||||||||||||||||||
The "When invoking 1 '', provided outer frame 0x202bba8 (3 '') do" burns are mine too | 14:49 | ||||||||||||||||||||||||||||||||||||||
m: (*.match(/./).self)(42) | |||||||||||||||||||||||||||||||||||||||
camelia | When invoking 1 '', provided outer frame 0x1f86ba8 (3 '') does not match expected static frame 0x1f869b8 (2 '') in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
Zoffix | So I guess that's most of them :) | ||||||||||||||||||||||||||||||||||||||
ZofBot: burning toast is my second job, bruh | |||||||||||||||||||||||||||||||||||||||
ZofBot | Zoffix, On the way I got hold of Charlie | ||||||||||||||||||||||||||||||||||||||
Zoffix | Ohhh... *instead* of trying to turn into not-a-QAST::Block, call circumfix:<{ }>. K, got it. | 14:51 | |||||||||||||||||||||||||||||||||||||
jnthn | Zoffix: Yes, call block, pass result to circumfix:<{ }> | 14:53 | |||||||||||||||||||||||||||||||||||||
Should be less/simpler code than we have now | 14:54 | ||||||||||||||||||||||||||||||||||||||
Zoffix | Cool | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 052a0bbef5 | (Zoffix Znet)++ | t/05-messages/moar/01-errors.t Make segv test more robust When using system as root, current version actually fails to produce any errors. Fix by making the test attempt to use a directory as a file instead |
17:50 | |||||||||||||||||||||||||||||||||||||
japhb | Is there a DWIM method of finding modules in the ecosystem? Case-insensitive, word-stemming or substring, etc.? | 18:15 | |||||||||||||||||||||||||||||||||||||
japhb is tiring of guessing how module writers uppercase, pluralize, and decline | 18:17 | ||||||||||||||||||||||||||||||||||||||
stmuk_ | japhb: panda? :) | 18:19 | |||||||||||||||||||||||||||||||||||||
[Coke] | modules.perl6.org ? | 18:20 | |||||||||||||||||||||||||||||||||||||
tadzik | ha :) | ||||||||||||||||||||||||||||||||||||||
doesn't zef search do it nicely though? | |||||||||||||||||||||||||||||||||||||||
stmuk_ | AFAIK zef search only does exact searches | ||||||||||||||||||||||||||||||||||||||
[Coke] wonders why 'zef search uni' shows 1 result, DateTime::TimeZone | 18:22 | ||||||||||||||||||||||||||||||||||||||
japhb | zef has some odd ideas about searching. The only thing that really seems reliable to me is exact match of at least one chunk of a module name. | 18:40 | |||||||||||||||||||||||||||||||||||||
stmuk | I'd favour case insensitive sub-string (as panda did). I think I have mentioned it before | 18:41 | |||||||||||||||||||||||||||||||||||||
japhb | stmuk: That seems to be what modules.perl6.org does (and it also appears to be WAY faster than zef) | 18:42 | |||||||||||||||||||||||||||||||||||||
Nice site actually, thanks for the reminder [Coke] | 18:43 | ||||||||||||||||||||||||||||||||||||||
Is this a Zoffix creation? | 18:44 | ||||||||||||||||||||||||||||||||||||||
Seems like something Zoffix might do .... | |||||||||||||||||||||||||||||||||||||||
[Coke] | he's at least done most of it. | 19:02 | |||||||||||||||||||||||||||||||||||||
dogbert17 | c: 2017.01 my @arr = (); for ^2 { for ^2 { @arr.push( "{ (state $a)++ }") } }; say @arr; | 19:50 | |||||||||||||||||||||||||||||||||||||
committable6 | dogbert17, ¦2017.01: «[0 1 2 3]» | ||||||||||||||||||||||||||||||||||||||
Geth | roast: dogbert17++ created pull request #385: Add test for RT #129114 |
19:52 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#129114 [open]: rt.perl.org/Ticket/Display.html?id=129114 [BUG] state variable declared inside of a {} interpolation in a string, attaches to wrong scope | ||||||||||||||||||||||||||||||||||||||
Geth | roast: f5f14b4c4d | (Jan-Olof Hendig)++ | S04-declarations/state.t Add test for RT #129114 |
20:06 | |||||||||||||||||||||||||||||||||||||
roast: 0552e64c1f | (Zoffix Znet)++ (committed using GitHub Web editor) | S04-declarations/state.t Merge pull request #385 from dogbert17/test-rt-129114 Add test for RT #129114 |
|||||||||||||||||||||||||||||||||||||||
synopsebot | RT#129114 [open]: rt.perl.org/Ticket/Display.html?id=129114 [BUG] state variable declared inside of a {} interpolation in a string, attaches to wrong scope | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert17++ | 20:10 | |||||||||||||||||||||||||||||||||||||
dogbert17 | bisect: my Int @a; @a[5] = 42; $_ = 666 for @a | 22:07 | |||||||||||||||||||||||||||||||||||||
bisectable6 | dogbert17, Bisecting by exit code (old=2015.12 new=052a0bb). Old exit code: 1 | 22:08 | |||||||||||||||||||||||||||||||||||||
dogbert17, bisect log: gist.github.com/3bb66eaa0c2116d723...a630f0bbe0 | |||||||||||||||||||||||||||||||||||||||
dogbert17, (2016-06-01) github.com/rakudo/rakudo/commit/06...cb82579346 | |||||||||||||||||||||||||||||||||||||||
dogbert17 | bisect: my Str @a[3;3] = <a b c>, <d e f>, <g h i>; say @a | 22:16 | |||||||||||||||||||||||||||||||||||||
bisectable6 | dogbert17, On both starting points (old=2015.12 new=052a0bb) the exit code is 0 and the output is identical as well | ||||||||||||||||||||||||||||||||||||||
dogbert17, Output on both points: «[[a b c] [d e f] [g h i]]» | |||||||||||||||||||||||||||||||||||||||
dogbert17 grumble | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: 069b789a^,069b789a my Int @a; @a[5] = 42; $_ = 666 for @a | 22:21 | |||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦069b789a^: «Cannot assign to an immutable value in block <unit> at /tmp/n1SLOybKkH line 1 «exit code = 1»» ¦069b789: «» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: 069b789a^,069b789a my Int @a; @a[5] = 42; $_ = 666 for @a; say @a | ||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦069b789a^: «Cannot assign to an immutable value in block <unit> at /tmp/oR4KKlPlxe line 1 «exit code = 1»» ¦069b789: «[666 666 666 666 666 666]» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert17: what's your grumble about? :) | 22:22 | |||||||||||||||||||||||||||||||||||||
current behavior seems to be right? | |||||||||||||||||||||||||||||||||||||||
and the bot output is correct? | |||||||||||||||||||||||||||||||||||||||
dogbert17 | AlexDaniel: which commit fixed this? RT #126703 | ||||||||||||||||||||||||||||||||||||||
synopsebot | RT#126703 [new]: rt.perl.org/Ticket/Display.html?id=126703 Typed Shaped Arrays can't be initialized | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: 069b789a^,069b789a,HEAD my Int @a; @a[5] = 42; $_ = 666 for @a; say @a | 22:23 | |||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦069b789a^: «Cannot assign to an immutable value in block <unit> at /tmp/a_dieWbIFx line 1 «exit code = 1»» ¦069b789,HEAD(052a0bb): «[666 666 666 666 666 666]» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | 6c: my Str @a[3;3] = <a b c>, <d e f>, <g h i>; say @a | ||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦6c (27 commits): «[[a b c] [d e f] [g h i]]» | ||||||||||||||||||||||||||||||||||||||
dogbert17 | 069b789 then | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: all my Str @a[3;3] = <a b c>, <d e f>, <g h i>; say @a | 22:24 | |||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, gist.github.com/42a4bc2f7befa53043...be53cc6e30 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | bisect: old=2015.11 my Str @a[3;3] = <a b c>, <d e f>, <g h i>; say @a | ||||||||||||||||||||||||||||||||||||||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2015.11 new=052a0bb). Old exit code: 1 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, bisect log: gist.github.com/9d712dd830c09f4777...9c2696ed35 | 22:25 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, (2015-11-26) github.com/rakudo/rakudo/commit/13...4a50579a1c | |||||||||||||||||||||||||||||||||||||||
dogbert17 | I'm just updating a few old RT's | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: 131367c7daa89d^,131367c7daa89d my Str @a[3;3] = <a b c>, <d e f>, <g h i>; say @a | ||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦131367c7daa89d^: «Type check failed in assignment to ; expected Str but got List in block <unit> at /tmp/t6D1g7_ZSy:1 «exit code = 1»» ¦131367c: «[[a b c] [d e f] [g h i]]» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | dogbert17: 131367c7daa89d ? | ||||||||||||||||||||||||||||||||||||||
dogbert17++ | 22:26 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | AlexDaniel: seems to be the one, thx :-) | ||||||||||||||||||||||||||||||||||||||
for some reason I'm unable to tag the issues as tests needed, ah well | 22:28 | ||||||||||||||||||||||||||||||||||||||
RT #126394 should also have the tests needed tag | |||||||||||||||||||||||||||||||||||||||
synopsebot | RT#126394 [open]: rt.perl.org/Ticket/Display.html?id=126394 [BUG] Assigning Failure to typed variable swallows Failure information | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | marked | 22:35 | |||||||||||||||||||||||||||||||||||||
dogbert17 | thx | 22:49 | |||||||||||||||||||||||||||||||||||||
Geth | rakudo/post-inc-dec-opt: 407fe24229 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp Fix wrong primspec test; MasterDuke++ |
23:10 | |||||||||||||||||||||||||||||||||||||
rakudo/post-inc-dec-opt: 4a5cc2c200 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp Fix/add native type post-inc/dec to pre- optimization Fixes github.com/rakudo/rakudo/issues/1315 Part of github.com/rakudo/rakudo/issues/1477 - Do not perform optimization if the op is not a core op - Add optimization for native num types: - rewrite the op call to NQP ops directly |
23:29 |