TimToady m: say WHAT (|42) 00:02
camelia rakudo-moar be7ce0: OUTPUT«(Slip)␤»
TimToady arguably, that could just return 42
I wonder how many single-element slips we generate on the average day... 00:03
dalek ast: bc8fa4f | TimToady++ | S04-statements/for.t:
test for RT #123072

  "for loop properly sinks final statement method call"
00:59
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123072
gfldex m: my %multi-dim; %multi-dim{1;2;3} = 42; dd %multi-dim{1;2;3} 01:14
camelia rakudo-moar be7ce0: OUTPUT«(42,)␤»
gfldex m: my %multi-dim; %multi-dim{1;2;3} = 42; dd %multi-dim{1;2;3}.WHAT 01:15
camelia rakudo-moar be7ce0: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at <tmp> line 1␤␤»
gfldex m: my %multi-dim; %multi-dim{1;2;3} = 42; dd %multi-dim{1;2;3}.^nameT
camelia rakudo-moar be7ce0: OUTPUT«Method 'nameT' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at <tmp> line 1␤␤»
gfldex m: my %multi-dim; %multi-dim{1;2;3} = 42; dd %multi-dim{1;2;3}.^name
camelia rakudo-moar be7ce0: OUTPUT«"List"␤»
gfldex i don't think that should be a list
awwaiid lizmat: in your recent REPL.pm changes, I am surprised to see the threading bit -- is there a way to catch the SIGINT without that, or what does it add? 01:27
lizmat: ok, now I've read the previous irc and your comments on 128900 and understand better. Still not quite all the way understand though 01:41
dalek ast: 63c1f00 | TimToady++ | S02-types/pair.t:
test for RT #128860

  "List.invert maps via a required Pair binding"
01:54
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128860
dalek kudo/nom: baeabb4 | TimToady++ | src/core/List.pm:
Improve message on (1,2,3).invert to mention Pair

Binding of the map routine internally now requires list elements to bind as Pair. Fixes RT #128860, insofar as it improves the error message.
  (The alternate approach of inserting a CATCH into the map closure could in
theory produce an even better message, but it appeared to slow things down more than the Pair binding approach.)
Also, we now propagate is-lazy correctly through .invert and .antipairs. Note that we cannot make the degenerate case of .invert the same as .antipairs,
  because .invert must expand list values into multiple antipairs. In any
c5eb876 | (Wenzel P. P. Peppmeyer)++ | src/core/hash_slice.pm: implement :exists on multi-dim assoc subscript literals
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128860
ShimmerFairy ooc, is there an easy way to ask for a particular Method object from a class, without resorting to the MOP? That is, I know I can do Foo.^methods.grep(*.name eq 'bar') or whatnot, but it'd be nice if it were easier to do, e.g. &Foo::bar for example. 02:59
I know Foo::bar won't work because you can put a 'sub bar' in a class, but something like that would be nice :) 03:03
TimToady if only we had mechanisms for adding syntactic sugar to the language... ;) 03:05
ShimmerFairy And I also just remembered that Foo."bar"() is a thing too, and keeping a list of strings would be easier :P 03:13
gfldex m: class C { multi method m1 {}; multi method m2 {} }; dd C::.keys 03:14
camelia rakudo-moar baeabb: OUTPUT«().Seq␤»
ShimmerFairy TimToady: but yeah, I can't wait for slangs and especially macros to get more fleshed out and fully-featured :)
ShimmerFairy still thinks slangs and macros should be intertwined like grammars+actions in most other cases, fwiw 03:15
gfldex i did expect .keys to return a list of stuff or Any
ShimmerFairy m: class C { method m1 {}; method m2 {} }; dd C::.keys # just checking if it's the multis by chance 03:17
camelia rakudo-moar baeabb: OUTPUT«().Seq␤»
TimToady methods never go into the package namespace unless declared our 03:19
and if you don that, they aren't installed in the metaclass 03:20
*do
gfldex so many things to doc, so little time…
ShimmerFairy Ah, interesting. I suppose the reason why .^methods() feels LTA is just because I don't think Method objects should need MOP fiddling, since you can access other kinds of Routines by just &foo. :P 03:21
TimToady that's the nice thing about lexicals, you can treat them as static due to early binding even when they're anonymous; methods are late binding, and classes can also be anonymous, so there's no consistent way to find a name other than through the metaclass 03:27
meaning the lexical scopes themselves are anonymous, unless you count OUTER:: 03:28
but you don't need an object to know which outer lexical scopes to search 03:29
ShimmerFairy makes sense. And like you said, there's always the possibility of syntactic sugar you can add yourself :) . .oO(Foo.^&bar ?) 03:33
[Tux] This is Rakudo version 2016.07.1-174-gbaeabb4 built on MoarVM version 2016.07-18-g2f269d8 08:59
csv-ip5xs 10.060
test 15.262
test-t 7.457
csv-parser 16.341
gfldex @designers: FYI: github.com/perl6/doc/commit/0dc31dfd40 09:07
util/ignored-methods.txt may very well contain mistakes (or may get some in the future) 09:08
kudo/nom: b76ffbb | lizmat++ | src/core/hash_slice.pm:
Merge pull request #835 from gfldex/multidim-assoc-exists

implement :exists on multi-dim assoc subscript literals
ast: e0d318a | (Wenzel P. P. Peppmeyer)++ | S32-hash/exists-adverb.t:
add test for :exists on multi-dim assoc subscript literals
ast: 922ee0d | lizmat++ | S32-hash/exists-adverb.t:
Merge pull request #139 from gfldex/multidim-assoc-exists

add test for :exists on multi-dim assoc subscript literals
jnthn ShimmerFairy: Foo.^methods.grep(*.name eq 'bar') might, if you're just after the "closest" method, be replaced by Foo.^lookup('bar') 10:06
ShimmerFairy jnthn: ah, that seems shorter :) . And yes, I'd more-or-less prefer similar MRO to what occurs normally :) 10:07
jnthn That'll get you it 10:08
There's also Foo.^find_method('bar')
lookup = look this method up, giving me the declared Method object from the class
find_method = give me something that, if I inovke it, would do the same thing as calling the method" 10:09
In a boring class with a normal method they will give the same answer. 10:10
ShimmerFairy jnthn: I'm guessing the find_method version has the original object "attached" to it in some way, then? Or is that not it?
jnthn But if you do it with a role, lookup will give you back a Method object (good for introspection), while find_method will give you back something that, when invoked, puns the role and then invokes
ShimmerFairy ah 10:11
jnthn No, we don't do attachment of that find at the MOP level
*of that kind
Other MOP modules will leave lookup alone (unless they are especially antisocial :P) but overriding find_method is a common trick :)
ShimmerFairy So the difference comes in where the metaobject needs extra steps to give you an invokable thing (e.g. role punning) 10:13
lizmat m: class A { method a(\SELF:) { SELF = Mu } }; my $a = A.new; dd $a; $a.a; dd $a # jnthn 10:14
camelia rakudo-moar b76ffb: OUTPUT«A $a = A.new␤Mu $a = Mu␤»
lizmat jnthn: is there a reason why the above doesn't work if the $a is a private attribute ? 10:15
reason I'm asking, is I'd like to be able to reset $!todo if e.g. reify-at-least finds out it has exhausted $!todo 10:16
now, the callers seem to be responsible for this, which I think is a bad design :-)
jnthn ShimmerFairy: Yeah, pretty much 10:27
"the callers seem to be responsible" - where, ooc? 10:29
Note that if said private attribute was bound there'll be nothing to bind in to
I'm pretty sure assigning to the Scalar holding an object's invocant isn't good design either. :P 10:30
uh, *nothing to assign in to
lizmat jnthn: e.g. github.com/rakudo/rakudo/blob/nom/...st.pm#L470 10:38
I think it would be simpler if "reify-until-lazy" would reset its object when it was fully reified 10:39
instead of the caller needing to do this (and in many cases not doing that, thus selecting the slower iterator when it isn't necessary)
jnthn Maybe, but I suspect we bind $!todo in so many places... 10:44
dalek kudo/nom: e4d5384 | lizmat++ | CREDITS:
Add gfldex++ to CREDITS
10:45
nine jnthn: will find_method also return a FALLBACK? 11:34
dalek kudo/nom: 6dcee99 | lizmat++ | src/core/ (9 files):
.push-all *always* returns IterationEnd

So mark as such in the Signature. Currently, there seems to be no difference in JITting between this way and just returning IterationEnd. But this should hopefully change sometime in the future. In any case, I think it improves readability.
11:48
kudo/nom: 32902f2 | lizmat++ | src/core/ (4 files):
.sink-all *always* returns IterationEnd
11:59
gfldex is submethodness introspectable? 12:03
lizmat ~~ SubMethod ?? 12:04
*Submethod actually
m: class A { submethod a {} }; say A.^methods[0] ~~ Submethod #gfldex 12:05
camelia rakudo-moar e4d538: OUTPUT«True␤»
gfldex thx
lizmat m: class A { method a {} }; say A.^methods[0] ~~ Submethod #gfldex
camelia rakudo-moar e4d538: OUTPUT«False␤»
gfldex is there any difference between a method and a submethod, both from user side and the compiler, sans the name? 12:08
beside the none-inheritance of submethods 12:09
lizmat I think that's the only difference 12:15
looking at te code, both Method and Submethod are just Routines, with a different gist
*the
at least on the P6 level
dalek kudo/nom: e89721d | lizmat++ | / (2 files):
native array's push-all only returns IterationEnd
12:17
masak gfldex: the "sub" refers to "shouldn't assume there's a fully-built `self`" and the "method" refers to "called like a method"
gfldex: near as I can figure out, submethods exist because BUILD needs to be one.
gfldex: DESTROY used to be on that list too, but DESTROY is useless. 12:18
lizmat afk& 12:23
gfldex should prefix:<||>(Positional) return SemiList (to be invented) for %h{||@a} and @a{||@b} ? 12:29
m: say LoL
camelia rakudo-moar 32902f: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared name:␤ LoL used at line 1␤␤»
dalek p/no-eval: 6866e12 | (Pawel Murias)++ | src/vm/js/ (4 files):
[js] Start of transition towards using nqp::forceouterctx. Fails test 24.
12:31
p/no-eval: 8b84c39 | (Pawel Murias)++ | src/vm/js/ (5 files):
[js] When evaling up a context less codeRef make it use a wrapped forced ctx.
gfldex i found %cache{||some-capture.Array} very useful in github.com/gfldex/perl6-rakudo-sli...ched.p6#L9 12:33
dalek p/no-eval: 4377458 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Don't attach the setting setup code on CodeRefs.
12:38
masak lizmat: got some bad news -- splice is broken in 007 again 13:33
lizmat: the short golf I used as an informal test works, but the use of splice in the 007 code base fails.
lizmat: stand by for new failing golfed version. 13:34
m: my @a; @a.splice(0, 0, "x"); say +@a 13:36
camelia rakudo-moar e89721: OUTPUT«0␤»
masak m: my @a; @a.splice(0, 0, "x"); @a.splice(1, 0, "y")
camelia rakudo-moar e89721: OUTPUT«Offset argument to splice out of range. Is: 1, should be in 0..0␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
masak lizmat: ^
I'm happy to again be enough at the forefront of Perl 6 app development to be running headlong into these things :>
thanks also go out to TravisCI, which always tests against latest Rakudo, forcing me to upgrade to bleeding-edge sometimes ;) 13:37
masak submits rakudobug
heck, let's re-open RT #128736 13:38
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128736
masak need to conserve our natural numbers a little
oh, it wasn't closed, it was needstest 13:40
...test number 10 is TODO-passed in t/spec/S19-command-line/repl.rakudo.moar -- can we unmark it TODO? 13:44
happily, re-applying the previous workaround to 007 has it passing again on Rakudo HEAD
travis-ci Rakudo build errored. Elizabeth Mattijsen 'native array's push-all only returns IterationEnd' 13:57
travis-ci.org/rakudo/rakudo/builds/152036785 github.com/rakudo/rakudo/compare/3...9721d6d69c
buggable ✓ [travis build above] One job failed due to the timeout. No other failures.
jnthn nine: Yes, or at least, if there is a FALLBACK find_method will return something that tries to delegate there. 15:17
AlexDaniel buggable: hehe :) 16:00
buggable++
dalek p: 2df0a06 | TimToady++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
charrange without :m should avoid ordat/ordfirst

Synthetics wrongly look like they're in a character range if we strip the combining information, so instead we'll just use the raw char code, and the synthetic will naturally fall out of the range by virtue of being negative. Fixes RT #128550.
19:20
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128550
kudo/nom: fe90be0 | TimToady++ | tools/build/NQP_REVISION:
bump NQP to get fix for RT #128550
19:23
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128550
dalek ast: 172f694 | TimToady++ | S15-nfg/regex.t:
update charrange tests for RT #128550

Removed todo on base case; also added test for :i case, which had also been doing it wrong.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128550
TimToady m: say /^<[a..z]>$/.ACCEPTS("n\x[308]"); 19:32
camelia rakudo-moar fe90be: OUTPUT«Nil␤»
TimToady m: say /:i ^<[a..z]>$/.ACCEPTS("n\x[308]");
camelia rakudo-moar fe90be: OUTPUT«Nil␤»
TimToady m: say /:i:m ^<[a..z]>$/.ACCEPTS("n\x[308]");
camelia rakudo-moar fe90be: OUTPUT«「n̈」␤»
TimToady m: say /:m ^<[a..z]>$/.ACCEPTS("n\x[308]"); 19:33
camelia rakudo-moar fe90be: OUTPUT«「n̈」␤»
TimToady my initial scan for other occurrences of ordat didn't turn up any other obvious deficiencies 19:34
travis-ci Rakudo build passed. TimToady 'bump NQP to get fix for RT #128550' 20:15
travis-ci.org/rakudo/rakudo/builds/152093416 github.com/rakudo/rakudo/compare/e...90be01c654
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128550
lizmat masak: will look at the .splice issue tomorrow 22:12
masak \o/ 22:14
is there a way for the RT ticket to be marked up with "needs to tests"? :) 22:15
jnthn There's a testneeded tag
lizmat anyways, today was an eventful day for us 22:16
1. we broke the record for number of 50km+ rides in the month of August
2. we broke the total km cycled for the month of August
3. it was the bloodiest trip we've ever made 22:17
on account of me hitting the concrete at 25km / hour
jnthn Ouch!! :(
masak :( 22:18
lizmat yeah, pretty will be looking more oddly at me for the coming 3 weeks than they normally do :-)
anyways, nothing broken, just a lot of scratches and bruises
masak lizmat: here's hoping for a speedy recovery
"needs two* tests"
jnthn Glad you're at least in shape to be on IRC the evening after it...
brrt oh, ouch indeed
lizmat yeah... also, we still needed to cycle 25km after this happened 22:19
and that was no problem..
jnthn o.O
lizmat did make me feel like a professional cyclist doing the Tour de France a bit :-)
gfldex you ran home? 22:20
lizmat cycled home
cleaned up, got a checkup at the first aid station at the hospital
anyways, 22:21
going to try to get some sleep now...
so, good night, #perl6-dev!
gfldex sweet dreams
jnthn Glad you're safe. Rest well!
lizmat thanks!
gfldex another reason to go to mars. Less gravity. 22:22
brrt sleep well