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 nothingat <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 Rangeat <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, orby 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 blockat <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 blockat <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 blockat <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 blockat <tmp>:1------> sub foo() is rw{ return 1 }⏏; say 42Missing 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 blockat <tmp>:1------> unit sub foo() is rw{ return 1 }⏏; say 42Missing 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 blockat <tmp>:1------> unit sub MAIN() is rw{ return 1 }⏏; say 42Missing 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 blockat <tmp>:1------> unit sub MAIN() is rw{ return 1 }⏏; say 42Missing 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 rowat <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 blockat <tmp>:1------> sub MAIN() is rw{ return 1 }⏏; say 42Missing 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 BOOTIntWeird node visited: BOOTIntResultchild 0 can't returns! BOOTInt- QAST::Stmts (;) - QAST::Stmt :final (;) - 0Non-QAST node visited BOOTIntWeird node visited: BOOTIntResultchild 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 :( |