dalek kudo/nom: 713ad51 | (Zoffix Znet)++ | src/core/Exception.pm:
Improve error message for malformed ranges in regexes

Fixes RT#127801
01:15
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127801
Zoffix Not 100% happy with this fixes, but I didn't think it was appropriate to mess with nqp for this (with QRegex::P6Regex::World in nqp)
m: my $a = 3; say 'a' ~~ /'a' ** $a..2/ 01:16
camelia rakudo-moar 59d808: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Quantifier quantifies nothing␤at <tmp>:1␤------> my $a = 3; say 'a' ~~ /'a' **⏏ $a..2/␤»
Zoffix That's unfixed.
m: my $a = 3; say 'a' ~~ /'a' ** 1..z/
camelia rakudo-moar 59d808: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Malformed Range␤at <tmp>:1␤------> my $a = 3; say 'a' ~~ /'a' ** 1..⏏z/␤»
Zoffix That will mention the variables stuff.
m: say 2×12 01:40
camelia rakudo-moar 713ad5: OUTPUT«24␤»
Zoffix m: say 1×12
camelia rakudo-moar 713ad5: OUTPUT«12␤»
Zoffix m: say 0x12
camelia rakudo-moar 713ad5: OUTPUT«18␤»
Zoffix :trollface:
AlexDaniel m: my $a = 3; say 'a' ~~ /'a' ** 1..z/; say ‘hello world’ 02:09
camelia rakudo-moar 713ad5: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Malformed Range. If attempting to use variables for end points, wrap the entire range in curly braces.␤at <tmp>:1␤------> my $a = 3; say 'a' ~~ /'a' ** 1..⏏z/; say ‘hello world’␤»
Zoffix m: my \z = 3; say 'aaaaaa' ~~ /'a' ** {1..z}/; say ‘hello world’ 02:20
camelia rakudo-moar 713ad5: OUTPUT«「aaa」␤hello world␤»
Zoffix I guess that's fine. So just the $a..2 portion that sucks.
dalek ast: 3f964dc | (Zoffix Znet)++ | S32-str/substr-rw.t:
[TODO FUDGE] .substr-rw on a string constructed with x

  ...refers to the right character
RT#127782
02:39
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127782
Zoffix m: my $a = '.' x 4 ~ 'a'; $a.substr-rw(1,1) = ''; say $a 02:43
camelia rakudo-moar 713ad5: OUTPUT«....␤»
Zoffix j: my $a = '.' x 4 ~ 'a'; $a.substr-rw(1,1) = ''; say $a
camelia rakudo-jvm cd19db: OUTPUT«...a␤»
dalek ast: 665310b | usev6++ | S19-command-line/repl.t:
Unfudge some repl tests for rakudo-j
04:01
psch java.lang.RuntimeException: java.lang.RuntimeException: Class file too large! 07:50
blerg /o\
dalek kudo/nom: 60870c1 | lizmat++ | src/core/Hash.pm:
Make Hash.AT-KEY about 35% faster

  - rewrite in NQP completely
  - no longer allocate $!storage unless really needed
jnthn morning, all o/ 09:35
psch o/ jnthn
is there a way i can get debug output from inside a core op? 09:36
'cause sayfh doesn't seem to work
jnthn "inside a core op"? 09:37
psch yeah. specifically, nqp::handle is defined with add_core_op(... sub(...) { })
and inside that sub i added a sayfh
so, nqp core op 09:38
jnthn How did you add it? Just an nqp::sayfh('debug output')? 09:40
psch i mean, the testing code is two nested for loops, which translated to map should definitely hit nqp::handle 09:41
jnthn Don't see why it wouldn't run
psch yeah
jnthn Two nested for loops in Rakudo?
psch yup
or did i not look closely enough at the map impl?
jnthn But translated to map means really "translated to calls to .map" which is calling the map impl in CORE.setting
So you'd get the debug output during the CORE.setting compilation 09:42
Since that's, I guess, where the nqp::handle you're talking about is
psch right, the handle call is in Any-iterable-methods
jnthn Well, handle "call" is a little bit of a confusing way to think of it (to me anyway :)) because it's not a runtime call, it's rather asking the compiler to do code-gen for exception handling 09:43
psch right
so i'd have to codegen the debug output instead i guess 09:44
jnthn Yeah
psch alright, i can do that
jnthn Alternatively, you could try nested while loops
Oh, though those maybe do not compile so directly with handle
Dunno if they exhibit the same problem though, but they'd likely be an easier time to debug if so 09:45
Alternatively, you can write yourself a program using nqp::handle to mimic the map bug
Which may be more golf-able
psch j: A: for ^1 { B: for ^1 { last A } } # is the bug 09:46
camelia rakudo-jvm cd19db: OUTPUT«===SORRY!===␤labeled last without loop construct␤»
jnthn hmmm
psch which, i guess, strongly depends on (1) how we use handle and (2) how we install handlers in nqp-j 09:47
jnthn Yeah
psch probably mostly the latter, though
jnthn and (3) how labeled handlers work in nqp-j, which I've no idea about
FROGGS++ implemented them, iirc :)
psch from what i can tell handlerDynamic does seem to do the right thing
we just don't get the label flag set for some reason 09:48
j: A: for ^1 { B: for ^1 { last A }; last A }
camelia rakudo-jvm cd19db: OUTPUT«===SORRY!===␤labeled last without loop construct␤»
psch j: A: for ^1 { B: for ^1 { last B }; last A }
camelia ( no output )
psch oh hm
that looks like we have the handler but aren't looking the right way..?
jnthn Or one hides the other or some other weirdness 09:49
psch oh right
i had a hunch about that
we're comparing handlers by array identity in handler{Dynamic,Lexical}
because, for some reason, curHandler is just an int[][]
instead of a HandlerInfo[] 09:50
curFrame.curHandler that is
and since HandlerInfo() doesn't copy the array it gets its flags from that might be the reason for the skip..? 09:51
err, curFrame.curHandler is a Long actually, curFrame.staticInfo.handlers is the int[][] 09:52
well, long[][], but the point stands 09:53
dalek kudo/nom: 5af32b8 | jnthn++ | src/Perl6/Actions.nqp:
Fix bogus redeclaration error for anon subs.

Also remove a little duplication in routine_def along the way.
10:11
ast: cefe17f | jnthn++ | S06-routine-modifiers/scoped-named-subs.t:
Test for RT #127540.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127540
jnthn There's an easy one to get me warmed up :)
timotimo it's not warm enough yet? :) 10:13
stmuk_ pl6anet.org/drop/rakudo-star-2016.07-RC1.dmg 10:21
jnthn m: use Teste; ok "a" ~~ m:g:ignoremark/<[á]>/ 10:36
camelia rakudo-moar 5af32b: OUTPUT«===SORRY!===␤Could not find Teste at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit::Reposit…»
jnthn o.O
m: use Test; ok "a" ~~ m:g:ignoremark/<[á]>/
camelia rakudo-moar 5af32b: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
psch heh, codegen'ing the debug output i want makes Ops.x disappear for some reason 10:40
dalek p: 8094c3d | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
Add code-gen of charclass with ignoremark.

Missed a range check that could lead to chr being passed a -1 that was meant to indicate index out of range.
10:48
kudo/nom: eff785b | jnthn++ | tools/build/NQP_REVISION:
NQP version bump for regex code-gen fix.
10:49
ast: 4e9a804 | jnthn++ | S05-metasyntax/charset.t:
Test for RT #128270.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128270
psch hm, it apparently just doesn't pass a tc, which might be because we don't necessarily have one during nqp setting compilation..? 10:53
...i'm just making worse problems for myself by trying to debug something apparently /o\
timotimo if the tc is like the MVMThreadContext, then we can't possibly not have a tc 10:54
psch well, it's calling into Ops.x(Ljava/lang/String;J)Ljava/lang/String; 10:55
so, without the tc argument
timotimo oh
jnthn .tell pmurias it seems you forgot to commit t/nqp/019-chars.txt in 3f34d27f95
yoleaux2 jnthn: I'll pass your message to pmurias.
psch so, right, it's not about "we might not have one", my mistake
timotimo you can put a :tc argument into the Ops.nqp
that'll cause the tc to be passed 10:56
psch r: use nqp; say nqp::x("foo", 2)
camelia rakudo-moar 5af32b, rakudo-jvm cd19db: OUTPUT«foofoo␤»
psch timotimo: that's already there for nqp::x :)
timotimo what is?
psch the :tc argument
timotimo oh, huh?
so then why doesn't it pass the tc?!
psch yes, my reaction exactly
it's not even that it doesn't pass it 10:57
it generates a lookup for an Ops.x without the argument
dalek kudo/nom: 4e2fd4e | lizmat++ | src/core/Hash.pm:
Make Hash.ASSIGN-KEY about 2x as fast

  - rewrite in nqp ops
  - be smarter about handling initialization of $!storage
  - add candidates for TypedHash[Type] case, because we need them :-(
psch which, to me, clearly means "stop fiddling with those bits" /o\
dalek ast: 0d538c2 | lizmat++ | S09-typed-arrays/hashes.t:
Add some more sanity tests
10:58
psch j: A: for ^1 { FIRST { }; B: for ^1 { last A }; } 11:33
camelia ( no output )
psch sooo
something is different between the phaser-y SlippyIterator and the non-phaser-y SlippyIterator
in &sequential-map
well, there's probably a lot of things different about it... 11:35
hm, the phasery one has an nqp::stmts around the nqp::handle 11:36
also it does the Slip check inside of the nqp::handle 11:37
during pull-one that is
ah, nvm, i misread the diff apparently 11:39
dalek p: 4d73fdd | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for repeat/concat/substr fix.
12:11
kudo/nom: 8dff9df | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for repeat/concat/substr fix.
12:12
ast: 58d5bc1 | jnthn++ | S32-str/substr (2 files):
Unfudge tests for RT #123602 and RT #127782.
12:19
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123602
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127782
nine Why does travis report in #p6dev? 12:20
jnthn No idea 12:23
Hysterical raisons, maybe...
Does it not report here also?
lizmat no, it doesn't yet, for nqp at least 12:24
jnthn aww
jnthn wonders who can fix that... 12:25
ah, yay, probably me
dalek p: eaaf6d8 | jnthn++ | .travis.yml:
Update Travis reports channel.
12:26
jnthn Rakudo already looks correct
travis-ci NQP build failed. Jonathan Worthington 'Update Travis reports channel.' 12:30
travis-ci.org/perl6/nqp/builds/146363840 github.com/perl6/nqp/compare/4d73f...af6d82c6bb
jnthn There we go :) 12:34
[Coke] you killed the build! ;) 12:40
jnthn
.oO( video killed the rakudo star )
12:43
timotimo oh lord 12:44
at some point, those fantastic/horrible puns must run out
travis-ci Rakudo build errored. Elizabeth Mattijsen 'Make Hash.ASSIGN-KEY about 2x as fast 12:49
travis-ci.org/rakudo/rakudo/builds/146345150 github.com/rakudo/rakudo/compare/e...2fd4e4e7e6
timotimo ^- just one of the mac travises hanging up 12:50
dalek ast: 6943d85 | jnthn++ | S11-modules/module (2 files):
Modernize and expand $?MODULE tests.
13:19
kudo/nom: 7427d3f | jnthn++ | src/Perl6/Grammar.nqp:
Implement $?MODULE and ::?MODULE.

Which were in the docs and mysteriously forgotten, while $?CLASS and
  $?ROLE have been around for ages.
13:25
kudo/nom: a0b1841 | jnthn++ | t/spectest.data:
Run 2 test files for $?MODULE.
jnthn m: use Test; throws-like Q/my Array[Numerix] $x;/, X::Undeclared::Symbols, gist => /Numerix/ 13:40
camelia rakudo-moar a0b184: OUTPUT« 1..3␤ ok 1 - 'my Array[Numerix] $x;' died␤ not ok 2 - right exception type (X::Undeclared::Symbols)␤ ␤# Failed test 'right exception type (X::Undeclared::Symbols)'␤# at /home/camelia/rakudo-m-inst-1/share/perl6/precomp/12F52E39F6EA6D…»
jnthn m: dd :<bar> 13:50
camelia rakudo-moar a0b184: OUTPUT«"bar"␤»
jnthn Hm :) 13:51
psch isn't that just *%_
m: dd (:<bar>)
camelia rakudo-moar a0b184: OUTPUT«"bar"␤»
psch huh
dalek kudo/nom: dfc53aa | jnthn++ | src/Perl6/Grammar.nqp:
Fix error for unknown symbol in parametric type.
ast: 089004c | jnthn++ | S32-exceptions/misc.t:
Test for RT #128581.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128581
jnthn psch: Yeah, I was trying to figure out the explosion in RT #128603 13:53
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128603
jnthn And then ran into this :)
Thing is, I've no idea what it *should* do
psch so we don't colonpair right with < >, i get that correctly? 13:54
i'd think &val-ish key maybe?
jnthn m: say :["foo"]
camelia rakudo-moar a0b184: OUTPUT«[foo]␤»
jnthn m: dd :["foo"]
camelia rakudo-moar a0b184: OUTPUT«["foo"]␤»
jnthn m: dd :{"foo"}
camelia rakudo-moar a0b184: OUTPUT«-> ;; $_? is raw { #`(Block|53736800) ... }␤»
psch oh, we don't colonpair at all with non-()..?
jnthn Seems that if you don't give it a name, then it acts like the : ain't even there
psch right
yeah, the anon part seems important :) 13:55
jnthn Which may even be right, considering things like token foo:bar { }
In fact, I bet it's making that work that has made colonpair behave this way :)
psch m: dd (:foo<bar baz>)
camelia rakudo-moar a0b184: OUTPUT«:foo(("bar", "baz"))␤»
jnthn m: dd (:<bar baz>)
camelia rakudo-moar a0b184: OUTPUT«("bar", "baz")␤»
psch but how am i gonna pass an anon named Positional
scnr
jnthn m: sub foo(*%_) { say %_ }; foo(:<bar>) 13:56
camelia rakudo-moar a0b184: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
jnthn Not like that :P
psch m: sub f(:$!) { }; f
camelia ( no output )
jnthn m: sub foo(*%_) { say %_ }; foo(|{ '' => 'bar' })
camelia rakudo-moar a0b184: OUTPUT«{ => bar}␤»
jnthn That's how if you're curious ;)
psch well, that's not really anon, it has a name :) 13:57
jnthn Right, the empty string :)
psch anyway, yeah, i'm just poking fun at :$! being allowed (but utterly meaningless) in a Signature
jnthn Anyway...maybe TimToady will weigh in on what it should mean :)
dalek ast: e25ff99 | (Zoffix Znet)++ | S05-match/capturing-contexts.t:
[TODO FUDGE] "$/[0]--" interpolates correctly

Postfix operators do not interfere with interpolation of $/[0]
RT#127701
14:00
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127701
jnthn m: use Test; is (for ^2 { [+] (^5 X ^5) }), (50, 50); 14:15
camelia rakudo-moar dfc53a: OUTPUT«This Seq has already been iterated, and its values consumed␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤ in block <unit> at <tmp> line 1␤␤»
dalek kudo/nom: b519088 | jnthn++ | src/Perl6/Optimizer.nqp:
Don't constant-fold something producing a Seq.

Otherwise, if the value is used twice, we'll end up exhuasting it the first time and it will explode every time afterwards. (We maybe want to look at whether some things are bogusly marked PURE, but this will fix all such problems and I can't think of a situation where you'd ever want this misbehavior.)
14:28
ast: e33db6d | jnthn++ | S03-metaops/cross.t:
Test for RT #127749.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127749
jnthn 3 more RTs and I'll hit 10 for the day :) 14:29
___ jnthn++ \o/ 14:30
llfourn jnthn++ #fixing all the things 14:38
jnthn There's...quite a lot more of them left to fix :) 14:41
___ PR to fix RT#127648 github.com/rakudo/rakudo/pull/828 It fixes the issue in the ticket and passes all the spectests, but I'm not sure what this loop {} and what happens when it gets a Nil. Adding a `and $!closed_promise` to that `last` caused a bunch of spectest failures: github.com/rakudo/rakudo/pull/828/...a45eb7R111 14:47
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127648
___ s/what this loop/what this loop is for/;
Bad link. This loop, the one just above my changes: github.com/zoffixznet/rakudo/blob/...el.pm#L111 14:51
jnthn The loop is to drain any values already in the channel without waiting. 14:54
___ Aha. I suspected that; now I'm unsure why the spectests were failing when I added the $closed_promise test to it 14:56
jnthn m: unit sub MAIN ($x where { $^x > 1 } ); say "big"
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Expression needs parens to avoid gobbling block␤at <tmp>:1␤------> unit sub MAIN ($x where { $^x > 1 }⏏ ); say "big"␤Missing block (apparently claimed by expression)␤at <tmp>:1␤------> unit sub MAIN ($x where { $^…»
jnthn This is a strange one to hunt down...
I can easily fix it by removing one line.
m: sub foo() is rw{ return 1 } 14:57
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> sub foo() is rw{ return 1 }⏏<EOL>␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> sub foo() is rw{ return 1 }⏏<EOL>␤␤»
jnthn m: sub foo() is rw{ return 1 };
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> sub foo() is rw{ return 1 }⏏;␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> sub foo() is rw{ return 1 };⏏<EOL>␤␤»
jnthn m: sub foo() is rw{ return 1 }; say 42
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> sub foo() is rw{ return 1 }⏏; say 42␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> sub foo() is rw{ return 1 };⏏ say 42␤␤»
jnthn m: unit sub foo() is rw{ return 1 }; say 42 14:58
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> unit sub foo() is rw{ return 1 }⏏; say 42␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> unit sub foo() is rw{ return 1 };⏏ say…»
jnthn m: unit sub MAIN() is rw{ return 1 }; say 42
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> unit sub MAIN() is rw{ return 1 }⏏; say 42␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> unit sub MAIN() is rw{ return 1 };⏏ s…»
jnthn Aha...
The fix of mine makes that one work... 14:59
Whe we'd maybe like it to fail as it does now
Well, or wait
No, that error seems wrong, since it makes it impossible to actually use a trait that wants a block argument with a unit sub MAIN 15:00
Well, impossible is strong, you'd have to write it sub foo() is thingy({ blah }) { } instead
m: unit sub MAIN() is rw{ return 1 }; say 42
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> unit sub MAIN() is rw{ return 1 }⏏; say 42␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> unit sub MAIN() is rw{ return 1 };⏏ s…»
jnthn m: sub MAIN() is rw{ return 1 } { say 42 } 15:01
camelia rakudo-moar b51908: OUTPUT«42␤»
jnthn That works though
So I think the error is bogus
unmatched} TIL you don't need () :/
jnthn Certainly wasn't any spectests wanting it :)
Same with colonparis fwiw
m: dd :foo{ say 42 }
camelia rakudo-moar b51908: OUTPUT«block <unit>␤»
jnthn oops
m: dd (:foo{ say 42 })
camelia rakudo-moar b51908: OUTPUT«:foo(-> ;; $_? is raw { #`(Block|75837288) ... })␤» 15:02
unmatched} m: dd (:foo"meow")
camelia rakudo-moar b51908: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> dd (:foo⏏"meow")␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤ statement mo…»
jnthn It's only for circumfixes
unmatched} Ah
jnthn but you can do it with traits, e.g. to pass an array you can say is foo[1,2,3]
If anyone other than TimToady++ had stuck that line in, I'd be thinking "hm, probably a thinko" :) 15:03
I guess TimToady can have thinkos too ;)
unmatched} :)
jnthn And not being able to use where blocks in a unit sub MAIN signature is clearly annoying :)
Yowser, not a single spectest for unit sub 15:06
m: sub MAIN() is rw{ return 1 }; say 42 15:07
camelia rakudo-moar b51908: OUTPUT«===SORRY!===␤Trait 'is rw' needs whitespace before block␤at <tmp>:1␤------> sub MAIN() is rw{ return 1 }⏏; say 42␤Missing block (apparently claimed by 'is rw')␤at <tmp>:1␤------> sub MAIN() is rw{ return 1 };⏏ say 42␤␤»
jnthn m: sub MAIN(); say 42 15:08
camelia rakudo-moar b51908: OUTPUT«42␤»
jnthn wow, you don't need the unit on there o.O
TIL too :)
m: use Test; @*ARGS = '2'; eval-lives-ok 'sub MAIN($x where { $x > 1 }); 1', 'Can have where in sub MAIN(...);'; 15:15
camelia rakudo-moar b51908: OUTPUT«not ok 1 - Can have where in sub MAIN(...);␤␤# Failed test 'Can have where in sub MAIN(...);'␤# at <tmp> line 1␤# Error: Expression needs parens to avoid gobbling block␤# Missing block (apparently claimed by expression)␤»
unmatched} :/ I may have just murdered my $300 keyboard by spilling a bit of soup on it :/ 15:18
jnthn oh no /o\ :( 15:19
perlpilot m: sub MAIN(); sub MAIN(); say "hi"; 15:23
camelia rakudo-moar b51908: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Too late for unit-scoped sub definition;␤Please use the block form.␤at <tmp>:1␤------> sub MAIN(); sub MAIN();⏏ say "hi";␤»
perlpilot m: sub foo(); sub MAIN(); say "hi";
camelia rakudo-moar b51908: OUTPUT«===SORRY!=== Error while compiling <tmp>␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at <tmp>:1␤------> sub foo();⏏ sub MAIN(); say "hi";␤»
dalek kudo/nom: 86843a3 | jnthn++ | src/Perl6/Grammar.nqp:
Remove a check that led to bogus errors.

Of note, this forbade `unit sub MAIN($x where { $x > 1 }); ...` - that is, any use of a `where` in a blockless sub MAIN. After some fiddling, I couldn't work out what useful purpose it served, and no spectests become unhappy as a result of removing it, so I'll consider it a thinko.
15:24
ast: 2b3eec7 | jnthn++ | S06-other/main-semicolon.t:
Tests for RT #127785.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127785
dalek p: e9e34f4 | (Pawel Murias)++ | t/nqp/019-chars.txt:
Add missing file.
15:42
unmatched} m: use nqp; my $v = Str; say nqp::isnull($v) 15:43
camelia rakudo-moar 86843a: OUTPUT«0␤»
unmatched} m: use nqp; my $v = Nil; say nqp::isnull($v)
camelia rakudo-moar 86843a: OUTPUT«0␤»
unmatched} When does isnull return 1?
m: use nqp; say nqp::isnull(nqp::null()) 15:44
camelia rakudo-moar 86843a: OUTPUT«1␤»
unmatched} Ah, I see.
jnthn m: use Test; eval-lives-ok '(;)'; eval-lives-ok '(;;)' 15:53
camelia rakudo-moar 86843a: OUTPUT«(signal XFSZ)Non-QAST node visited BOOTInt␤Weird node visited: BOOTInt␤Resultchild 0 can't returns! BOOTInt␤- QAST::Stmts (;)␤ - QAST::Stmt :final (;)␤ - 0␤␤Non-QAST node visited BOOTInt␤Weird node visited: BOOTInt␤Resultchild 0 can'…»
jnthn
.oO( Xtremely F... SiZable )
[Coke] having a problem with perl6-docs's bin/p6doc: there's a REPO line here: 16:00
github.com/perl6/doc/blob/master/bin/p6doc#L24 16:01
that is returning a bunch of directories for me that are NOT the perl6 I'm running with.
unmatched} 0.o 16:04
That returns an empty list on my box
[Coke] so, that's the difference on doc#714
unmatched} m: say ($*REPO.repo-chain()>>.Str X~ </doc/>).grep: *.IO.d
camelia rakudo-moar 86843a: OUTPUT«()␤»
[Coke] I'm probably getting the Type::Str from my really old perl6 install that I'm not using anymore.
(that other perl6 isn't even in my path!) 16:05
unmatched} m: say $*REPO.repo-chain».Str
camelia rakudo-moar 86843a: OUTPUT«(/home/camelia/.perl6 /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::AbsolutePath<53701584> CompUnit::Repository::NQP<44343416> CompUnit::Repos…»
[Coke] also, that probably shouldn't be so fixated on doc/
(not sure how the non string entries there relate to finding docs) 16:06
dalek kudo/nom: 0d491be | jnthn++ | src/Perl6/Optimizer.nqp:
Avoid an infinite loop in optimizer.

Also make some debug output only show if debugging is enabled.
16:12
kudo/nom: 59b7e51 | jnthn++ | src/Perl6/Actions.nqp:
Make sure we don't stick a 0 into the AST.

Instead, put a Nil there if we have an empty statement.
ast: 4f0f994 | jnthn++ | integration/weird-errors.t:
Tests for RT #127473.
16:13
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127473
lizmat waves from Cologne 16:21
unmatched} \o
lizmat jnthn++ # fruitful Perl 6 day so far!
jdv79 what's in Cologne? 16:22
jnthn His smell. 16:23
lizmat: Yeah, I need one more to be at 10 RTs, then think I'll rest :)
jdv79 ha ha 16:24
lizmat jdv79: Niederrhein Perl Mongers meeting 16:28
lizmat_ jnthn: could your Optimizer fixes have fixed RT #128655 by any chance? 16:32
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128655
jnthn Hugely unlikely.
travis-ci NQP build passed. Pawel Murias 'Add missing file.' 16:37
travis-ci.org/perl6/nqp/builds/146418676 github.com/perl6/nqp/compare/eaaf6...e34f4bc6db
lizmat_ jnthn: indeed, still there :-( 16:38
jnthn That one seems a bit more involved. 16:42
jnthn is still a little tired (though less so than the last couple of days :)) and has been picking of medium difficulty bugs today :) 16:43
[Coke] RT: 1313; @LARRY: 2; CONC: 7; GLR: 5; JVM: 67; LHF: 1; LTA: 77; NEW: 861; NYI: 28; OSX: 6; PERF: 16; POD: 9; PRECOMP: 8; RFC: 22; SEGV: 24; STAR: 1; TESTNEEDED: 10; TODO: 8; UNI: 10; UNTAGGED: 652; WEIRD: 3 16:50
unmatched} OK, seems Nil can't be a value sent via a Channel 16:54
'cause .poll uses it to indicate no value is in the channel
unmatched} rejects rt.perl.org/Ticket/Display.html?id=127648 17:00
That was a bit anticlimatic, but at least I learned a bit about Channels :) 17:01
lizmat unmatched} : also, Nil indicates the absence of a value, so that seems to be a little bit weird to want to be able to send that through a channel 17:02
TimToady Nil is not a value, it's the absence of a value
yoleaux2 15 Jul 2016 14:13Z <[Coke]> TimToady: - we've started tagging RTs that probably need design review with [@LARRY]; one more thing for you to look at if you get some time. other @larrys will pitch in as well. (many more tags to come)
lizmat dinner&
dalek kudo/nom: 68afa3f | jnthn++ | src/Perl6/Actions.nqp:
Correct handling of -> ASubsetType:D $x { }.

We took the base type of the definiteness type, and just assumed it was already a simple nominal type. Now it is further analyzed, which fixes the compilation and behavior of the above construct.
17:06
ast: b15102e | jnthn++ | S12-subset/subtypes.t:
Tests for RT #127394.
17:07
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127394
TimToady dinner &
nine jnthn: so that's number 10?
jnthn Indeed. 17:08
And I'm tired and hungry, so that's a good stopping point :)
unmatched} jnthn++ bug fixing \o/
nine jnthn: congratulations :)
[Coke] jnthn++ 17:17
nine my %a = a => {foo => 1}, b => {bar => 2}; say %a.values.first: *{"bar"}:exists 17:49
m: my %a = a => {foo => 1}, b => {bar => 2}; say %a.values.first: *{"bar"}:exists
camelia rakudo-moar 68afa3: OUTPUT«===SORRY!=== Error while compiling <tmp>␤You can't adverb ␤at <tmp>:1␤------> 2}; say %a.values.first: *{"bar"}:exists⏏<EOL>␤ expecting any of:␤ pair value␤»
nine Does this qualify at least as an LTA error message?
lizmat so, what are you trying to do there ? 17:52
nine lizmat: this: say %a.values.first: { $_{"bar"}:exists } 17:53
lizmat so, a HoH ?
nine yes 17:55
lizmat m: my %a = a => {foo => 1}, b => {bar => 2}; say %a.values.first: { $_<bar>:exists } 18:06
camelia rakudo-moar 68afa3: OUTPUT«{bar => 2}␤»
lizmat nine: agree, LTA
[TuxCM] This is Rakudo version 2016.07.1-27-g68afa3f built on MoarVM version 2016.07-4-g236058a 18:07
test 14.948
test-t 7.942
csv-parser 16.241
MTA
unmatched} Wooooo \o/
lizmat cool!
nine Yeah! 18:20
timotimo nice 18:24
perlpilot I like how the numbers are getting gradually smaller, but one day I expect that the decimal point will move to the left too ;) That will be an awesome day 18:29
unmatched} Because we'll have 30GHz cores? :D 18:31
timotimo yup :3
nine A quick and totally scientific extrapolation shows that in about a year we will reach negative runtimes for test-t. Take that TheDamian!
timotimo nah, the amount of ghz isn't going to increase very much any more
unmatched} Didn't they make light-based (as opposed to electron-based) cores X months ago?
by make I mean in a lab, not for sale
perlpilot sounds familiar 18:32
But the bottleneck will still be at the light/electron conversion point 18:33
unmatched} www.engadget.com/2015/12/23/resear...processor/
Well, if you can make a photonic core, you can probably make photonic everything :) 18:34
.oO( photonic torpedo )
18:35
skids The bottleneck will be the speed of light. At 4GHz a signal can only travel 74mm across a chip, whether it is made of light or of electrons. 18:36
(in one clock cycle)
perlpilot Well ... we keep saying "the bottleneck", but there will likely be several ;)
unmatched} The solution seems obvious. Scientists just need to increase the speed of light. 18:37
Which will happen in 2208
perlpilot "Scientists today built the first tachyonic computer core. It obtains huge speed gains by sending particles backwards in time" 18:38
unmatched} I'm more betting on something coming out of the entanglement than tachions :D 18:40
perlpilot That could make SIMD very very fast :) 18:41
But ... who knows what the future will bring?
unmatched} Anti-biotic resistant superbugs that'll wipe us all out, of course :) 18:42
skids That hardware can't "just get faster forever" is a good thing. It will put a stop to the ever growing pile of cruft and force things to be distilled down a bit. 18:43
jdv79 maybe
perlpilot unmatched}: ... and leave skynet as the dominant "life form" on earth. 18:44
unmatched} :)
perlpilot skids: you underestimate the power of humans to really screw things over ;>
skids No, I just appreciate the power of piles of crap to collapse unde rtheir own weight :-) 18:45
jdv79 yeah, thats a bit more optimistic than id count on
perlpilot "Astronomers today have identified a new class of black hole that appears to be made entirely from the excrement of a near-by star cluster" 18:46
dalek kudo/nom: d789da1 | niner++ | src/core/CompUnit/Repository/Installation.pm:
Implement CompUnit::Repository::Installation::installed
18:57
nine stmuk: ^^^
m: my %installed = $*REPO.next-repo.next-repo.next-repo.installed().map({$_.meta<name> => $_}); say %installed<CORE>.content("lib/Test.pm6").get 19:04
camelia rakudo-moar d789da: OUTPUT«use MONKEY-GUTS; # Allow NQP ops.␤»
tbrowder ref nqp: I notice I can do "if $var ~~ $regex" and "unless $var ~~ $regex" but I can't do "if $var !~ $regex" (or "if $var !~~ $regex)"; am I doing something wrong, or is the "!" form not available? 19:06
nine I dare say it's just not available 19:07
unmatched} nqp: my $re := /zoo/; my $var := "foobar"; say("meow") if !($var ~~ $re); 19:08
camelia nqp-moarvm: OUTPUT«meow␤»
unmatched} The !~~ is done in perl 6: github.com/rakudo/rakudo/blob/nom/...Mu.pm#L810 19:09
tbrowder aha, the joy of parens, but that seems weird after going parenless most everywhere 19:10
perlpilot read that as "... going pantless most everywhere" at first glance
tbrowder probably a precedence thing
perlpilot remember what NQP stands for :) 19:11
tbrowder yepper!
thnx all
perlpilot tbrowder: on the plus side, I bet you could add !~~ to nqp and no one would object much. 19:12
unmatched} would 19:13
tbrowder raison?
unmatched} More things you add. More thinks you have to maintain, document, and debug. 19:14
perlpilot unmatched}: but the impedence mismatch between Perl 6 and NQP would shrink, making it easier for Perl 6 people to contribute to the compiler :)
unmatched} heh 19:16
tbrowder nice to hear a bit of electrical talk, I grew up loving to work with analog computers
[Coke] perlpilot: does adding more ops to nqp, in general, slow nqp down? 19:30
travis-ci Rakudo build errored. Stefan Seifert 'Implement CompUnit::Repository::Installation::installed' 20:26
travis-ci.org/rakudo/rakudo/builds/146462889 github.com/rakudo/rakudo/compare/6...89da1b3022
Zoffix (just a timed out JVM on Mac) 20:46
perlpilot [Coke]: good question. 21:04
jnthn Adding a !~~ to NQP wouldn't have any noticable performance impact, no :) 21:32
Zoffix $ ./perl6-m -e 'dd run(:out, "false").out.close' 23:08
Proc.new(in => IO::Pipe, out => IO::Pipe.new(:path(""),:chomp), err => IO::Pipe, exitcode => 1, pid => Any, signal => 0)
How is that returning a Proc? Here it seems to be returning a Mu: github.com/rakudo/rakudo/blob/nom/...le.pm#L122 23:09
Ehhh, never mind. It's in IO::Pipe: github.com/rakudo/rakudo/blob/nom/...Pipe.pm#L3 23:50
Major brainfart :(