Zoffix | m: my $recipe = Mix.new(butter => 0.22, sugar => 0.1, flour => 0.275, sugar => 0.02); dd $recipe | 00:21 | |
camelia | rakudo-moar e411e5: OUTPUT«Mix $recipe = ().Mix» | ||
Zoffix | m: my $recipe = mix(butter => 0.22, sugar => 0.1, flour => 0.275, sugar => 0.02); dd $recipe | ||
camelia | rakudo-moar e411e5: OUTPUT«Unexpected named parameter 'butter' passed in block <unit> at <tmp> line 1» | ||
Zoffix | This looks at best LTA. | ||
The docs are particularly confusing: | 00:22 | ||
m: my $n = mix "a", "a", "b" => 0, "c" => 3.14;; dd $n | |||
camelia | rakudo-moar e411e5: OUTPUT«Mix $n = ("a"=>2,:c(3.14)=>1,:b(0)=>1).Mix» | ||
Zoffix | Normally, I'd want to use weights, not store Pair objects | ||
I wonder if someone just documented the behaviour instead of realizing it's a bug. | 00:24 | ||
timotimo | m: my $recipe = (butter => 0.22, sugar => 0.1, flour => 0.275, sugar => 0.02).Mix; dd $recipe | 00:30 | |
camelia | rakudo-moar e411e5: OUTPUT«Mix $recipe = ("flour"=>0.275,"butter"=>0.22,"sugar"=>0.12).Mix» | ||
Zoffix | timotimo, but is .new and mix() supposed to have such behaviour, which IMO is broken. | ||
m: dd ($(<a b c>) => 2.5).Mix | 00:31 | ||
camelia | rakudo-moar e411e5: OUTPUT«(("a", "b", "c")=>2.5).Mix» | ||
timotimo | i think mix is supposed to behave like set does | ||
Zoffix | m: say ($(<a b c>) => 2.5).Mix | ||
camelia | rakudo-moar e411e5: OUTPUT«mix((a b c)(2.5))» | ||
timotimo | m: say mix(<a b a a b a b b c c d d d d d d e e>) | 00:32 | |
camelia | rakudo-moar e411e5: OUTPUT«mix(a(4), c(2), b(4), e(2), d(6))» | ||
timotimo | m: say set(<a b a a b a b b c c d d d d d d e e>) | ||
camelia | rakudo-moar e411e5: OUTPUT«set(a, c, b, e, d)» | ||
Zoffix | Considering a Mix has Real weights, the behavious of mix is nearly useless. | ||
But you have have Pair objects as keys! 👏 | 00:33 | ||
timotimo | true, there's an infinite amount of values you cannot get with mix | 00:34 | |
so ... use Mix for those? | |||
dalek | ast: 1efb4d5 | (Zoffix Znet)++ | S02-types/set.t: Set.hash does not cause keys to be stringified RT#127402 |
01:30 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127402 | ||
jdv79 | i think i have a supply block blocking | 01:31 | |
had a few week old rakudo. building new now. | |||
is that a known thing? | |||
gfldex | jdv79: one blocking bug was fixed the other week (there may be more) | 01:32 | |
geekosaur | several things of that sort were recently found and fixed | ||
jdv79 | ok | ||
dalek | ast: 513a946 | (Zoffix Znet)++ | S02-types/set.t: Avoid spurious redeclaration warning |
01:33 | |
ast: b3dfe18 | (Zoffix Znet)++ | S02-types/sethash.t: SetHash.hash does not cause keys to be stringified |
01:35 | ||
jdv79 | hmm. no joy. i seem to be hard up on a futex. | 01:41 | |
dalek | ast: f434b81 | (Zoffix Znet)++ | S02-types/ (4 files): [TODO FUDGE] .hash does not stringify keys on [Bag|Mix][Hash]? RT#127402 |
01:46 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127402 | ||
jdv79 | supply {} seems fickle | 01:48 | |
Zoffix | If you're calling done() on the first time the block enters,. it's a known blocking bug | 01:51 | |
jdv79 | nope. just assigning the supply to a var and returning that and then whenever'ing on it | 01:57 | |
returning the supply directly to the whenever seems to work | |||
Zoffix | Passing TODOs in substest() do not get announced as passing todos :( | 02:11 | |
dalek | kudo/nom: f1313db | (Zoffix Znet)++ | src/core/Baggy.pm: .hash on [Bag|Mix][Hash]? types must not stringify keys Fixes RT#128806 |
02:18 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128806 | ||
Zoffix | Well, that was much easier than I thought it'd be. | 02:19 | |
dalek | ast: 874986f | (Zoffix Znet)++ | S02-types/ (4 files): Unfudge now passing tests |
||
ShimmerFairy | I do wish the :rotate adverb existed on the shift operators. Or that I could do this: | 02:41 | |
m: multi sub infix:«+<»($a, $b, :$rotate!) { "ALIVE" }; say 1 +< 3; say 1 +< 3 :rotate; | 02:42 | ||
camelia | rakudo-moar f1313d: OUTPUT«8Unexpected named parameter 'rotate' passed in block <unit> at <tmp> line 1» | ||
ShimmerFairy thinks the :rotate adverb would need to take an argument though, at least for bigints, e.g. :rotate(32) | |||
gfldex | i believe to remember that bitwise shift was left simple to allow direct mappings to machine code | 02:43 | |
ShimmerFairy | gfldex: still could, with the method I tried above (a multi with an explicit :rotate adverb) | 02:44 | |
m: multi sub infix:«+<<»($a, $b, UInt :$rotate!) { ($a +< $b % 2**$rotate) +| ($a +> ($rotate - $b)) }; say (0xFE +<< 1 :rotate(8)).base(16) # an example of what I'm thinking | 02:48 | ||
camelia | rakudo-moar f1313d: OUTPUT«FD» | ||
travis-ci | Rakudo build errored. Zoffix Znet '.hash on [Bag|Mix][Hash]? types must not stringify keys | 03:13 | |
travis-ci.org/rakudo/rakudo/builds/149070512 github.com/rakudo/rakudo/compare/e...313dbc93dd | |||
buggable | travis-ci, one build failed but NOT due to the timeout. | ||
Zoffix | Interesting. My bot spotted an inconsistency in travis jobs reports. My original working code had 'no output' and now it changed to 'No output' | 03:15 | |
travis-ci.org/rakudo/rakudo/builds/149070512 | 03:22 | ||
buggable | Zoffix, one build failed but NOT due to the timeout. | ||
Zoffix | travis-ci.org/rakudo/rakudo/builds/149070512 | 03:23 | |
buggable | Zoffix, one build failed due to the timeout. No other failures. | ||
Zoffix | m: use Test; my @results; lives-ok { class R { method foo { @results.push: 'meow'}} R.new.foo }; dd @results | 03:26 | |
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Cannot reverse the args of . because dotty infix operators are too fiddlyat <tmp>:1------> method foo { @results.push: 'meow'}} R.⏏new.foo }; dd @results» | ||
dalek | ast: bc156fa | (Zoffix Znet)++ | S12-subset/subtypes.t: Remove trailing whitespace |
03:27 | |
ast: b00a4f4 | (Zoffix Znet)++ | S12-subset/subtypes.t: :D on subset corretly works in multi dispatch RT#127367 |
03:28 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127367 | ||
ShimmerFairy | I've run into an absolutely weird bug where apparently some of my role-required methods aren't accepted as fulfilling that requirement if they have a hyphen in the name O.o . And I can't figure out the root issue. (And it's not a precomp issue.) | 04:08 | |
TimToady | yeah, that's weird | 04:14 | |
geekosaur | we had a few cases earlier where something was working by name instead of with the actual Role, didn't we? | 04:15 | |
(which broke when the name handling turned out to be Wrong) | |||
TimToady | I wonder if it could actually be a rope failure | 04:17 | |
since hyphenated names have to be glued together at some point | 04:18 | ||
trying with underscores might be informative | 04:19 | ||
ShimmerFairy | TimToady: I thought so at first, but after going through the three dashed methods that cause an error, it just errors on one of those three methods again. So I don't think it's the hyphen that does it, fixing it in one just "delays" its error. | 04:20 | |
trying foo'bar or foobar doesn't work either. I'm updating my rakudo right now just to make sure it applies in the latest version. | 04:21 | ||
TimToady | huh, sounds more like a buffer boundary error | 04:23 | |
or possibly memory corruption or jit damage | 04:24 | ||
maybe try turning off spesh/jit | |||
ShimmerFairy | ok, I'll try that after I'm done updating. Is it an environment variable that turns it off? | 04:25 | |
TimToady | MVM_SPESH_DISABLE turns off all dynamic opts; there are other more specific ones | 04:26 | |
ShimmerFairy | still happens with MVM_SPESH_DISABLE=1 perl6 ... | 04:30 | |
TimToady | then it's not that | 04:31 | |
ShimmerFairy | TimToady: I just figured it out, and the answer is still insane: | 04:34 | |
m: #|(abc) role A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | |||
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'foo' must be implemented by A because it is required by a roleat <tmp>:1» | ||
ShimmerFairy | m: #|abcrole A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | ||
camelia | rakudo-moar f1313d: OUTPUT«OK» | ||
ShimmerFairy | m: #|[[[abc]]]role A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | ||
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'foo' must be implemented by A because it is required by a roleat <tmp>:2» | ||
ShimmerFairy | TimToady: apparently, attaching a multi-line declarator block to the role breaks it. ~somehow~ | 04:35 | |
TimToady | huh | ||
m: #|(abc)#|xyzrole A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | 04:36 | ||
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'foo' must be implemented by A because it is required by a roleat <tmp>:3» | ||
ShimmerFairy | m: role A { method foo { ... } }; #=(abc) class B does A { method foo { "OK" } }; say B.foo # doesn't break with _trailing_ declarator block, though | ||
camelia | rakudo-moar f1313d: OUTPUT«OK» | ||
TimToady | m: #|(abc)#|xyzrole A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | 04:37 | |
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'foo' must be implemented by A because it is required by a roleat <tmp>:3» | ||
TimToady | m: #|(abc)#|xyz#commentrole A { method foo { ... } }; class B does A { method foo { "OK" } }; say B.foo | 04:38 | |
camelia | rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'foo' must be implemented by A because it is required by a roleat <tmp>:4» | ||
TimToady | yeah, that's pretty crazy | 04:39 | |
ShimmerFairy rakudobugs | |||
Got it down as #128810 | 04:45 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128810 | ||
TimToady | so, um, why does "git describe" in nqp say "parrot-42-g9073af7" now? | 05:51 | |
ShimmerFairy | TimToady: apparently because there's a "parrot" tag. | 05:54 | |
geekosaur | there's a recent branch to remove the last of the parrot support iirc. but that sounds like the wrong branch name and if it's an annotated tag, it was unfortunately named... | 05:56 | |
TimToady is in branch master | |||
geekosaur | ...and when I poke at a just-updated rakudobrew triple, git describe in nqp tells me 2016.04-14-gd54d719 | 05:58 | |
ShimmerFairy | TimToady: looks like a tag was added to the last parrot-having commit. Seems to me like it should've been a lightweight tag, since git describe would skip that by default. | ||
TimToady is testing a patch for non-associative vs non-list-associative messages, but it involves changing both nqp and rakudo | 06:01 | ||
geekosaur | oh, wrong tree, there's two of them... | ||
ShimmerFairy | if it's possible and not history-destroying, I'd try to delete that tag and put a lightweight one in its place. | ||
geekosaur | shouldn't be history-destroying, but the tag description seems useful. unless you rename the tag to end-of-parrot or something | 06:02 | |
TimToady | if I put my patch in, you could tag my patch with the normal 2016 etc, I suppose | 06:03 | |
geekosaur | well, technically it is jhistory-destroying because it has already gone out to other sites. practically, the tag is not there to be used, so it "should" be okay | ||
dalek | kudo/nom: f568db2 | TimToady++ | src/ (2 files): distinguish nonlistassoc from nonassoc |
06:04 | |
p: 9073af7 | TimToady++ | src/HLL/Grammar.nqp: split nonassoc error into list vs non-list forms |
|||
TimToady | there, now that rakudo will work better with that nqp, however we decide to describe it... | ||
ShimmerFairy | One approach might be to make a properly lightweight tag called "ex-parrot" or something, and then let people know they might have to delete the "parrot" tag. (Or just live with it, since it'll be back to normal after the next release.) | 06:07 | |
TimToady | you could tag my patched version with 2016-07-02 or so, I guess | 06:08 | |
TimToady is not a tag expert, and the checked in rakudo will work okay without the new nqp | 06:09 | ||
it'll just give the nonassoc message where you'd want the nonlistassoc message | |||
ShimmerFairy | I don't have a commitbit at the moment I believe, so I can't be the one to do it right now :P | ||
TimToady doesn't really want to learn about tags tonight... | 06:12 | ||
m: 1 Z 2 X 3 | |||
camelia | rakudo-moar f568db: OUTPUT«===SORRY!=== Error while compiling <tmp>Operators 'Z' and 'X' are non-associative and require parenthesesat <tmp>:1------> 1 Z 2 X⏏ 3 expecting any of: infix infix stopper» | ||
TimToady | that'll just give the more generic message till we bump the nqp rev, anyway | 06:13 | |
(the reason nqp decides which message is because that's where EXPR lives) | 06:19 | ||
[Tux] | RT#128184 still fails | 06:43 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128184 | ||
[Tux] | This is Rakudo version 2016.07.1-104-gf568db2 built on MoarVM version 2016.07-13-gcba3ae3 | 06:45 | |
test 15.639 | |||
test-t 8.429 | |||
csv-parser 16.895 | |||
travis-ci | Rakudo build errored. TimToady 'distinguish nonlistassoc from nonassoc' | 06:58 | |
travis-ci.org/rakudo/rakudo/builds/149094024 github.com/rakudo/rakudo/compare/f...68db26f859 | |||
buggable | travis-ci, one build failed due to the timeout. No other failures. | 06:59 | |
dalek | p: f5ac9c4 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTCompiler.java: Add support for LDC opcode. We had half of this already and it proved useful for debugging. |
07:49 | |
psch | j: A: for ^1 { B: for ^1 { last A } } | 07:50 | |
camelia | ( no output ) | ||
psch | j: A: for ^1 { B: for ^1 { last A } } | ||
camelia | rakudo-jvm cd19db: OUTPUT«===SORRY!===labeled last without loop construct» | 07:51 | |
psch | j: A: for ^1 { FIRST {}; B: for ^1 { last A } } | ||
camelia | ( no output ) | ||
psch | the second one installs two different handlers | ||
both of which handle a cat mask of 28, which is next/last/redo | |||
well, "second one" here meaning "the one with the phaser" | 07:52 | ||
the unphasered only installs one handler with cat mask 28, and it has the same id as the second one that the phasered example installs | |||
so i'm guessing we somehow don't actually install a handler in nqp::handle if we nest two blocks that only differ in their label but are otherwise similar enough..? | 07:54 | ||
it does seem weird that we swallow the *outer* handler though | |||
i mean, even more weird | |||
github.com/perl6/nqp/blob/master/s....nqp#L4886 | 08:27 | ||
$handler_cares is 1 for labeled handlers, 0 for unlabeled ones | 08:28 | ||
the minimal test cases work with turning the unless into an if | |||
...this is probably the least longest time debugging for the least amount of changed code that i've had on rakudo up to now :S | 08:29 | ||
s:1st/least// | |||
roast++ | 11:00 | ||
'cause even though it's slow i now learned my fix breaks lots of other things vOv | 11:01 | ||
like for example a labeled CX where the label is on the block that throws... | 11:02 | ||
arnsholt | Roast is indeed a lifesaver | 11:03 | |
Found some absolutely stupid bugs in the Rakudo side of my better-O refactor | 11:04 | ||
lizmat | commute to Amsterdam.PM meeting& | 12:06 | |
arnsholt | Could someone do me a favour and review the better-O branches in NQP and Rakudo? | 13:02 | |
It touches the grammar/parsing internals (but only lightly), and there should be no functional changes beyond the change in API to HLL::Grammar.O() | 13:04 | ||
masak does so | 13:06 | ||
arnsholt | Cheers! | 13:08 | |
masak | arnsholt: wow, it looks like a clear net improvement | 13:10 | |
love how much parsing code went away on the NQP end | 13:11 | ||
and on the Perl 6 end it just looks like we use named params better | |||
arnsholt | Yeah, I remember reading the original HLL::Grammar.O and basically going ewwwwwwwww | 13:14 | |
masak | :) | ||
arnsholt | My original attempt at fixing it (two years ago, according to GH. Wow.) foundered for some reason, but this time it worked out fine | 13:15 | |
masak | arnsholt: my one question is, though -- if this is part of Perl 6's API in some sense, what does that mean in terms of deprecation cycle? | ||
arnsholt | It's not really part of the Perl 6 API | ||
A grammar Foo doesn't inherit from HLL::Grammar, but any Perl 6 code that does low-level enough monkeying around to inherit from it *would* of course be impacted | 13:16 | ||
masak | I think you're right, but only because no-one does cool stuff with extending Perl 6's own grammar yet | ||
arnsholt | Yeah | 13:17 | |
Only significant slang I can think of is Tuxic, but from a grep of the source on GH it doesn't look like it uses O() | 13:18 | ||
masak | ok, good | 13:19 | |
seems we agree that it's not part of the API *because no-one uses it* | |||
arnsholt | (Oh, and speaking of HLL::Grammar.O, I'm pretty sure it's basically unchanged since pmichaud++'s PGE) | ||
Yeah, more or less | |||
So I guess merge, but try to give ample room before a release in case the Emmentaler turns up a user after all? | 13:20 | ||
masak | sounds good to me | 13:21 | |
maybe also check with a core dev about the deprecation stuff | 13:22 | ||
I'm just a tourist, not a core dev ;) | |||
pmurias | arnsholt: why do you use the :inherit key as opposed to doing it the way the previous attempt did? | 13:23 | |
arnsholt | pmurias: Because it makes the positional argument ambiguous. Do you want to inherit from the named hash, or save to it? | 13:24 | |
So I decided to keep the positional purely for saving, and doing all the precedence-related stuff using nameds | 13:25 | ||
Hmm, looking at the release schedule the next one is in about two and a half weeks (20/8), so I'll leave the branch for now and merge it after the release is cut | 13:29 | ||
pmurias: irclog.perlgeek.de/perl6-dev/2016-0...i_12954360 (missed that you disconnected) | 13:30 | ||
[Coke] | we need smoke-me branches. | 13:31 | |
ah, we have 'em. | |||
if your branch starts with /smoke-me/ , travis will run it to make sure it's ok. | |||
arnsholt | Does that test against an extended test suite, or just roast? | 13:32 | |
pmurias | arnsholt: what is the benefit of <O(:inherit<%tight_or>, :op<unless>)> over <O(|%tight_or, :op<unless>)> | 13:34 | |
? | |||
[Coke] | arnsholt: maybe not even roast, I don't know. | ||
at least 'make test'. :) | |||
arnsholt | pmurias: Nothing really, except that the %tight_or variable doesn't exist | 13:35 | |
We could always extract those into variables, but then they'd be private to the NQP/Rakudo grammar rather than shared of course | 13:36 | ||
pmurias | arnsholt: I found your old ticket about <O(|%tight_or, :op<unless>)> not working in the old times | 13:39 | |
arnsholt: do we want that to be shared? | 13:41 | ||
arnsholt | I have no idea, TBH. Maybe? | 13:42 | |
pmurias | seems like a bug | ||
arnsholt | jnthn: Do you have an opinion on this? | ||
pmurias | having .O calls in Snake::Grammar override stuff in the Rakudo one doesn't seem very desired | 13:43 | |
arnsholt | Ooh, yeah. That's bad | ||
jnthn | I think we want to go the <O(|%tight_or, ...)> way | ||
If we want to expose the precedence defaults, that can be done through a method on Perl6::Grammar or so | 13:44 | ||
arnsholt | Yeah, that sounds way more reasonable | ||
jnthn | Slangs may want that | ||
arnsholt | Yeah, probably | 13:45 | |
jnthn | Though it's not a blocker for them if we don't expose it, they'd just have to spell out all the things. | ||
arnsholt | But exposing those hashes through accessor methods sounds way saner than random grammars overwriting each other | ||
jnthn | Indeed | ||
arnsholt | But then I'll hack up another pair of commits that kills off :inherit and $save and moves the saved stuff into local hashes in the grammars | 13:46 | |
Thanks for the review guys! | |||
pmurias wrote tests and closed the old ticket that was blocking <O(|%tight_or, ...)> back in the day | 13:49 | ||
arnsholt | Does it work these days? | 13:51 | |
Looking at that ticket, I remember talking with jnthn about it at some point (which is really helpful, given the bug is *four years* old) where it turns out it's not really supposed to work, IIRC | |||
The flattening is a purely syntactic operation in NQP, so only something %-sigilled will get flattened as nameds; anything else is flattened positionally | 13:52 | ||
dalek | p: b2c8d01 | (Pawel Murias)++ | t/nqp/031-grammar.t: Test that flattening into name arguments works from withing rules. |
||
pmurias | arnsholt: <O(|%tight_or)> works <O(|$tight_or_with_wrong_sigil)> doesn't work | 13:54 | |
arnsholt: I assume the latter won't be fixed | |||
arnsholt | Yeah, there's even a closed ticket about it! | ||
#146 | |||
I suspect that's what #46 was running into too | 13:56 | ||
So. The original O() was 81 lines of code. After killing off the :inherit stuff, it's 10 =D | 14:10 | ||
jnthn | \o/ | ||
dalek | kudo/nom: 8099135 | (Zoffix Znet)++ | docs/release_guide.pod: Add missing space in command |
14:26 | |
[Coke] | vsavkin.com/typescript-how-to-be-s...eb08485fe6 Js type safety with TypeScript | 14:29 | |
dalek | kudo/nom: 3c2849c | (Zoffix Znet)++ | docs/release_guide.pod: Mention public GPG keys tags are signed with need to be added to GitHub |
14:31 | |
p: 1bef250 | (Zoffix Znet)++ | docs/release_guide.pod: Add missing space in command |
14:32 | ||
[Coke] | Zoffix: thanks for the GPG notice. I just added my key and now github.com/rakudo/rakudo/releases/tag/2016.03 is (e.g.) Verified | 14:34 | |
dalek | p: d1652cd | (Zoffix Znet)++ | docs/release_guide.pod: Mention GPG keys need to be added to GitHub |
||
timotimo | buggable: rt | 15:11 | |
hm, is that the right one? | |||
buggable | timotimo, TOTAL: 1355, UNTAGGED: 611, BUG: 414, LTA: 90, JVM: 62, NYI: 32, SEGV: 28, UNI: 25, RFC: 24, PERF: 19, POD: 14, CONC: 11, @LARRY: 10, TODO: 9, PRECOMP: 8, GLR: 6, BUILD: 5, STAR: 4, WEIRD: 3, LTA ERROR: 3, MOARVM: 2, OSX: 2, FEATURE REQUEST: 1, CPP: 1, SPEC: 1, LIST: 1, LHF: 1, SPESH: 1, DOCS: 1, NATIVECALL: 1 Details: bug.perl6.party/1470150706.html | ||
[Coke] | Zoffix: your [UNTAGGED] logic is faulty; picking up, e.g. RT#124522[UNTAGGED] Roast rakudo skip/todo test:./S05-metasyntax/angle-brackets.t line:122 reason: 'colon arguments [NYI]' | 15:23 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124522 | ||
travis-ci | Rakudo build passed. Zoffix Znet 'Add missing space in command' | 15:28 | |
travis-ci.org/rakudo/rakudo/builds/149202203 github.com/rakudo/rakudo/compare/f...991357d2a5 | |||
unmatched} | .seen FROGGZ | 15:37 | |
yoleaux2 | I haven't seen FROGGZ around. | ||
unmatched} | .seen FROGGZ_ | ||
yoleaux2 | I haven't seen FROGGZ_ around. | ||
hoelzro | .seen FROGGS | 15:38 | |
yoleaux2 | I saw FROGGS 31 Jul 2016 11:22Z in #perl6-dev: <FROGGS> I was looking in their tests and documentation and even asked in their irc channel but got no answer in how to combine stderr and stdout | ||
TimToady | jnthn: do you have any prefers as to which way to go with nqp's current 'git describe'? | ||
TimToady is hesitant to bump when the version says parrot-46-gd1652cd | 15:39 | ||
jnthn | TimToady: Seems it'll right itself in a couple of weeks on the next release... For now I'd just git describe --match 2* | 15:40 | |
unmatched} | hoelzro: are you able to upload your GPG public key to your GitHub account so the 2016.05 tag shows as verified? github.com/rakudo/rakudo/tags gpg --armor --export <email> to generate public key and then add it on github.com/settings/keys | ||
jnthn | To only match agaisnt one of the release tags | ||
TimToady | that'll work for the bump then? | ||
hoelzro | unmatched}: sure; I don't have the key here, I'll do it after work | ||
unmatched} | .ask FROGGS are you able to upload your GPG public key to your GitHub account so the 2016.06 tag shows as verified? github.com/rakudo/rakudo/tags Just run gpg --armor --export <email> to generate public key and then add it on github.com/settings/keys | ||
yoleaux2 | unmatched}: I'll pass your message to FROGGS. | ||
unmatched} | hoelzro: thanks | 15:41 | |
jnthn | TimToady: Should do | 15:44 | |
Should give you something like 2016.07-g.... | 15:45 | ||
dalek | kudo/nom: e1c7722 | TimToady++ | tools/build/NQP_REVISION: bump npq to get nonlistassoc fix Fixes RT #128811. There is a new X::Syntax::NonListAssociative exception that is derived from X::Syntax::NonAssociative. |
16:01 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128811 | ||
timotimo | not perl, quite. | 16:02 | |
psch | well, it wasn't the -2 +6 character fix for the label stuff | 16:03 | |
and there's more hints that it's actually really, really weird | |||
j: A: for ^2 -> $, $ { B: for ^1 { last A } } | |||
camelia | ( no output ) | ||
psch | apparently it works as long as we don't use the same SlippyIterator does'er between the two iterators | 16:04 | |
'cause one-phasered-the-other-not works, different arity (one-1ary-one-2ary, one-2ary-one-3ary and so on) works | 16:05 | ||
j: A: for ^1 { FIRST { }; B: for ^1 { FIRST { }; last A } } | 16:06 | ||
camelia | rakudo-jvm cd19db: OUTPUT«===SORRY!===labeled last without loop construct» | ||
psch | but both phasered also doesn't work | ||
travis-ci | Rakudo build passed. Zoffix Znet 'Mention public GPG keys tags are signed with need to be added to GitHub' | 16:07 | |
travis-ci.org/rakudo/rakudo/builds/149203877 github.com/rakudo/rakudo/compare/8...2849ca7bfa | |||
[Coke] | Zoffix: your RT reports on [LTA ERROR] - mine treated that the same as [LTA] and [ERROR] - for now I will update those tickets to be "[LTA] Error" instead. | 16:09 | |
unmatched} | buggable: rt | 16:11 | |
buggable | unmatched}, TOTAL: 1364, UNTAGGED: 615, BUG: 417, LTA: 91, JVM: 62, NYI: 32, SEGV: 28, RFC: 25, UNI: 25, PERF: 19, POD: 14, CONC: 11, @LARRY: 10, TODO: 9, PRECOMP: 8, GLR: 6, BUILD: 5, STAR: 4, WEIRD: 3, LTA ERROR: 3, MOARVM: 2, OSX: 2, FEATURE REQUEST: 1, CPP: 1, SPEC: 1, LIST: 1, LHF: 1, SPESH: 1, DOCS: 1, NATIVECALL: 1 Details: bug.perl6.party/1470154316.html | ||
TimToady | m: 1 X 2 Z 3 | ||
camelia | rakudo-moar e1c772: OUTPUT«===SORRY!=== Error while compiling <tmp>Only identical operators may be list associative; since 'X' and 'Z' differ, they are non-associative and you need to clarify with parenthesesat <tmp>:1------> 1 X 2 Z⏏ 3 expecting any o…» | ||
TimToady | m: 1 cmp 2 leg 3 | 16:12 | |
camelia | rakudo-moar e1c772: OUTPUT«===SORRY!=== Error while compiling <tmp>Operators 'cmp' and 'leg' are non-associative and require parenthesesat <tmp>:1------> 1 cmp 2⏏ leg 3 expecting any of: infix infix stopper» | ||
unmatched} | [Coke]: yeah, it basically just reports the [] tags verbatim. I think rather than special-casing, admins should change titles of tickets that don't use a common tag. Like that FEATURE REQUEST one should be RFC. | ||
TimToady | let me just veryify, if I change roast/master, that's proto 6.d, not 6.c errata, correct? | 16:13 | |
unmatched} | BTW, I fixed the bug where your nick wasn't being registered with buggable | ||
buggable: rt FEATURE REQUEST | |||
buggable | unmatched}, Found 1 ticket tagged with FEATURE REQUEST. Details: bug.perl6.party/1470154400.html | ||
unmatched} | TimToady: correct | 16:15 | |
6.c-errata is the branch for 6.c errata | |||
dalek | ast: 5939e74 | TimToady++ | S03-operators/precedence.t: test difference betwen nonassoc and nonlistassoc also, check precedence level of structural infix |
16:42 | |
TimToady | (the old tests will work with the new exceptions because X::Syntax::NonListAssociative is derived from X::Syntax::NonAssociative) | 16:46 | |
[TuxCM] | This is Rakudo version 2016.07.1-107-ge1c7722 built on MoarVM version 2016.07-13-gcba3ae3 | 17:28 | |
test 15.216 | |||
test-t 8.160 | |||
csv-parser 17.262 | |||
[Coke] | added [BOOTSTRAP] to some tickets where nqp is leaking into rakudo | 17:37 | |
someone want to suggest a tag for "numbers not numbering numerically" ? | 17:38 | ||
(happy to leave them as [BUG] for now) | |||
TimToady: is rt.perl.org/Ticket/Display.html?id=77474 still an issue for you? | 17:39 | ||
TimToady | well, I'd still like to allow recursive definitions like that | 17:48 | |
[Coke] | hokay. | 18:03 | |
dalek | kudo/nom: cc3932d | lizmat++ | src/core/Hash.pm: Make Hash[Any].new.perl roundtrip as well |
18:11 | |
masak | oh! they're now two exceptions because the messages are different | 19:52 | |
for a while there I hallucinated a whole new associativity type, and it made me scared and confused :> | |||
lizmat | decommute& | 20:17 | |
[Coke] | for windows, we need to recommend a file extension that isn't .pl; .p6? or .pl6? | 20:27 | |
gfldex | .pl collides with perl5 (no shebang), bot .p6 and .pl6 are not used by a default installation | 20:29 | |
that's for win8, let me check on win10 | |||
same for win10 | 20:31 | ||
.p6 is shorter and short is sexy (disclaimer: i'm not tall) | |||
[Coke] | github.com/perl6/doc/issues/778 if anyone cares to comment. | 20:35 | |
dalek | Heuristic branch merge: pushed 39 commits to rakudo/better-O by arnsholt | 21:46 | |
p/better-O: 000ba5b | arnsholt++ | src/ (2 files): Remove HLL::Grammar.O(:inherit). This functionality is removed in favour of lexical hashes flattened directly into invocations of <O(...)>. |
|||
p: e4f47ee | Xliff++ | docs/ops.markdown: Proposed documentation for nqp::nativecallrefresh After discussion in #perl6. |
21:51 | ||
p: d3e3707 | Xliff++ | docs/ops.markdown: Wording change. |
|||
p: 6aeea36 | Xliff++ | docs/ops.markdown: Typo fixed. |
|||
p: a3e9ef3 | peschwa++ | docs/ops.markdown: Merge pull request #302 from Xliff/patch-1 99aa515 | (Zoffix Znet)++ | docs/ops.markdown: Remove spurious bullet |
|||
Zoffix | m: say Date.today - Date.new('2016-05-06') | 22:10 | |
camelia | rakudo-moar cc3932: OUTPUT«89» | ||
Zoffix | mst, 89 days! A new record :) | ||
Zoffix chugs a beer | |||
timotimo | record for what? | 22:16 | |
Zoffix | timotimo, being sober | ||
timotimo | oh | 22:17 | |
Zoffix | :) | ||
TimToady | m: for (@a xx 1) {} | 22:33 | |
camelia | rakudo-moar cc3932: OUTPUT«===SORRY!=== Error while compiling <tmp>Variable '@a' is not declaredat <tmp>:1------> for (⏏@a xx 1) {}» | ||
TimToady | m: my @a; for (@a xx 1) {} | ||
camelia | rakudo-moar cc3932: OUTPUT«WARNINGS for <tmp>:Useless use of @a in sink context (line 1)» | ||
TimToady | that warns for a rather strange reason, turns out | ||
it's calling EXPR twice on the @a xx 1 | |||
the first time is in the lookahead for detecting the C/p5-ism: for ($i = 1; $i; ++$i) {} | 22:34 | ||
and that's the codegen that is carping, not the actual parsing of the for loop | |||
so it really is a useless use of @a, in a way | 22:35 | ||
it's even failing the lookahead, since there's no ';' inside, but that's enough for EXPR to codegen the closure that will turn out to be useless | 22:36 | ||
timotimo | hah, that's amusing | 22:38 | |
also probably kind of expensive, wouldn't it be? | |||
TimToady | only if you actually use parens on your for | 22:39 | |
timotimo | ah | ||
Zoffix | m: my @a; for @a xx 1 {} | ||
camelia | ( no output ) | ||
timotimo | you're not supposed to :) | ||
TimToady | I'm thinking maybe we shouldn't parse that lookahead using EXPR, or should find some way of disabling codegen inside <?before> | 22:40 | |
well, astgen | 22:41 | ||
usually, an ast will get attached to the Match, and just thrown away, but this apparently stows something away within $*W when you thunkify the xx | 22:42 | ||
m: say (my $i = 1; $i; ++$i).perl | 22:43 | ||
camelia | rakudo-moar cc3932: OUTPUT«(2, 2, 2)» | ||
TimToady | maybe we should detect (;;) at a semantic level sometime after the for args are parsed (but only parsed once) | 22:44 | |
timotimo | potentially doable | ||
TimToady | m: say (my $i = 1; $i; ++$i).WHAT | ||
camelia | rakudo-moar cc3932: OUTPUT«(List)» | ||
TimToady | well, if we don't throw away the info | ||
m: say (;;).WHAT | 22:45 | ||
camelia | rakudo-moar cc3932: OUTPUT«(List)» | ||
TimToady | otoh, maybe this is a more general problem with <?before> that we need to think about | ||
otgh, when we talk about lookaheads, we often say not to do anything with side effects that can't be undone... | 22:47 | ||
and we did that here :) | |||
timotimo | we're just a bunch of dum-dums | 22:54 | |
hoelzro | unmatched}: I tried to add my GPG key, but I get "keyring packet should only contain a single entity" | 23:13 | |
oh, got it | 23:15 | ||
I forgot I made a new key last fall =/ | |||
hmm, is it a problem that my old key was used to sign 2015.06? | 23:17 | ||
TimToady | well, it appears I can fix the general case by slowing down parsing by 7% or so :( | 23:34 | |
that is, if put 'my $*SUPPOSING = 1;' inside <?before>, and look at it inside make_thunk_ref to disable the side effect, that's how much overhead there is in the dynvar | 23:35 | ||
about 2/3 of that overhead is just setting the dynvar inside <?before> because that's such a common rule | 23:36 | ||
some of that overhead is contention for our limited dynvar cache | 23:37 | ||
it's possible that setting a dynvar in method before is also disabling some inlining/speshing | |||
I don't know how much our proposed new dynvar cache would offset all that | 23:38 | ||
timotimo | oof | ||
TimToady | also, my timings are not entirely scientific | ||
I did suspend firefox at least :) | 23:39 | ||
timotimo | :) | ||
TimToady | and I attempted to let my CPU cool down before each parse run | ||
unmatched} | hoelzro: nah, I don't think releases pre-Christmas matter that much any more. | 23:40 |