»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
TimToady "no smoking" is English, "yes smoking" is not 00:01
timotimo TimToady: was "streem i gather" a joke on gather/take and stream-oriented programming? 00:03
TimToady no
or if so, it was subconscious :) 00:04
00:05 aborazmeh joined, aborazmeh left, aborazmeh joined
lizmat "use smoking" could be English, but is most likely not :-) 00:05
too bad "ok" is taken by Test.pm 00:06
00:14 bin_005 joined 00:17 BenGoldberg joined
dalek kudo/glr: 7d85cf9 | TimToady++ | src/core/Hash.pm:
Revert "Fix Hash.perl creating code that throws an error when EVALing"

This reverts commit 979d2d41b9b0882983ae16952eab7c35542ddc76.
  ${ } parses fine as long as you're actually producing a hash literal.
00:24
TimToady m: my $a = {}; $a.perl.say; {}.perl.say; EVAL '${}';
GLRelia rakudo-moar d6049e: OUTPUT«{}.item␤{}␤5===SORRY!5=== Error while compiling EVAL_0␤Unsupported use of ${}; in Perl 6 please use $()␤at EVAL_0:1␤------> 3${}7⏏5<EOL>␤»
camelia rakudo-moar 28faf1: OUTPUT«{}␤{}␤5===SORRY!5=== Error while compiling EVAL_0␤Unsupported use of ${}; in Perl 6 please use $()␤at EVAL_0:1␤------> 3${}7⏏5<EOL>␤»
TimToady m: my $a = {}; $a.perl.say; {}.perl.say; EVAL '${ :foo }';
GLRelia rakudo-moar d6049e: OUTPUT«{}.item␤{}␤»
camelia rakudo-moar 28faf1: OUTPUT«{}␤{}␤5===SORRY!5=== Error while compiling EVAL_0␤Unsupported use of ${ :foo }; in Perl 6 please use $( :foo )␤at EVAL_0:1␤------> 3${ :foo }7⏏5<EOL>␤»
TimToady m: my $a = {}; $a.perl.say; {}.perl.say; EVAL '${ foo => 42 }';
GLRelia rakudo-moar d6049e: OUTPUT«{}.item␤{}␤»
camelia rakudo-moar 28faf1: OUTPUT«{}␤{}␤5===SORRY!5=== Error while compiling EVAL_0␤Unsupported use of ${ foo => 42 }; in Perl 6 please use $( foo => 42 )␤at EVAL_0:1␤------> 3${ foo => 42 }7⏏5<EOL>␤»
TimToady we just need to handle the degenerate case 00:28
dalek kudo/glr: 769c5b3 | TimToady++ | src/Perl6/Grammar.nqp:
handle degenerate case of empty ${}
00:29
ast/glr: 82d5a9e | skids++ | S02-types/subset.t:
Use an equally valid implementation of one test.

What GLR broke here will definitely be addressed, and isn't related to the tested functionality. So, tweak the test in the interest of reducing noise.
00:31
00:31 pmurias left 00:37 aborazmeh left 00:39 lizmat left
skids m: my \a = (); a.perl.say; my $a = (); $a.perl.say; # TimToady: I take that to mean this behavior is staying? 00:52
GLRelia rakudo-moar 769c5b: OUTPUT«()␤$()␤»
camelia rakudo-moar 28faf1: OUTPUT«()␤$( )␤»
dalek kudo-star-daily: ed5ee22 | coke++ | log/ (9 files):
today (automated commit)
00:57
01:00 aborazmeh joined, aborazmeh left, aborazmeh joined
dalek ast/glr: b7dfe8c | skids++ | S06-currying/ (2 files):
Adjust tests to GLR flattenning behavior
01:05
01:13 lizmat joined 01:17 rurban joined
lizmat .tell FROGGS I'm curious as to why you applied 9f581101ad to glr, when I reverted it later in nom 01:18
yoleaux lizmat: I'll pass your message to FROGGS.
skids m: say ((1,2) xx 2).perl; 01:26
GLRelia rakudo-moar 769c5b: OUTPUT«((1, 2), (1, 2)).iterator␤»
camelia rakudo-moar 28faf1: OUTPUT«((1, 2), (1, 2))␤»
01:26 aborazmeh left
skids m: my @a = (1,2) xx 2; say @a.perl; 01:27
GLRelia rakudo-moar 769c5b: OUTPUT«[$(1, 2), $(1, 2)]␤»
camelia rakudo-moar 28faf1: OUTPUT«[1, 2, 1, 2]<>␤»
skids m: my @a := (1,2) xx 2; say @a.perl;
GLRelia rakudo-moar 769c5b: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Seq'␤ in block <unit> at /tmp/JYE4DjeRwL:1␤␤»
camelia rakudo-moar 28faf1: OUTPUT«((1, 2), (1, 2))␤»
lizmat jnthn TimToady : re irclog.perlgeek.de/perl6/2015-08-21#i_11094101 , it seems to me that "is rw" is used for the side-effect of creating a list 01:30
maybe we should have an "is list" at least now as an alias, to indicate we just want a list? 01:31
skids lizmat: Array, actually. 01:33
lizmat ab6tract++ # for spotting error of my ways in irclog.perlgeek.de/perl6/2015-08-21#i_11094316 01:35
skids: no, List, as per jnthn description at irclog.perlgeek.de/perl6/2015-08-13#i_11051703 01:36
skids Oh, right you are. 01:37
Is it possible to write-protect uncontainerized things in a List? 01:39
lizmat I'd like to get ack to the first arg rule
in my view: my @a = (1,2,3) # [$(1,2,3)] 01:40
my @a = |(1,2,3) # [1,2,3]
my @a = 1,2,3 # syntactic sugar for |(1,2,3)
so, a () or [] would *never* flatten automagically 01:41
skids I think array assignment is still "always flattens"?
lizmat if you need it flattened, prefix | is your friend
m: my @a = (1,2,3),(4,5) # no it is not when there's more than 1 arg
GLRelia ( no output )
camelia ( no output )
lizmat m: my @a = (1,2,3),(4,5); say @a.perl # no it is not when there's more than 1 arg
GLRelia rakudo-moar 769c5b: OUTPUT«[$(1, 2, 3), $(4, 5)]␤»
camelia rakudo-moar 28faf1: OUTPUT«[1, 2, 3, 4, 5]<>␤»
lizmat m: my @a = (1,2,3); say @a.perl # it currently *is* if there's only 1 arg, which I find confusing 01:42
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2, 3]␤»
camelia rakudo-moar 28faf1: OUTPUT«[1, 2, 3]<>␤»
skids Hrm. I can't keep track then. I thought that was one of the more constant GLR things.
lizmat you mean, not flattening? 01:44
well, 1 exception was made: the 1 arg rule
ShimmerFairy m: my @matrix = [1,2],[3,4]; my @row = @matrix[0]; say @row.perl
GLRelia rakudo-moar 769c5b: OUTPUT«[$[1, 2]]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2]]<>␤»
skids No that array assingment was one of the remaining automatic flattenning areas.
01:44 ilbot3 left
ShimmerFairy I feel like GLRelia should've returned [1, 2] , unless that somehow doesn't count for the 1-arg rule 01:45
lizmat m: my @matrix = [1,2],[3,4]; my @row = |@matrix[0]; say @row.perl
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2]␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iCu3QpFWkN␤Arg-flattening | is only valid in an argument list␤at /tmp/iCu3QpFWkN:1␤------> 3my @matrix = [1,2],[3,4]; my @row = |7⏏5@matrix[0]; say @row.perl␤»
lizmat ShimmerFairy: well, that's were the confusion comes in
(or a bug)
Perl 6 has done its best to hide the fact that we can have references 01:46
I think this is one case we need to rethink, and make things consistent
01:46 ilbot3 joined
lizmat so anything () or [] should be considered a reference in the P5 sense, and needs to be flattened explicitely if you need it flattened 01:47
ShimmerFairy lizmat: my guess is that that's a bug with array subscripting not acting as 1-arg, at least in some cases
lizmat m: my @matrix = [1,2],[3,4]; my @row = @matrix[0,1]; say @row.perl
GLRelia rakudo-moar 769c5b: OUTPUT«[$[1, 2], $[3, 4]]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2], [3, 4]]<>␤»
lizmat ShimmerFairy: ^^^ does that make sense?
m: my @matrix = [1,2],[3,4]; my @i = ^2; my @row = @matrix[@i]; say @row.perl 01:48
GLRelia rakudo-moar 769c5b: OUTPUT«[$[1, 2], $[3, 4]]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2], [3, 4]]<>␤»
lizmat m: my @matrix = [1,2],[3,4]; my @i = ^1; my @row = @matrix[@i]; say @row.perl # should this flatten ?
GLRelia rakudo-moar 769c5b: OUTPUT«[$[1, 2]]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2]]<>␤»
ShimmerFairy lizmat: I want to say yes, because the subscript is returning multiple things
m: my @a = [1,2,3,4]; say @a.perl
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2, 3, 4]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2, 3, 4]]<>␤»
ShimmerFairy ^ GLR is more DWIM in that regard, btw 01:49
lizmat ShimmerFairy: why would you do it that way? why not my @a = 1,2,3,4?
ShimmerFairy lizmat: because it's somewhat natural to encase a list in brackets. I found the "leave off the brackets" requirement in those places in Perl 6 was somewhat unnatural and took getting used to. 01:50
skids Yes I think it's been "we want this to work because it would be too surprising if it didn't" 01:52
ShimmerFairy So I think @matrix[0] not assigning how I expected is simply a bug, under 1-arg rule
skids Anyway if gist.github.com/jnthn/aa370f8b32ef...glr-p6-L66 still holds, and I'm guessing it does, it is correct.
I think that matrix[0] thing is because @matrix[0] is a 1-element list, gets iterated, and the $[1,2] assigned to the first slot. 01:55
lizmat from a teaching point of view, I think it's hard to explain the difference between @a[1], @a[1,2] and @a[@i] 01:56
especially if @i only has 1 element
ShimmerFairy m: my @m = [1,2],[3,4]; say @m[0].perl;
GLRelia rakudo-moar 769c5b: OUTPUT«$[1, 2]␤»
camelia rakudo-moar 28faf1: OUTPUT«[1, 2]␤»
ShimmerFairy m: my @m = [1,2],[3,4]; say @m[0].WHAT;
GLRelia rakudo-moar 769c5b: OUTPUT«(Array)␤»
camelia rakudo-moar 28faf1: OUTPUT«(Array)␤»
skids I actually think the single item rule is logical, and was swayed by TimToady's framing of it. 01:57
ShimmerFairy I don't think it'd be too hard to explain that @a[$x] behaves differently if it returns one thing or multiple (kinda like singular/plural in languages, perhaps) 01:58
skids But I think the interaction with MMD is a bit of a wart: 02:01
m: multi sub a (*@a) { "slurpy".say }; multi sub a ($a) { "one".say }; a(1); a(1,);
GLRelia rakudo-moar 769c5b: OUTPUT«one␤one␤»
camelia rakudo-moar 28faf1: OUTPUT«one␤one␤»
skids when: my @a = [1,2],; @a.perl.say;
m: my @a = [1,2],; @a.perl.say; 02:02
GLRelia rakudo-moar 769c5b: OUTPUT«[$[1, 2]]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[1, 2]]<>␤»
lizmat so, for the record: I'm not against breaking my @a = 1,2,3 02:03
skids It would be a really tiny wart if the whole thing didn't need so much explaining in the first place.
lizmat well, I think if we say () and [] do not flatten unless prefixed with |
that's a simple rule
ShimmerFairy that extra comma feels wrong to me in both examples. .oO(didn't we get rid of Parcel?) 02:04
skids I think the idea was that $ is the flattening-proofer.
(or .item)
Well, I could write 1,Slip() if it makes you happier :-) 02:06
lizmat with my proposal, you wouldn't need an extra comma ever :-) 02:09
ShimmerFairy m: my @a = [[1,2]]; say @a.perl 02:11
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[[1, 2]]]<>␤»
02:11 lizmat left
ShimmerFairy I wasn't expecting it to flatten that much there 02:12
skids Well, it is logically consistent at least. 02:14
02:14 lizmat joined
ShimmerFairy how so? 02:15
skids The array constructor sees an iterable, unwraps it, then the assignment sees an iterable, and unwraps it. 02:16
ShimmerFairy m: my @a = [[[1,2]]]; say @a.perl
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2]␤»
camelia rakudo-moar 28faf1: OUTPUT«[[[[1, 2]]]]<>␤»
skids Where with [1,2], the outermost iterable absorbs the unwrap.
ShimmerFairy I think @a = [[1,2]] not assigning [1,2] as one thing to @a is an error 02:18
skids I don't think it is under the current GLR design. 02:19
.oO(interesting duality: the $ that vaporizes to call methods directly on its contents is the very thing that stands rigid in the face of lists)
02:21
02:24 noganex joined 02:27 rurban left, noganex_ left
skids Well, it's consistent with the behavior of $$$$a :-) 02:30
02:34 mjgardner left
lizmat .tell ab6tract re irclog.perlgeek.de/perl6/2015-08-21#i_11096207 , .uniq looks like the Unix uniq command, but that actually works like .squish 02:34
yoleaux lizmat: I'll pass your message to ab6tract.
lizmat .tell abstract when that was pointed out, TimToady decided to rename .uniq to .unique to mark its difference from the uniq program 02:35
yoleaux lizmat: I'll pass your message to abstract.
raiph lizmat: what are the *downsides* to 1,2 is sugar for |(1,2) and (1,2) and [1,2] do not flatten unless prefixed with | ?
(cuz it sure sounds nice and simple) 02:36
lizmat I cannot think of any apart from needing to change people's minds 02:37
but I think *the* time to do is *now* during the GLR 02:38
because many people will need to get used to GLR related stuff anyway in the coming weeks
raiph lizmat: has it been proposed before and discussed by TimToady? 02:39
lizmat perhaps, but then we didn't have prefix | to flatten
ShimmerFairy If we tossed the one-arg rule, then 'for' would no longer be implemented simply as a map, for example 02:40
raiph m: my @a = 1,2; for |@a { .say } 02:41
GLRelia rakudo-moar 769c5b: OUTPUT«1␤2␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/daiIjBncDK␤Arg-flattening | is only valid in an argument list␤at /tmp/daiIjBncDK:1␤------> 3my @a = 1,2; for |7⏏5@a { .say }␤»
lizmat fwiw, I couldlive with for |@a {} 02:43
it makes the intent *very* clear
ShimmerFairy But that wouldn't change the fact that for would have to go back to its uglier implementation
raiph m: my @a = 1,[2]; for @a { .++.say }; for |@a { .++.say }; for @a,@a { .++.say }; for |@a,@a { .++.say }; for |@a,|@a { .++.say };
GLRelia rakudo-moar 769c5b: OUTPUT«1␤Method 'succ' not found for invocant of class 'Array'␤ in block <unit> at /tmp/z1fISVTSQy:1␤␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/aGPnm7rpxe:1␤------> 3my @a = 1,[2]; for @a { .++.say }; for |7⏏5@a { .++.say }; for @a,@a { .++.say }; f␤Arg-flattening | is only valid in an argument list␤at /t…»
raiph m: my @a = 1,[2]; for @a { .say }; for |@a { .say }; for @a,@a { .say }; for |@a,@a { .say }; for |@a,|@a { .say }; 02:44
GLRelia rakudo-moar 769c5b: OUTPUT«1␤2␤1␤2␤1 2␤1 2␤1␤2␤1 2␤1␤2␤1␤2␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/8790VmgV_7:1␤------> 3my @a = 1,[2]; for @a { .say }; for |7⏏5@a { .say }; for @a,@a { .say }; for |@a␤Arg-flattening | is only valid in an argument list␤at /tmp/…»
ShimmerFairy Getting rid of the one-arg rule would introduce a lot of unwarranted noise, and make some things (e.g. C<for>) harder to implement, all for the sake of a particular opinion on "consistency" 02:46
lizmat ShimmerFairy: could you give examples of unwarranted noise? I'm open to be swayed and change my opinion :-) 02:48
ShimmerFairy lizmat: everywhere you've typed | instead of single-arg is a place where I don't want to be forced to type it :) 02:49
lizmat: I think of the Slip-ifying operator as a way of saying "this is part of the same list", e.g. 1,2,|@a,4 ("@a is part of this list, not an independent element") 02:50
So requiring it for singular arguments feels silly
lizmat ?? 02:51
ah, you mean for |@a
well, I could also see "for @a {" as syntactic sugar for "for |@a {" 02:52
ShimmerFairy basically, I vastly prefer the single arg rule over requiring Slip as a singular argument :)
lizmat m: my @a = 1,2,3; for @a, @a { .perl.say }
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2, 3]␤[1, 2, 3]␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤2␤3␤1␤2␤3␤»
ShimmerFairy lizmat: as I understand it, that's how it is in the non-glr 'for' already, and that's something jnthn and co. want to not have anymore.
lizmat perhaps foreach @a,@a could be syntactic sugar for for |(@a,@a) 02:54
skids m: my @a = 1,2; say (|(@a,@a)).perl; 02:56
GLRelia rakudo-moar 769c5b: OUTPUT«([1, 2], [1, 2])␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bA9MQc2d62␤Arg-flattening | is only valid in an argument list␤at /tmp/bA9MQc2d62:1␤------> 3my @a = 1,2; say (|7⏏5(@a,@a)).perl;␤»
02:56 BenGoldberg left
lizmat my @a = 1,2; say (|@a,|@a).perl 02:57
m: my @a = 1,2; say (|@a,|@a).perl 02:58
GLRelia rakudo-moar 769c5b: OUTPUT«(1, 2, 1, 2)␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/y4Hl0VwGja:1␤------> 3my @a = 1,2; say (|7⏏5@a,|@a).perl␤Arg-flattening | is only valid in an argument list␤at /tmp/y4Hl0VwGja:1␤------> 3my @a = 1,2; say (|@a…»
raiph ShimmerFairy: If you prefer seeing something as independent, a singular thing, when given as a singular argument to a for, then why do you want it flattened?
lizmat m: my @a = 1,2; say (|@a xx 3).perl
GLRelia rakudo-moar 769c5b: OUTPUT«(1, 2, 1, 2, 1, 2).iterator␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sc_ZzFl9OG␤Arg-flattening | is only valid in an argument list␤at /tmp/sc_ZzFl9OG:1␤------> 3my @a = 1,2; say (|7⏏5@a xx 3).perl␤»
ShimmerFairy raiph: because if I say for @a { } , then obviously I want to loop over the elements of @a
lizmat hmmm..
m: my @a = 1,2; say (@a xx 3).perl
GLRelia rakudo-moar 769c5b: OUTPUT«([1, 2], [1, 2], [1, 2]).iterator␤»
camelia rakudo-moar 28faf1: OUTPUT«(1, 2, 1, 2, 1, 2)␤»
ShimmerFairy raiph: like I said, I vastly prefer single-arg over requiring a bunch of extra | symbols :) 02:59
raiph Earlier, you said, that in a list, you prefer that @a is an independent single thing unless you prefix it with |
ShimmerFairy raiph: that's different from single-arg though 03:00
raiph You say it is, and so it is, but I don't say it is, and so that vanishes :)
ShimmerFairy for @a { single arg applies, loops +@a times } for 1, @a { single arg doesn't, loops twice } simple :) 03:01
raiph Don't mind me too much though. I'm just admiring the view from lizmat's proposal. :)
03:01 pierrot joined
skids m: my @a = 1,2; say (|«(@a,@a)).perl; 03:01
GLRelia rakudo-moar 769c5b: OUTPUT«␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor this code using t…»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5y9MAonGeL␤Arg-flattening | is only valid in an argument list␤at /tmp/5y9MAonGeL:1␤------> 3my @a = 1,2; say (|7⏏5«(@a,@a)).perl;␤»
raiph for @a { no special rule } for 1, @a { no special rule } for |@ { no special rule } even simpler :) 03:02
ShimmerFairy Well, I'm firmly in "single-arg" territory (as I understand most others are), and there's nothing you can really do to sway me :) I find extra never-before-needed Slip coercions to be unnecessary for the sake of so-called "consistency" 03:03
ShimmerFairy has found recently that the "consistency" argument is pretty much always a terrible one, since everyone has a different idea on what that is 03:04
raiph Indeed. I've consistently held that view since I didn't. But my argument is the consistency argument. 03:05
:)
er, s/is/isn't/
lizmat lunch& 03:06
03:06 lizmat left
ShimmerFairy I personally much prefer the fact that @a = [1,2,3] DWIMs now, and that for STUFF { } is now literally just STUFF.map: { } (instead of jumping through hoops to pretend it is) 03:07
03:08 amurf joined
raiph m: my @a = |[1,2]; @a.elems.say 03:09
GLRelia rakudo-moar 769c5b: OUTPUT«2␤»
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Gv0ZaJ1dvJ␤Arg-flattening | is only valid in an argument list␤at /tmp/Gv0ZaJ1dvJ:1␤------> 3my @a = |7⏏5[1,2]; @a.elems.say␤»
raiph m: my @a = [1,2]; @a.elems.say
GLRelia rakudo-moar 769c5b: OUTPUT«2␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤»
raiph m: my @a = 1,2; @a.elems.say 03:10
GLRelia rakudo-moar 769c5b: OUTPUT«2␤»
camelia rakudo-moar 28faf1: OUTPUT«2␤»
ShimmerFairy raiph: Another tiny thing: you can still use | on single things if you want to under single-arg, but can't still use single-arg under required | :P
raiph ShimmerFairy: when you say "now", do you mean camelia or GLRelia?
ShimmerFairy GLRelia ("now" design-wise, not main-branch-wise ☺) 03:11
03:11 CQ_ joined
raiph ShimmerFairy: would you be willing to call how things currently are on GLRelia 03:12
now?
ShimmerFairy ?
03:13 amurf left
raiph ShimmerFairy: nvm 03:13
03:13 CQ left 03:14 CQ_ is now known as CQ
smls_ the single-arg rule doesn't change anything about @a = [1,2,3] now that [] no longer produces a containerized array, does it? 03:14
raiph ShimmerFairy: under a "required | for flattened single args" rule, you can still use single args -- you just omit the "otherwise required" | :) 03:15
ShimmerFairy smls_: I think it does, but admittedly I'm not sure
I've made my point about single-arg by this point, so I don't think there's much worth in me talking more on it :) I think I'll let the language designers have their turn, when they're next here. 03:16
smls_ @a = $[1,2,3] is affected by the single-arg rule though. (And I'm not sure I would call that a victory for DWIM'iness.) 03:17
After all, $() is meant to explicitly say "treat this as a single item", yet here it is basically ignored. 03:18
03:18 aborazmeh joined, aborazmeh left, aborazmeh joined
smls_ (Not arguing for repealing the single-arg rule; I don't really have a full picture of what DWIMs it gains and looses, so I'll trust TimToady & co. on it.) 03:21
raiph m: my @a = 1,2; my @b = [3,4]; my @c = $[5,6]; for @a,@b,@c { .perl.say } 03:29
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2]␤[3, 4]␤[$[5, 6]]␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤2␤[3, 4]␤Any␤Any␤»
dalek ast/glr: c8ba40a | skids++ | S15-nfg/long-uni.t:
Update initializer to GLR behavior of xx
03:31
raiph m: my @a = (1,2); @a.perl.say
GLRelia rakudo-moar 769c5b: OUTPUT«[1, 2]␤»
camelia rakudo-moar 28faf1: OUTPUT«[1, 2]<>␤»
raiph m: my @a = (1,2); @a.elems.say 03:32
GLRelia rakudo-moar 769c5b: OUTPUT«2␤»
camelia rakudo-moar 28faf1: OUTPUT«2␤»
03:32 smls_ left
raiph m: say (1,2).WHAT 03:34
GLRelia rakudo-moar 769c5b: OUTPUT«(List)␤»
camelia rakudo-moar 28faf1: OUTPUT«(Parcel)␤»
04:13 lizmat joined 04:20 kaare_ joined
lizmat drops a pin 04:35
raiph m: my @jan = 1..31; my @feb = 1..29; for @jan,@feb { .elems.say }; for $@jan { .elems.say }
GLRelia rakudo-moar 769c5b: OUTPUT«31␤29␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤31␤»
lizmat that looks like a bug :-) 04:36
m: my @jan = 1..31; my @feb = 1..29; for @jan.item { .elems.say } 04:37
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«31␤»
lizmat m: my @jan = 1..31; my @feb = 1..29; for [@jan] { .elems.say } 04:38
camelia rakudo-moar 28faf1: OUTPUT«31␤»
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
lizmat m: my @jan = 1..31; my @feb = 1..29; for $[@jan] { .elems.say }
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤»
raiph m: my @jan = 1..31; my @feb = 1..29; for [@jan] { .elems.say } 04:40
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«31␤»
lizmat m: my @jan = 1..31; my @feb = 1..29; for @jan[] { .elems.say } 04:41
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
lizmat m: my @jan = 1..31; my @feb = 1..29; for @jan[*] { .elems.say }
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
lizmat m: my @jan = 1..31; my @feb = 1..29; for [@jan[*]] { .elems.say }
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«31␤»
raiph m: my $jan = 1..31; my $feb = 1..29; for $jan { .elems.say } 04:42
GLRelia rakudo-moar 769c5b: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
camelia rakudo-moar 28faf1: OUTPUT«31␤»
04:46 khw left 04:56 azawawi joined
azawawi hi 04:56
yoleaux 12 Aug 2015 12:49Z <hoelzro> azawawi: I just wanted to share my experience on the matter. Pod6 is a bit more complex than Pod, so adding support to GH could be somewhat difficult. Not that you shouldn't try, of course =) For now I've been generating my README.md via Pod::To::Markdown
04:57 azawawi left, rangerprice left 04:58 amurf joined 05:02 amurf left
lizmat m: my @jan = 1..31; my @feb = 1..29; for @jan, { .elems.say } 05:11
camelia rakudo-moar 28faf1: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at /tmp/nCtWMFIfN_:1␤------> 3y @feb = 1..29; for @jan, { .elems.say }7⏏5<EOL>␤Missing block (apparently taken by expression)␤at /tmp/nCtWMFIfN_:1␤------> 3y @feb = 1..29…»
GLRelia rakudo-moar 769c5b: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at /tmp/ZLF3C6i_vk:1␤------> 3y @feb = 1..29; for @jan, { .elems.say }7⏏5<EOL>␤Missing block (apparently taken by expression)␤at /tmp/ZLF3C6i_vk:1␤------> 3y @feb = 1..29…»
lizmat m: my @jan = 1..31; my @feb = 1..29; for (@jan,) { .elems.say } 05:12
GLRelia rakudo-moar 769c5b: OUTPUT«31␤»
camelia rakudo-moar 28faf1: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
05:12 lizmat left
dalek ast/glr: e502eaf | skids++ | S05-modifier/counted.t:
Adjust dubious tests, per RT#125815 and due to GLRification

When I GLRified :nth and :x I made a couple changes to behavior
  (sorry). They were justified: the original code intended to
die on :nth(-1) but for some reason did not (RT#125815). Now it does.
Also, the * handling was applying 0-based semantics to a 1-based value, so that was fixed. Added a skipped test for a lone * which is NYI on both nom and GLR.
Left a failing test that found one thing broken during GLRification (s:0x// for some reason still substs.)
05:19
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125815
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125815
05:19 lizmat joined
lizmat jnthn about to begin Parallelism, Concurrency and Asynchrony in Perl 6 ! :-) 05:20
Woodi any url in internet space for this talk ? 05:27
lizmat haven't been able to determine that on the YAPC::Asia site... it's all Japanese to me :-( 05:30
skids lizmat++ very strange bug. 05:33
JimmyZ pbs.twimg.com/media/CM-nWpKUYAQ4q1U.jpg:large # get ready to party 05:35
05:37 llfourn joined
Woodi oO(Is it organic? Hmm, butterflies-free would be not totally right on that one ;) ) 05:38
05:39 xinming left
lizmat afaik, it's grapes :-) 05:40
05:41 xinming joined
dalek p: cb4f525 | ShimmerFairy++ | src/NQP/ (2 files):
Enable use of $¢ in nqp

I'm personally still amazed it was this simple to do :) .
05:45
06:07 cschwenz joined
dalek kudo/nom: edffe05 | ShimmerFairy++ | src/Perl6/ (2 files):
Enable use of $¢ in grammars

Unfortunately only works inside regex/token/rules, bare regexes (like
  $foo ~~ /bar/) don't get the right $¢ . I've tried everything to fix
this, but the solution is apparently not going to be that simple.
   my token foo {AB {say $¢.pos} C}; "ABC" ~~ /<&foo>/; # says '2'
   "ABC" ~~ /AB {say $¢.pos} C/; # says 'Nil'
Closest I got was manually removing $¢ from $past in regex_coderef after qbuildsub (and since qbuildsub will put a $¢ in there if you don't, better to put one in there you could more reliably remove afterward), but then eval'd regexes, e.g. EVAL('$foo ~~ /bar/'), complain about not being able to resolve lexical $¢ .
The best I can guess is that the bare regexes pass a clean slate for the
  $block arg of 'regex_coderef', instead of the popped lexpad
rule/token/regex gives, but I don't know how exactly that affects things, much less how to fix the issue based on that (if it's the source of the problems).
06:16
cschwenz Are the file test operators in Perl6 effectively the same as Perl 5's? That is, I notice there is $path.d, $path.f, and $path.l . Is there $path.p, $path.S, $path.b, $path.c, and $path.t as well? 06:17
dalek ast/glr: 389b92a | skids++ | S05-modifier/counted-match.t:
More test corrections as per commit e502eaf9
06:18
ShimmerFairy cschwenz: We have rwxoRWXOeszfdlLpSbcugk , according to design.perl6.org/S32/IO.html#File_test_methods 06:19
cschwenz: although they are explicitly not "operators" anymore, but rather methods :)
cschwenz sorry, was a bit loose with my terms. was asking because docs.perl6.org/type/IO::Path#File_Test_operators only documents a subset of what Perl6 actually has. 06:21
skids IO docs are probably behind as the newio branch is unmerged and has been rather neglected, except by lizmat++ 06:23
ShimmerFairy cschwenz: no worries, I just wanted to make sure you were aware of the fact they aren't operators in P6 :) 06:24
06:24 lizmat left
cschwenz :-) 06:25
ShimmerFairy (by the way, if anyone knows what the issue with $¢ in bare regexes is, _please_ let me know. It works in NQP, so I'd love to know what P6 is doing to complicate things :P)
Woodi skids: maybe you know what is a scope or plan for newio branch ? or maybe it is "make what synopses say" ? 06:26
06:26 bin_005 left
skids I don't know much, except that IIRC there is also a newio branch in the design docs repo. 06:26
ShimmerFairy Is there any draft work on what newio covers? I don't think I ever heard what it was about overall. (But improving a part of P6 is something I'm always up for, so I'm interested ☺) 06:27
skids lizmat merges nom into a branch occasionally, but has expressed that it is a chore and inaction on it is a bummer. 06:28
06:28 bin_005 joined
Woodi btw. what is 'nom' ?? it was a "rewrite is here" once but I have no idea what it is in 2014/2015 :) 06:30
FROGGS .tell lizmat Ups, I just realized that it makes tests pass, that's why... and I havn't seen the revert, even not in the history of the affected file
yoleaux 01:18Z <lizmat> FROGGS: I'm curious as to why you applied 9f581101ad to glr, when I reverted it later in nom
FROGGS: I'll pass your message to lizmat.
skids Woodi: it is the branch from which releases have been cut up until now.
It was a major improvement back when it was made (New Object Model). Now there is glr, which is another giant refactor, but is not ready for releases to be cut from quite yet. 06:31
Woodi so it is like "sid" in Debian ? :) current unstable or main dev branch ? 06:32
dalek ast/glr: b0a61c7 | (David Warring [email@hidden.address] | integration/advent2009-day21.t:
added flat() to advent2009-day21.t
skids Woodi: nom is about halfway between "stable/testing", and glr is more like "sid". 06:35
Or well, maybe nom is sid and glr is "volatile" :-) 06:36
Oh well, I guess volatile was less unstable than unstable. 06:39
Woodi skids: it is good to know which names are "stable" part of infrastructure :) 06:43
skids there are certainly a lot of branches :-) 06:44
ShimmerFairy Of course, now that I have $¢ as a shorthand for $/.CURSOR, I'm wondering what it would be like to have ¢<subrule> instead of $<subrule>.CURSOR :P 06:45
skids Doesn't Cursor already have keys for another purpose? 06:46
ShimmerFairy m: "ABC" ~~ /$<subrule>=[AB] {say $/.CURSOR<subrule>}/ 06:48
GLRelia rakudo-moar 769c5b: OUTPUT«postcircumfix:<{ }> not defined for type Cursor␤ in block <unit> at /tmp/4rnMPnVwHs:1␤␤Actually thrown at:␤ in block <unit> at /tmp/4rnMPnVwHs:1␤␤»
camelia rakudo-moar 28faf1: OUTPUT«postcircumfix:<{ }> not defined for type Cursor␤ in block <unit> at /tmp/Chfdq5KL53:1␤␤Actually thrown at:␤ in block <unit> at /tmp/Chfdq5KL53:1␤␤»
ShimmerFairy skids: apparently the key postcircumfix isn't even defined, so I guess not?
skids: anyway, my imagining was that ¢<subrule> would coerce to "capture/cursor context" in the same way that @<subrule> lets you loop over all the <subrule> captures in $/ 06:52
It's funny, but it wasn't until I started working on this pod parser (and particularly my own custom grammar error reporter) that I've come to realize how Cursors are just as important as Matches. So now the idea of a ¢ sigil for captures (or at least, cursors) seems a bit more useful to me, for example :) 06:56
07:01 rindolf joined
skids Yeah Cursor has been hiding in obscurity for all but the elite wizards for too long :-) 07:01
ShimmerFairy skids: I personally think the CURSOR/MATCH flipping you can do is pretty neat, and shows off how their two sides of the same coin :) 07:03
*they're
dalek kudo/glr: bd5cfcb | (Stefan Seifert)++ | src/core/Range.pm:
Fix off-by-one error in general Range iterator

We always skipped the first element. Noticed by dwarring++
07:04
nine 148/1047 spec test files failing. That off-by-one there was the reason why my Range iterator implementation did not have more impact yesterday :) 07:05
yoleaux 21 Aug 2015 21:46Z <laben> nine: good that there is a plan forward for that, i guessed it would be something like that :)
ShimmerFairy nine++ # how many more times we gotta do this before you're ten ? :) 07:07
FROGGS nine: I'll probably will have a lot of sparetime from today lunchtime to Tuesday afternoon... hopefully we can get the number of failing test files down to a minimum :o) 07:11
skids I knocked off two or three tonight, and brought a couple more down to only a test or two failing. 07:12
ShimmerFairy
.oO(A non-nonzero minimum, one would hope :P)
nine FROGGS: that sounds great!
skids++ 07:13
07:13 rindolf left
skids (probably they are included in that last count though) 07:13
I suspect a good number hinge on List ~~ List. 07:15
But that's just a hunch. 07:16
CQ where is the list of failing tests? 07:17
FROGGS CQ: here is one wich is off by one: gist.github.com/FROGGS/87ab95fab488b9e70f94 07:18
07:18 rurban joined
skids easy fix for someone with a bit: grep/first/etc sub forms need their slurpies lol-ed. 07:22
Must sleep now. 07:23
07:23 skids left
ShimmerFairy Am I right in thinking of worries/sorrows/panics as such?: "worry" -> like 'warn', just notes potential difficulties, "sorrow" -> like 'fail', will cause parser to fail but execution can go on for some time, "panic" -> like 'die', immediate end to the parser 07:28
07:29 aborazmeh left 07:30 aborazmeh joined, aborazmeh left, aborazmeh joined 07:37 lizmat joined 07:42 lizmat left 07:44 lizmat joined
dalek kudo/glr: a20db8f | (Stefan Seifert)++ | src/core/Range.pm:
Fix another off-by-one error in general Range iterator

1.9 .. 3.5 should produce 1.9, 2.9. We missed the latter because we compared with <= 2.5. So instead of calculating an end point, just use $!excludes-max to decide whether to use < or <= for comparison.
07:47
07:47 rindolf joined
nine The only remaining range.t failures are because @a[^5] really does @a[(^5).Int]. I wonder where the code for array subscript with multiple values actually is... 07:48
Ah, in array_slice.pm 07:51
dalek kudo/glr: 40079e8 | lizmat++ | src/core/Cool.pm:
nqp::unbox_i should really check for bigints

This reverts commit 9f581101adea819486c9e77117db2309f792bb47.
07:54
lizmat nine: that's a nest of snakes... :-) 07:55
yoleaux 06:30Z <FROGGS> lizmat: Ups, I just realized that it makes tests pass, that's why... and I havn't seen the revert, even not in the history of the affected file
lizmat the Range handling in array_slice
nine lizmat: it feels like a multi dispatch error 07:56
JimmyZ what does unbox_i return if it is bigint? 07:58
nine m: my @a = 1,2,3; my $b = [1,2]; say @a[$b];
GLRelia rakudo-moar 40079e: OUTPUT«3␤»
camelia rakudo-moar edffe0: OUTPUT«3␤»
07:59 darutoko joined
JimmyZ m: my @a = 1,2,3; say @a[1,2] 07:59
GLRelia rakudo-moar 40079e: OUTPUT«2 3␤»
camelia rakudo-moar edffe0: OUTPUT«2 3␤»
nine m: my @a = 1,2,3; my @b = [1,2]; say @a[@b];
GLRelia rakudo-moar 40079e: OUTPUT«2 3␤»
camelia rakudo-moar edffe0: OUTPUT«3␤»
nine m: my @a = 1,2,3; my @b = 1,2; say @a[@b];
GLRelia rakudo-moar 40079e: OUTPUT«2 3␤»
camelia rakudo-moar edffe0: OUTPUT«2 3␤»
lizmat m: my $a = 2**65; use nqp; say nqp::unbox_i($a) 08:00
camelia rakudo-moar edffe0: OUTPUT«0␤»
GLRelia rakudo-moar 40079e: OUTPUT«0␤»
08:03 virtualsue joined 08:05 domidumont joined
lizmat JimmyZ: the idea is that nqp::unbox_i should throw an exception when trying to unbox a bigint when it cannot fit into a native 08:05
that fixes a whole class of gigo RT's 08:07
08:09 domidumont left
nine But would also make every code dealing with ints slow :/ 08:09
08:10 domidumont joined
nine Oh, it's only slicing a Range that's still broken. Slicing Lists with Ranges works as advertised 08:13
lizmat nine: if it's done in C, it wouldn't 08:14
ShimmerFairy would it really though? Couldn't you just check the number of limbs for "too big" ?
08:15 espadrine joined
ShimmerFairy And if limbs aren't divisible into an integral number of native ints, you would then just have to check the "maybe limb" for its value if it's the most significant limb, no? 08:15
lizmat nine: what ShimmerFairy said
m: my @a = ^Inf; say @a[3..*] # this should probably be catchable 08:17
GLRelia rakudo-moar 40079e: OUTPUT«(timeout)» 08:18
camelia rakudo-moar edffe0: OUTPUT«(timeout)»
08:19 xinming left 08:22 xinming joined
nine lizmat: I doubt it 08:22
lizmat: we replaced infinite with is-lazy. But lazyness does not always equal infinity (think .lines). 08:23
lizmat ah, good point
you're right
nine m: (1..5)[1, 2] 08:26
GLRelia ( no output )
camelia ( no output )
nine m: say (1..5)[1, 2]
GLRelia rakudo-moar 40079e: OUTPUT«2 3␤»
camelia rakudo-moar edffe0: OUTPUT«2 3␤»
dalek kudo/glr: a52518d | (Stefan Seifert)++ | src/core/Range.pm:
Implement EXISTS-POS for Range

Fixes (1..10)[^5] giving only one result instead of 5. Reason was that the POSITIONS implementation filters positions by EXISTS-POS result. We inherited that from Any which always returns False.
08:28
nine range.t passes now :)
08:29 KCL_ joined
nine 146 to go :) 08:29
lizmat nine++ 08:30
08:32 KCL left 08:34 aborazmeh left 08:36 amurf joined
jdv79 how come we have perl6 wine but not beer or soda or some other consumable? 08:37
lizmat because the wind is from the town of Perl 08:39
and there are no breweries there ?
*wine
nine Fun fact: doing a simple s/Parcel/List/g on parcel.t makes it pass all but 3 tests. I'm inclined to commit that :) 08:40
jdv79 oh, right. the town. cool.
nine And rename to list.t
lizmat nine: please do!
08:40 amurf left
lizmat don't forget t/spectest.data 08:40
:-)
dalek ast/glr: df22323 | (Stefan Seifert)++ | S02-types/ (2 files):
s/Parcel/List/g to reappropriate Parcel's tests for List

Parcel is gone, List took its place. There may be a couple usefull tests still in S02-types/parcel.t, so just change it into a list.t
08:41
kudo/glr: 2ebfe4d | (Stefan Seifert)++ | t/spectest.data:
parcel.t is now list.t

Thanks to lizmat++ for the reminder!
08:42
jdv79 whatsup with having both META.info and META6.json? 08:43
nine m: my @a = {:a(1), :b(2)}; say @a.perl; # this worries me still. I'm not sure the single arg rule should extend to Hashes, even when they are Iterable
GLRelia rakudo-moar a52518: OUTPUT«[:a(1), :b(2)]␤»
camelia rakudo-moar edffe0: OUTPUT«[{:a(1), :b(2)}]<>␤»
nine .tell jnthn should the single arg rule really extend to Hashes just because they do Iterable? my @a = {:a(1), :b(2)}; gives [:a(1), :b(2)] and the same happens for sub calls 08:45
yoleaux nine: I'll pass your message to jnthn.
08:52 bin_005 left
nine No I really can't live with Hashes flattening like that. I can't imagine any user expecting that. 08:53
lizmat m: my @a = ^10; for $@a { .say } # this worries me more 08:55
camelia rakudo-moar edffe0: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
GLRelia rakudo-moar 2ebfe4: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
lizmat m: my @a = ^10; for $@a { .WHAT.say } 08:56
GLRelia rakudo-moar 2ebfe4: OUTPUT«(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤(Int)␤»
camelia rakudo-moar edffe0: OUTPUT«(Array)␤»
nine lizmat: why would you use for with a single item and a single iteration?
09:00 lizmat left
nine lizmat: I got cought countless times trying to iterate over an array ref with foreach in Perl 5. I've never written a for with just one iteration in mind. The single arg rule does make sense. Especially considering for foo() { } when foo() returns an array. It should not matter if that array has become itemized on the way. The intent is clearly to iterate over the array. 09:00
ShimmerFairy nine: I wonder if there could be a "Iterable but not Associative" rule, or some other way to indicate objects that _can_ be iterated, but usually aren't, for things like @a = {one => "hash"} 09:03
nine ShimmerFairy: yes, that's what I'm thinking. I'd create a role like IterableList does Iterable and change the single arg rule to apply to IterableList instead of Iterable. 09:04
That would be a trivial fix. I'd just like to have some confirmation from people more involved with the language design :)
ShimmerFairy PrimarilyIterable and either SecondarilyIterable or PrimarilyRandomAccess ? :P 09:05
nine: actually, for %hash { } would expect to iterate the hash, so I'm not sure the change is that simple 09:06
nine Well, for could still stick to Iterable. Of course that somewhat muddles the semantics again :/
So, I'm out. Off to spend a couple hours in this: segelflieger-linz.at/static/1/7/8/1...D-KFMF.jpg :)
ShimmerFairy also, remember that for $one-item { } should probably be written as given $one-item { } , esp. considering $one-item.map() makes no sense :) 09:07
09:08 domidumont left 09:09 domidumont joined 09:12 rurban_ joined
jdv79 m: sub foo ($a? where * ~~ /<[a..z]>/) {}; foo() 09:21
GLRelia rakudo-moar 2ebfe4: OUTPUT«Use of uninitialized value of type Any in string context in whatevercode at /tmp/PYjq9MXNlx:1␤Use of uninitialized value of type Any in string context in whatevercode at /tmp/PYjq9MXNlx:1␤Constraint type check failed for parameter '$a'␤ in sub f…»
camelia rakudo-moar edffe0: OUTPUT«Use of uninitialized value of type Any in string context in whatevercode at /tmp/NGonuB8KKq:1␤Use of uninitialized value of type Any in string context in whatevercode at /tmp/NGonuB8KKq:1␤Constraint type check failed for parameter '$a'␤ in sub f…»
jdv79 what is a better way?
09:21 domidumont left
jdv79 i thought the thunk would only fire if the arg was passed 09:22
since its optional
moritz it also validates the default value (which is Any) 09:23
so you can write $a? where { $a === Any || $a ~~ ... }
jdv79 i can see that it does ^H 09:24
is there a good reason?
09:24 RabidGravy joined
jdv79 it seems more verbose than a perl 09:25
-ish thing
09:26 rurban left 09:30 leont joined 09:41 rurban joined
jdv79 who do i talk to about cpan? 09:41
i just tried to upload a p6 dist and it failed 09:42
ShimmerFairy It's not all set up as of yet, as far as I know.
jdv79 because that p5 dist already exists
liz said a META6.json would differentiate it
either i did it wrong or it does not
ShimmerFairy That's the plan, but like I said I don't think it's all been set up yet (and in any case, there aren't any tools that could get a P6 module from CPAN properly atm) 09:44
jdv79 .tell lizmat what gives?: gist.github.com/anonymous/83b0780b59c40e77184e 09:47
yoleaux jdv79: I'll pass your message to lizmat.
09:48 lizmat joined
jdv79 ShimmerFairy: well, I'd think getting a dist on cpan would be a pre-req to pulling it off:) 09:51
lizmat jdv79: I guess we only tried it with distributions that are not registered 10:01
yoleaux 09:47Z <jdv79> lizmat: what gives?: gist.github.com/anonymous/83b0780b59c40e77184e
moritz m: my @a = ('o', "k 3 - print with multiple parameters\n"); print @a 10:02
GLRelia rakudo-moar 2ebfe4: OUTPUT«o k 3 - print with multiple parameters␤»
camelia rakudo-moar edffe0: OUTPUT«ok 3 - print with multiple parameters␤»
10:02 cschwenz left
moritz is that expected? 10:02
lizmat did you expect newlines between them? 10:03
ah, the space
hmmm....
moritz lizmat: no, a test (S16-io/print.t) doesn't expect the space
lizmat no that is not expected...
ShimmerFairy moritz: for 'say' it's been that way forever, not sure about print
lizmat print shouldn't put anything inbetween 10:04
moritz ShimmerFairy: well, say uses .gist on its argument
lizmat m: my @a = ('o', "k 3 - print with multiple parameters\n"); print @a.Str
camelia rakudo-moar edffe0: OUTPUT«o k 3 - print with multiple parameters␤»
GLRelia rakudo-moar 2ebfe4: OUTPUT«o k 3 - print with multiple parameters␤»
jdv79 its not registered is it?
its just conflicting
moritz lizmat: ah, print is implemented as two multis, (\x) and (*@args is rw)
jdv79 how do we get that addressed?
lizmat I hope to see Andreas next week at the SPW 10:05
moritz lizmat: I guess it dispatches to the \x candidate, which calls .Str
lizmat m: my @a = ('o', "k 3 - print with multiple parameters\n"); print |@a
GLRelia rakudo-moar 2ebfe4: OUTPUT«ok 3 - print with multiple parameters␤»
camelia rakudo-moar edffe0: OUTPUT«ok 3 - print with multiple parameters␤»
ShimmerFairy lizmat: btw, would PAUSE know that Perl 6 allows conflicting names on upload? (That is, does it consider author and version to disambiguate.) Admittedly I don't know under what conditions CPAN complains about duplicate packages :) 10:06
moritz ShimmerFairy: I guess you have to ask FROGGS, who implemented p6 part of PAUSE
ShimmerFairy ok :)
jdv79 FROGGS: ^ ? 10:07
lizmat ShimmerFairy: CPAN is basically a dropbox
jdv79 author is in the dir strcut already and v is in the filename
lizmat it doesn't care about anything that an author uploads, except that a file with name A can only be uploaded once 10:08
jdv79 *structure
ShimmerFairy lizmat: and that's because of P5's module name limitations, if I'm not mistaken?
moritz ah, it's only the indexer that cares about duplicates
leont Yes
lizmat it's the P5 module list that people often mistake for CPAN
ShimmerFairy oh, so a P6 module shouldn't be touching the existing P5 indexer in the first place then?
leont The module list has been deprecated, it's just the index now 10:09
lizmat the long name of a module on CPAN includes the author and version already
leont lizmat: s/module/distribution/
lizmat leont: whatever, it's a P5 specific thing
:-) 10:10
ShimmerFairy lizmat: so IIUC, it's the P5 module indexer that complains on duplicate names, and a P6 module thus shouldn't be considered by that indexer in the first place. Right?
moritz right. 10:11
lizmat right
ShimmerFairy alright :)
jdv79 i guess need a p6 indexer implemented and pause updated 10:12
sounds like FROGGS is best setup to do taht
if he's avail
FROGGS ShimmerFairy: it does
ShimmerFairy: p5's PAUSE upload thingy only considers package name and a version that must be greater than the one before 10:13
leont Yeah, I made that point a few days ago
ShimmerFairy So I guess jdv79's problem is that the upload program he used didn't send it to the P6 indexer for whatever reason, if my guesses are correct?
FROGGS ShimmerFairy: the p6's upload thingy does not care, but just registers all it gets
jdv79 i used hte http upload form at pause 10:14
FROGGS jdv79: and the dist contained a META6.json?
ShimmerFairy make sense, considering our :auth and :ver adverbs on modules take care of duplications :)
jdv79 yes
see above
gist.github.com/anonymous/83b0780b59c40e77184e 10:15
ShimmerFairy oh, could it be the META.info that's also in there, perhaps? 10:16
jdv79 i think panda need that, no?
i just copied that to META6.json - maybe that's wrong? 10:17
10:17 Ven joined
jdv79 is it possible to set a ro attr created in one role from another 10:18
moritz jdv79: I hope not
FROGGS jdv79: it might be possible that the basename of the file is checked before the p6 guessing happens
jdv79 moritz: why not? if they are composed into the same class seems plausible. 10:19
FROGGS: huh? the fs layout of a p6 dist is different? is that what you mean? 10:20
FROGGS jdv79: no
jdv79: "Duplicate entry 'J/JD/JDV/Data-Selector-1.00.tar.gz' for key 'PRIMARY'" this implies you uploaded that tarball as a p5 dist already 10:21
ShimmerFairy jdv79: I think he means it's possible that the P5 indexer checks for duplicates before the "Is it P5 or P6?" part happens
jdv79 yes, that's part of the point.
moritz jdv79: IMHO attributes should be private to a role, and stay that way; otherwise they aren't composable (in the CS lingo sense, not in the Perl 6 role composition sense)
jdv79 a p5 and p6 dist of the "same name" should work
FROGGS jdv79: so, rename the tarball and upload again I'd say
ShimmerFairy FROGGS: would there be no way to make the P6 check happen beforehand, in the future? 10:22
jdv79 that defeats the entire purpose
no
FROGGS ShimmerFairy: look at the code of PAUSE :o)
jdv79 the check for p5/p6 needs to be moved up front then
ShimmerFairy oh, it's somewhere to view? I'll look :)
jdv79 moritz: hmm, ok. i have a role that does shared construction 10:24
maybe i'll move it to a base class
FROGGS look: github.com/andk/pause/blob/master/...ch.pm#L327
jdv79 it was neat that it worked mostly though
shame not 100%
FROGGS also this: github.com/andk/pause/blob/master/...st.pm#L196 10:25
jdv79 hmm 10:26
FROGGS I'm not saying it is impossible to move the check upfront, I just say it is not easy 10:28
ShimmerFairy FROGGS: interesting that mail_summary is precluded for 6 (IIUC from the PAUSE help page that would be the immediate confirmation and/or subsequent indexing email?) 10:29
leont pause isn't easy in general, it is one of the oldest perl programs in critical use 10:30
ShimmerFairy FROGGS: could name duplication cause an issue like this to pop up for people who've never uploaded a P5 module before?
FROGGS ShimmerFairy: if you reupload the same named tarball with only the content changed... most likely 10:31
ShimmerFairy It would be really nice if P6 packages were diverted before any P5-specific components got started :/ 10:32
FROGGS leont: critical as in not more than a dozen uploads a day, right?
ShimmerFairy: that's hard given that huge spaghetti codebase
leont critical as in "if it falls on its mouth we're actually having problems" 10:33
ShimmerFairy But very important too
FROGGS ShimmerFairy: and it is nearly impossible to test changes locally
jdv79 well. regardless it needs to be changed
:) put bluntly
FROGGS :o)
jdv79 i'll peek later
but the cleaning lady is kicking me out of my room atm
dalek kudo/glr: 5c0c7bc | moritz++ | src/core/io_operators.pm:
Remove print(\x) multi candidate

fixes S16-io/print.t, which otherwise fails due to extra spaces from print(@a)
10:34
ShimmerFairy FROGGS: I can see the code's hard, since it's difficult to read (though that's not much with my P5 lack-of-knowledge :P), but regardless I think it's incredibly important to keep P6 modules away from irrelevant (P5-only) parts of PAUSE/CPAN
FROGGS ShimmerFairy: I see you point, and I did my best to do that 10:35
ShimmerFairy FROGGS++ for getting CPAN and PAUSE to work with P6 modules in the first place, anyway :)
FROGGS thanks :o) 10:37
lizmat: does t/spec/S32-str/index.t (unbox_i and bigints) still fail on nom? or did you find a better fix when reverting? (github.com/rakudo/rakudo/commit/40...767ae3906)
m: use nqp; say nqp::unbox_i(-1e35) 10:39
GLRelia rakudo-moar 5c0c7b: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/XlrU63D3i2:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/uTri95xy3Y:1␤␤»
FROGGS m: use nqp; say nqp::index(nqp::unbox_s("foo"), nqp::unbox_s("o"), nqp::unbox_i(-1e35)) 10:40
GLRelia rakudo-moar 5c0c7b: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/Mf96kjqT3a:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/FS_wGfOXDf:1␤␤»
ShimmerFairy m: say (-1e35).WHAT 10:41
GLRelia rakudo-moar 5c0c7b: OUTPUT«(Num)␤»
camelia rakudo-moar edffe0: OUTPUT«(Num)␤»
ShimmerFairy m: use nqp; say nqp::unbox_i(-1e35.Int)
GLRelia rakudo-moar 5c0c7b: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«0␤»
JimmyZ m: my @a = 'o', 'k'; say @a;
GLRelia rakudo-moar 5c0c7b: OUTPUT«o k␤»
camelia rakudo-moar edffe0: OUTPUT«o k␤»
JimmyZ m: my @a = 'o', 'k'; print @a; 10:42
GLRelia rakudo-moar 5c0c7b: OUTPUT«ok»
camelia rakudo-moar edffe0: OUTPUT«ok»
dalek ast/glr: 78cff17 | moritz++ | S03-metaops/reduce.t:
Fix three subtests in reduce.t
JimmyZ moritz: so we need to remove the say/note version too? about \x :) 10:43
FROGGS m: use nqp; my int $i = nqp::index(nqp::unbox_s("foo"), nqp::unbox_s("o"), nqp::unbox_i(-1e35)); say $i < 0 ?? Nil !! $i
GLRelia rakudo-moar 5c0c7b: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/PZ1RMTE9cF:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/TCcLNACb_w:1␤␤»
moritz JimmyZ: dunno; haven't investigated it yet
ShimmerFairy FROGGS: you need to convert that -1e35 to an Int first :) 10:45
FROGGS m: use nqp; my int $i = nqp::index(nqp::unbox_s("foo"), nqp::unbox_s("o"), nqp::unbox_i((-1e35).Int)); say $i < 0 ?? Nil !! $i 10:46
GLRelia rakudo-moar 5c0c7b: OUTPUT«1␤»
camelia rakudo-moar edffe0: OUTPUT«1␤»
FROGGS okay...
m: use nqp; say nqp::unbox_i((-1e35).Int)
GLRelia rakudo-moar 5c0c7b: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«0␤»
FROGGS okay...
so the rakudopatch that catched that in Cool.index got reverted but there is no fix yet available... 10:47
let's take a look at moarvm
dalek kudo/glr: 7ccbe0d | moritz++ | src/core/Seq.pm:
Give Seq an "invert" method

there is no generic method in Any, so Seq needs one for %h.pairs.invert to work
10:52
ast/glr: 9431004 | moritz++ | S02-types/pair.t:
don't rely on .perl in pair.t
moritz another test file down 10:53
dalek ast/glr: c2f2973 | (Jimmy Zhuo)++ | S16-io/ (2 files):
fixed a test in say.t, and a new test note.t
10:58
ast/glr: 217b1af | moritz++ | S02-types/baghash.t:
No need for .tree in baghash.t
10:59
ast/glr: b143d8a | moritz++ | S02-types/baghash.t:
Fix some incorrect assumptions in baghash.t

there are more to fix in this file, but not by me.
moritz JimmyZ: uhm, note.t doesn't work like that 11:00
JimmyZ: you can't just write TAP output to STDERR
JimmyZ how can I fixed it?
moritz JimmyZ: it might accidentally work in our configuration of the test harness, but please don't rely on it
JimmyZ: you could add $*ERR = $*OUT or so 11:01
11:01 Ven left
JimmyZ add $*ERR = $*OUT? 11:02
11:02 AlexDaniel joined
leont Writing to $*ERR from tests is generally a mistake IMO 11:04
dalek ast/glr: 2fed439 | (Jimmy Zhuo)++ | S16-io/note.t:
fixed note
11:05
11:12 rindolf left 11:20 bin_005 joined
dalek ast/glr: 38a5b8c | (Jimmy Zhuo)++ | S16-io/note.t:
fixed comment
11:34
11:38 FROGGS_ joined
cognominal I am working on huffmanizing nqp. My first result is a neo pragma to avoid the noisy op calls nqp::op() and write them as op(). That means writing fun() as &fun(). And now, that &fun() is taken. my $fun = ... ; $fun() to call a fun on a var. Musical chairs! github.com/cognominal/nqp/tree/neo 11:40
I am working on more exciting things like an slang to generate QAST trees but I am not quit there yet. 11:41
11:42 FROGGS left
cognominal * not quite there. 11:43
11:51 brrt joined 12:08 Ven joined 12:10 TEttinger left 12:12 Ven left, Ven joined
grondilu m: sub neg($a is copy) { $a[$_] *= -1 for ^@$a; return $a; }; my $a = [^4]; neg($a); say $a; 12:13
yoleaux 26 Jul 2015 14:43Z <azawawi> grondilu: ELI5 => github.com/azawawi/perl6-atom-elec...e_launcher
camelia rakudo-moar edffe0: OUTPUT«0 -1 -2 -3␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«0 -1 -2 -3␤»
yoleaux 15 Aug 2015 16:41Z <laben> grondilu: the sha256 function hangs in test sha.t of your Digest module, can you check it please?
12:13 amurf joined 12:14 ShimmerFairy left, Ven left 12:17 amurf left
FROGGS_ hmmm... 12:21
Cannot turn 101 bit wide bigint into 64 bit integer
in block <unit> at t/spec/S02-types/declare.rakudo.moar:116
12:21 FROGGS_ is now known as FROGGS 12:24 laben joined
brrt no 12:24
that'd be weird
laben hello p6'ers!
12:26 ShimmerFairy joined
grondilu m: (grep &is-prime, 2 .. *)[^64]; 12:29
GLRelia ( no output )
grondilu m: say (grep &is-prime, 2 .. *)[^64];
^that used to work, didn't it?
GLRelia rakudo-moar 7ccbe0: OUTPUT«(timeout)»
camelia rakudo-moar edffe0: OUTPUT«(timeout)»
grondilu m: say (grep &is-prime, 2 .. 1000)[^64]; 12:30
camelia rakudo-moar edffe0: OUTPUT«2 3␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«2 3␤»
grondilu ???
wtf
m say 5.si-prime
m say 5.is-prime
m: say 5.is-prime
camelia rakudo-moar edffe0: OUTPUT«True␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«True␤»
laben m: (2..1000).grep(*.is-prime).say
GLRelia rakudo-moar 7ccbe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 3…»
camelia rakudo-moar edffe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 3…»
grondilu m: say (grep &is-prime, (2 .. *))[^64]; 12:31
laben m: (2..1000).grep(*.is-prime)[^64].say
GLRelia rakudo-moar 7ccbe0: OUTPUT«(timeout)»
rakudo-moar 7ccbe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
camelia rakudo-moar edffe0: OUTPUT«(timeout)»
rakudo-moar edffe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
laben something happened to sub form of grep? 12:32
grondilu m: (2..*).grep(*.is-prime)[^64].say
camelia rakudo-moar edffe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
ShimmerFairy I think is-prime in sub form is stopping after the first false
grondilu laben: that's probably the reason for sha256 hanging
moritz m: say (grep &is-prime, 2 .. *)[64];
GLRelia rakudo-moar 7ccbe0: OUTPUT«(timeout)» 12:33
camelia rakudo-moar edffe0: OUTPUT«(timeout)»
moritz oh
the sub sub form of is-prime takes two arguments
the second optional is the number of tries
laben m: (grep {*.is-prime}, 2..*)[^64]
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MIixpRSJsn␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at /tmp/MIixpRSJsn:1␤------> 3(grep {*.is-p…»
grondilu ok
laben m: (grep *.is-prime, 2..*)[^64]
camelia ( no output )
GLRelia rakudo-moar 7ccbe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EYQtn4KZFS␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at /tmp/EYQtn4KZFS:1␤------> 3(grep {*.is-p…»
( no output )
laben m: (grep *.is-prime, 2..*)[^64].say
GLRelia rakudo-moar 7ccbe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
camelia rakudo-moar edffe0: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311␤»
moritz m: say (grep {is-prime $_}, 2 .. *)[64]; 12:34
camelia rakudo-moar edffe0: OUTPUT«313␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«313␤»
laben m: (grep *.is-prime, 2..*)[64].say
GLRelia rakudo-moar 7ccbe0: OUTPUT«313␤»
camelia rakudo-moar edffe0: OUTPUT«313␤»
moritz and grep is clever enough to pass two arguments to it
laben why does *.is-prime work but not &is-prime?
moritz laben: because &is-prime takes an optional argument 12:35
laben: and so grep passes two arguments at a time to it
whereas *.is-prime is a callable that only takes one argument
laben moritz: docs.perl6 needs to be checked on this, i think it's not correct 12:36
moritz: the docs i mean
btw, glr messes up the svg module badly 12:37
i'm trying to fix it
moritz laben: the docs do mention the optional second argument
laben moritz: the docs use the Int:D: param even on the sub form, i agree on the second arg 12:38
dalek c: f451b09 | moritz++ | lib/Type/Int.pod:
Correct &is-prime signature
moritz laben: aye :-)
laben that was fast :) 12:39
welp, did you notice that in is-prime routine page the search box does not appear? why is that? 12:40
grondilu lol I've just pushed the *.is-prime in lib-digest. If &is-prime changed it was for nothing I guess, but nevermind.
moritz grondilu: &is-prime isn't changed, just the docs 12:41
grondilu oh yeah
moritz (and it was grep that was change recently to be smart enough to work with multiple args at once)
laben: it randomly doesn't appear for me on some pages, including the front page 12:42
ShimmerFairy I got the is-prime sub from the search box on the front page
laben that's strange, i get it on the front page
moritz laben: I've opened github.com/perl6/doc/issues/117 12:45
ShimmerFairy: it's about the search box itself not always showing up
ShimmerFairy ah
moritz: I see a search box on docs.perl6.org/routine/is-prime 12:46
moritz: however, I did once notice it took a while to show up, if that helps any
moritz firebug says ReferenceError: jQuery is not defined
and the same for s/jQuery/$/ 12:47
laben what's strange is that it is in the HTML at least for the front page 12:48
ShimmerFairy: i waited some mins but it still did not appear for is-prime page
moritz please follow the GH issue for more debugging :-)
laben let me try with another browser 12:49
moritz it's not the browser's fault
brrt cdn dead?
moritz please read the GH issue :-) 12:51
12:51 telex left
laben moritz: this is lol... trying to refresh page with Ctrl+F5 makes it appear sometimes and then disappear the next reload. but i agree it's probably beacuse of async 12:51
moritz I'm adding debug information there, and don't want to repeat here all over
12:52 telex joined
Zoffix I'll fix it 12:55
dalek c: 6c72b35 | moritz++ | template/search_template.js:
Avoid Javascript error

search.js / search_template.js uses jquery for running JS when the document is ready, but cannot use jQuery for that, because jQuery is lazily loaded, and thus might not be available yet (#117)
12:57
moritz Zoffix: feel free to improve on that
my JS fu isn't all that strong
another option would be to load it from the footer, and don't include the async stuff
Zoffix moritz, my version was going to get rid of async and move the <script> into the footer, but if your fix works, then all the power to it :) 12:58
12:58 brrt left
moritz Zoffix: we'll know after the rebuild finishes :-) 13:03
13:05 virtualsue_ joined
Zoffix :) 13:05
13:05 virtualsue_ left 13:06 llfourn_ joined, virtualsue_ joined, virtualsue left, virtualsue_ is now known as virtualsue
moritz caniuse.com/#feat=domcontentloaded looks like I picked the wrong event 13:07
"JavaScript event that fires when the DOM is loaded, but before all page assets are loaded (CSS, images, etc.)."
13:07 cwDYKARN joined 13:08 llfourn left
moritz that means it could still be before the related scripts are loaded 13:08
Zoffix Yeah, reading the answer here too: stackoverflow.com/questions/9237044...being-call
moritz Zoffix: then please implement your solution instead :-) 13:09
Zoffix Sure
dalek c: 11e098f | (Zoffix Znet)++ | template/ (3 files):
Do not use async to load scripts that depend on one another (Fixes #117)
13:10
13:12 rindolf joined
laben same old javascript+DOM interactions and not-so-good async facilities :( i can only hope they will fix this kind of problems with WebAsm 13:12
moritz Zoffix: www.webkit.org/blog/1395/running-s...in-webkit/ defer seems to be a nice option 13:17
Zoffix moritz, are we still supporting IE<=9? I found this: github.com/h5bp/lazyweb-requests/issues/42 13:20
13:21 brrt joined
moritz Zoffix: dunno; I don't care that much anymore 13:22
rindolf Zoffix: hi, sup? 13:28
13:28 rurban left
dalek c: 94175a6 | (Zoffix Znet)++ | html/css/style.css:
Prevent overflown and unscrollable code samples on small-width screens
13:28
Zoffix rindolf, hey. Getting ready to go to work
rindolf Zoffix: ah, I see. 13:29
jnthn I can haz messagez???
yoleaux 08:45Z <nine> jnthn: should the single arg rule really extend to Hashes just because they do Iterable? my @a = {:a(1), :b(2)}; gives [:a(1), :b(2)] and the same happens for sub calls
13:29 rurban joined 13:30 brrt left, bin_005 left
jnthn .tell nine Good question. It feels a little odd may have to defer to TimToady++ on that one. 13:30
yoleaux jnthn: I'll pass your message to nine.
jnthn I see lots of discussion in backlog on one-arg rule. I think "for X { Y }" being a direct mapping to "X.map({ Y })" is a non-negotiable. 13:32
I'd also like to strongly discourage trying to add complexity to solve particular cases. That's how we got ourselves into the previous list models we're trying to do better than. 13:33
ShimmerFairy I suggested a way to distinguish things that _could_ be iterated versus things that are _usually_ iterated for those cases (e.g. hashes _can_ be iterated, but the more common access method is random access and they're usually sorted in some way, so it's not very usual)
On the other hand, perhaps being able to turn a hash into a list with @a = %b could be a neat trick for... something :> 13:34
laben jnthn: i think we can agree that the current way the Seq gets consumed multiple times (wrongly) by dwimmy hypers is just an implementation artifact and not the intention, right? 13:35
jnthn laben: Sounds like a bug in how hypers are implemented 13:36
@a.map(...) >>+<< @b.map(...) should totally work :)
laben jnthn: me and nine were in accord, but i wanted confirmation from design POV
jnthn I think for efficiency reasons we'll only be able to tell you that the lists were of unequal length *after* doing most of the work. 13:37
JimmyZ jnthn: lizmat said we may want *@args is list instead of *@args is rw
jnthn JimmyZ: I can see the motivation, but I'm not sure adding another trait to learn makes things much better, tbh.
If anything, we should call it whatever the trait for \x is ("is parcel"?) because that is the actual semantics. 13:38
I bet the \x trait is going to get renamed to something other than "is parcel" though :) 13:39
ShimmerFairy is too-good-for-sigils :P 13:40
jnthn :D
JimmyZ well, is rw make list confused me
jnthn JimmyZ: It makes some kind of sense if you think about it :)
JimmyZ :)
jnthn JimmyZ: The point isn't what type it makes but the semantics you get (that is, you can assign to the originally passed continer) 13:41
But yeah, I agree the semantics are more sigilless than rw, and can see we may wish to address that.
JimmyZ well, it is not DWIMish :P
FROGGS jnthn: I am working at a fix for "foo".index("o", <very large number>), and in one of lizmat++'s patches she mentions that unbox_i should take care of numbers that are greater than 64 bits... 13:42
13:42 philh joined
laben btw, could we separate the use-cases of is? it's a bit strange that it is used for deriving classes and applying traits when we have a separate keyword for composing roles 13:42
jnthn FROGGS: Yeah, I think that was the better direction to go
FROGGS jnthn: however, that would disallow 'my int $foo = <very big number>'
philh Hi, having trouble with subclassing Mix.
jnthn laben: We've had that discussion plenty of times, long story short "no" :)
philh p6: class Mix2 is Mix {}; Mix2.new-from-pairs(1 => 2) 13:43
GLRelia ( no output )
camelia ( no output )
laben jnthn: ok, did not know. why is that, ooc?
ShimmerFairy FROGGS: serves you right for trying to stuff a big number in a native type, in my opinion :P
philh Uh, maybe I don't know how to use the bots. When I run that, `Method 'BUILD' not found for invocant of class 'Mix2'`
jnthn FROGGS: I think the point is to disallow that ;)
FROGGS jnthn: disallowing overflows?
jnthn: then this should be good enough me thinks: gist.github.com/FROGGS/6edb1240b98f881688d6 13:44
jnthn FROGGS: Well, disallowing them at the point of unboxing a big integer at lesat, yes
FROGGS $ perl6 -e 'my int $a = 10000000000000000000000000000000000000000'
Cannot turn 133 bit wide bigint into 64 bit integer
jnthn FROGGS: Pleaes use unbox rather than turn
FROGGS k
jnthn (for consistency with other errors)
FROGGS and perhaps s/64 bit/machine sized/
or native sized
jnthn laben: It's rarely confusing in reality 'cus classes nearly always have an uppercase letter at the start and traits don't. 13:45
FROGGS or just native
jnthn FROGGS: I could go with native
FROGGS yeah
ShimmerFairy FROGGS: my only potential concern is if there are any places in the core code that use unbox_i on bigints where you wouldn't expect them, i.e. things that from an external POV go BigInt->BigInt and don't imply native int manipulation
jnthn FROGGS: That also helps it match the "cannot unbox" errors
FROGGS ShimmerFairy: yes, we potentially need to catch some of those, like in Cool.index 13:46
jnthn ShimmerFairy: I think all the math ops on bigints work in terms of those
philh: I *think* there was a bug in some recentish versions of Rakudo that bust subclassing of things like Mix; the bot runs the latest version which apparently has a fix for the issue. 13:47
ShimmerFairy jnthn: I would hope, but just in case Int.something-mathy implemented itself in terms of native ints for speed, or something :)
jnthn If we do have that case then we should probably know about it and fix it :)
13:48 vendethiel joined
JimmyZ jnthn: btw, I am waiting for you slides :{ 13:48
jnthn oh yeah, I did a talk... :)
philh jnthn: Oh, okay. I'll try another version. To check, it's rakudo I need to fiddle with, not nqp or moarvm?
jnthn I think it was the most exhausted/jetlagged I've ever been while giving a presentation.
FROGGS philh: you often need to upgrade all three
jnthn philh: It surely would have been a Rakudo-level fix but...what FROGGS said. 13:49
philh I was planning to try downgrading to avoid that :p
FROGGS jnthn: I could imagine that we might want: my int16 = <some Int>.int16, so it is explicit 13:52
moritz Zoffix++ # search box now shows up reliably 13:55
Zoffix \o/
13:55 rurban_ left
jnthn jnthn.net/papers/2015-yapcasia-concurrency.pdf # slides 13:57
JimmyZ opens it 13:58
14:01 xfix joined, xfix left, xfix joined
philh So downgrading just rakudo didn't work. I upgraded moar to master, but nqp at master doesn't like moar at master? 14:01
ShimmerFairy what's the error you get? 14:02
moritz m: say <a b c>.map(&uc).race 14:03
GLRelia rakudo-moar 7ccbe0: OUTPUT«HyperSeq.new␤»
camelia rakudo-moar edffe0: OUTPUT«Method 'race' not found for invocant of class 'List'␤ in block <unit> at /tmp/wD8MpBibPa:1␤␤»
moritz m: say <a b c>.map(&uc).race.list
GLRelia rakudo-moar 7ccbe0: OUTPUT«␤»
camelia rakudo-moar edffe0: OUTPUT«Method 'race' not found for invocant of class 'List'␤ in block <unit> at /tmp/81rsJIGl_5:1␤␤»
philh "Found /usr/bin/moar version 2015.07, which is too old."
moritz philh: sounds like you're using the wrong moarvm binary 14:04
philh Oh
ShimmerFairy did you provide the right --prefix to nqp's configure after installing moarvm
moritz philh: how did you build MoarVM?
philh Yes, I did make install but /usr/bin/moar is a few hours old
moritz you can build nqp with --gen-moar=master to automatically set the right installaton prefix
nine jnthn: yes, HYPER needs a bit of a refactoring. I got the tests to pass, but the implementation is still quite listy and not iteratorish enough. Already started on that.
yoleaux 13:30Z <jnthn> nine: Good question. It feels a little odd may have to defer to TimToady++ on that one.
philh `perl Configure.pl --prefix /usr && make && sudo make install`
jnthn nine: Cool 14:05
nine: I'll hopefully be able to be more useful to glr things again soonish :)
ShimmerFairy philh: moarvm by default installs locally in the repo (and _not_ in /usr/local, the usual default), if you don't supply moar's configure a --prefix to install to
philh I gave the prefix to both nqp and moar 14:06
nine jnthn: will be a bit of a challenge to get rid of the .elems calls. We won't be able to bail out due to wrong usage in all cases that we do now.
14:06 pochi_ joined
jnthn nine: Oh? 14:06
ShimmerFairy ah
jnthn nine: I thought we'd be able to bail out but later
philh rm /usr/bin/moar and then sudo make install again seems to fix it, I guess I should do a distclean to clear out everything?
nine jnthn: later yes 14:07
jnthn nine: That's fine by me
nine jnthn: we currently do it before even starting the work which is nice but not something we can keep up
jnthn nine: Agree, optimizing for people who misuse something is probably wrong :)
14:08 avalenn_ joined, skids joined
nine jnthn: refactoring it to be really iterator based will be a precursor to making it auto thread. I'd be quite tempted to try the latter, too :) 14:08
14:08 llfourn joined
jnthn nine: OK, but note I only did .race, not really .hyper ;) 14:08
nine But that's probably better done once glr has safely landed.
14:08 rurban left
jnthn nine: So it'll idsorder results 14:08
nine: Yeah, that was my plan :)
ShimmerFairy philh: you can also supply the --backend=moar option to nqp and rakudo, which is something I always do but wasn't aware you could leave out :)
nine That will give us a chance to clean up the fallout before inflicting new pain :)
But once you start thinking about an iterator based implementation, the places where you can plug in the auto threading become quite obvious :) 14:09
grondilu m: sub neg($a is copy) { $a[0] *= -1; return $a; }; my $a = [1]; neg($a); say $a;
camelia rakudo-moar edffe0: OUTPUT«-1␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«-1␤»
ShimmerFairy oh, that reminds me of something I need to take care of :)
grondilu ^ I get the logic but still it's a bit disturbing 14:10
14:10 pecastro_ joined, Shozan joined 14:11 Util_ joined, JimmyZ left, SHODAN left, rindolf left, llfourn_ left, pecastro left, tadzik left, coffee` left, Util left, pochi left
grondilu m: say [].clone 14:11
camelia rakudo-moar edffe0: OUTPUT«␤»
GLRelia rakudo-moar 7ccbe0: OUTPUT«␤»
14:11 kanl left, pecastro_ is now known as pecastro
grondilu maybe there could be a "$param is clone" 14:11
14:11 xnrand joined 14:12 kanl joined, rindolf joined
nine .tell TimToady should the single arg rule really extend to Hashes just because they do Iterable? my @a = {:a(1), :b(2)}; gives [:a(1), :b(2)] and the same happens for sub calls. for %hash {...} and %hash.map iterating over the pairs does asolutely make sense, but when passing a hash to a sub or method, one really expects it to stay a hash. 14:12
yoleaux nine: I'll pass your message to TimToady.
nine jnthn: like I said yesterday: you having a look at some roast tests would be most useful. We mere mortals are just too unsure about the new semantics :) Fixing the implementation to pass the tests is doable. 14:14
14:15 [Sno] left
nine jnthn: also the missing plan for a LoL replacement is becoming a blocker more and more. 14:17
jnthn nine: Yeah; at latest we'll resolve that at the upcoming hackathon in Olten. 14:18
14:18 rindolf left
nine Should be one of very few remaining issues by then :) 14:18
14:19 rindolf joined
moritz when is Olten? 14:19
nine Wednesday
moritz nine: then I'm not quite so optimisting 14:20
modulo spelling :-)
nine Well I am an optimist :)
14:20 JimmyZ joined
moritz 100+ test files are a lot to investigate and clean up 14:20
m: roundrobin() 14:21
GLRelia rakudo-moar 7ccbe0: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/OhDsqGudfA:1␤␤»
camelia ( no output )
14:31 brrt joined
jdv79 jnthn: cool slides. i didn't (don't) get what react is all about. 14:32
otherwise very nice
jnthn jdv79: It's a slightly smarter supply { ... }.tap.wait 14:33
jdv79: Mostly useful for writing the "main event loop" of a program.
(When you don't plan to produce any results, and want to block until all whenever's get done or there's an unhandled exception) 14:34
jdv79 ah
jnthn I could see that if I didn't add it I'd spend ages explaining some boring boilerplate again and again :) 14:35
moritz jnthn++ # slides 14:36
14:37 tadzik joined
dalek kudo/glr: 46b97a9 | moritz++ | src/core/List.pm:
Basic, iterator-based implementation of roundrobin

passes all but one test, and is probably horribly inefficient
14:40
jnthn Time for another attempt at resting. 14:42
jnthn is not looking forward to the 12 hour flight tomorrow, but will be glad to be back in the timezone his body seems determined to stick in...
'niht
*night
moritz good night, jnthn 14:43
ShimmerFairy jnthn o/
moritz m: say (my % = <a b c d>.sort).perl 14:47
GLRelia rakudo-moar 46b97a: OUTPUT«{:a("b"), :c("d")}␤»
camelia rakudo-moar edffe0: OUTPUT«{:a("b"), :c("d")}<>␤»
moritz m: say (my % = <a b c >.map( { $_, uc }).perl 14:48
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/JCsqvweGx0␤Unsupported use of bare "uc"; in Perl 6 please use .uc if you meant $_, or use an explicit invocant or argument␤at /tmp/JCsqvweGx0:1␤------> 3say (my % = <a b c >.map( { $_, uc7⏏5 }).perl␤»
GLRelia rakudo-moar 46b97a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OXG_g0Bhsw␤Unsupported use of bare "uc"; in Perl 6 please use .uc if you meant $_, or use an explicit invocant or argument␤at /tmp/OXG_g0Bhsw:1␤------> 3say (my % = <a b c >.map( { $_, uc7⏏5 }).perl␤»
moritz m: say (my % = <a b c >.map( { $_, .uc }).perl
GLRelia rakudo-moar 46b97a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/r49vEhA1kg␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/r49vEhA1kg:1␤------> 3 (my % = <a b c >.map( { $_, .uc }).perl7⏏5<EOL>␤ expecting any of:␤ …»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/puFHAWe_8p␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/puFHAWe_8p:1␤------> 3 (my % = <a b c >.map( { $_, .uc }).perl7⏏5<EOL>␤ expecting any of:␤ …»
moritz m: say (my % = <a b c >.map( { $_, .uc }) ).perl
GLRelia rakudo-moar 46b97a: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/tIIoDCGjU1:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«{:a("A"), :b("B"), :c("C")}<>␤»
moritz it seems that doesn't flatten sublists anymore
is that intended?
laben m: say (my % = <a b c >.map( { $_ => .uc }) ).perl 14:49
GLRelia rakudo-moar 46b97a: OUTPUT«{:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«{:a("A"), :b("B"), :c("C")}<>␤»
moritz that's t/spec/S32-list/map_function_return_values.t
ShimmerFairy m: say <a b c >.map: {$_, .uc} 14:51
GLRelia rakudo-moar 46b97a: OUTPUT«a A b B c C␤»
camelia rakudo-moar edffe0: OUTPUT«a A b B c C␤»
ShimmerFairy m: say <a b c >.map({$_, .uc}).perl
GLRelia rakudo-moar 46b97a: OUTPUT«(("a", "A"), ("b", "B"), ("c", "C")).iterator␤»
camelia rakudo-moar edffe0: OUTPUT«(("a", "A"), ("b", "B"), ("c", "C"))␤»
ShimmerFairy m: say (my % = |<a b c >.map( { $_, .uc }) ).perl 14:52
GLRelia rakudo-moar 46b97a: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/5isUFu8RUb:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wrwSlkJhW5␤Arg-flattening | is only valid in an argument list␤at /tmp/wrwSlkJhW5:1␤------> 3say (my % = |7⏏5<a b c >.map( { $_, .uc }) ).perl␤»
laben m: dd my % = <a b c>
GLRelia rakudo-moar 46b97a: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/ITwEg1N8Be:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/dWXxxBy2Sc:1␤␤»
laben m: dd my % = <a b c d>
GLRelia rakudo-moar 46b97a: OUTPUT«% = {:a("b"), :c("d")}␤»
camelia rakudo-moar edffe0: OUTPUT«% = {:a("b"), :c("d")}<>␤»
dalek p: 77ddfb5 | ShimmerFairy++ | / (3 files):
Actually install the default 'nqp'

Now when you run 'make install', you'll install 'nqp' along with 'nqp-m' and/or 'nqp-j' into the appropriate BIN_DIR.
14:53
laben m: dd my % = 1..4
camelia rakudo-moar edffe0: OUTPUT«% = {"1" => 2, "3" => 4}<>␤»
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1" => 2, "3" => 4}␤»
laben m: dd my % = (1..4).map({($_, .succ)}) 14:54
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => $(2, 3), "3 4" => $(4, 5)}␤»
camelia rakudo-moar edffe0: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}<>␤»
laben m: dd my % = (1..4).map({[$_, .succ]})
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => $[2, 3], "3 4" => $[4, 5]}␤»
camelia rakudo-moar edffe0: OUTPUT«% = {"1 2" => [2, 3], "3 4" => [4, 5]}<>␤»
laben m: dd my % = (1..4).map({$($_, .succ)}) 14:55
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => $(2, 3), "3 4" => $(4, 5)}␤»
camelia rakudo-moar edffe0: OUTPUT«% = {"1 2" => $(2, 3), "3 4" => $(4, 5)}<>␤»
laben i think it's better to rely on the => op after all
moritz that doesn't quite help me when deciding whether to change EnumMap.STORE or the test 14:57
ShimmerFairy I think of the "all commas" way of constructing hashes is more a convenience than anything else, so I'd prefer => where possible. 14:58
14:58 rurban joined
laben moritz: if you can find a way to elegantly flatten all the Seq produced by map in a list, you can still have that 14:59
ShimmerFairy moritz: unless the test is specifically after testing the , version of mapping those things, I'd say change the test to use => 15:00
laben m: dd my % = ((1..4).map({($_, .succ)})).flat
camelia rakudo-moar edffe0: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}<>␤»
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}␤»
moritz m: say (my % = <a b c >.map( { ($_, .uc).slip }) ).perl
camelia rakudo-moar edffe0: OUTPUT«Method 'slip' not found for invocant of class 'Parcel'␤ in block <unit> at /tmp/DBo7b7CvKq:1␤␤»
GLRelia rakudo-moar 46b97a: OUTPUT«Method 'slip' not found for invocant of class 'List'␤ in block <unit> at /tmp/JWNmEDKf3d:1␤␤»
laben there are a bit too many parenthesis for my tastes
moritz m: say (my % = <a b c >.map( { ($_, .uc).Slip }) ).perl
GLRelia rakudo-moar 46b97a: OUTPUT«{:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«Method 'Slip' not found for invocant of class 'Parcel'␤ in block <unit> at /tmp/_ybRuXQqUQ:1␤␤»
moritz ShimmerFairy: that seems to be what the test is about, though
laben m: dd my % = (1..4).map({($_, .succ).flat}) 15:01
camelia rakudo-moar edffe0: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}<>␤»
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => (2, 3).iterator, "3 4" => (4, 5).iterator}␤»
laben m: dd my % = (1..4).map({slip($_, .succ)})
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HmP80gOjQ8␤Undeclared routine:␤ slip used at line 1. Did you mean 'flip'?␤␤»
laben m: dd my % = slip (1..4).map({$_, .succ})
GLRelia rakudo-moar 46b97a: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/4uOCu1o2uU:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tIOu0SHOof␤Undeclared routine:␤ slip used at line 1. Did you mean 'flip'?␤␤»
laben m: dd my % = flat (1..4).map({$_, .succ})
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}␤»
camelia rakudo-moar edffe0: OUTPUT«% = {"1" => 2, "2" => 3, "3" => 4, "4" => 5}<>␤»
laben m: dd my % = |(1..4).map({$_, .succ}) 15:02
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => $(2, 3), "3 4" => $(4, 5)}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ie2_CDJo0o␤Arg-flattening | is only valid in an argument list␤at /tmp/ie2_CDJo0o:1␤------> 3dd my % = |7⏏5(1..4).map({$_, .succ})␤»
ShimmerFairy moritz: I think you'll have to change the test to Slip-ify (either .Slip or prefix:<|>), since I can easily imagine wanting a .map like that to not flatten (which would be hard if it's already flattened)
laben m: dd my % = (1..4).map({$_, .succ}).Slip 15:03
ShimmerFairy moritz: the alternative would be that pair construction accepts a list of tuples, but I don't think that's useful considering you can do a list of Pairs by that point :)
GLRelia rakudo-moar 46b97a: OUTPUT«% = {"1 2" => $(2, 3), "3 4" => $(4, 5)}␤»
camelia rakudo-moar edffe0: OUTPUT«Method 'Slip' not found for invocant of class 'List'␤ in block <unit> at /tmp/YIYcXLF2LG:1␤␤»
ShimmerFairy er, 2-tuples to be precise :)
laben m: dd my % = (1..4).map({$_, .succ})>>=>
GLRelia rakudo-moar 46b97a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/f02ljR9jsJ␤Malformed postfix␤at /tmp/f02ljR9jsJ:1␤------> 3dd my % = (1..4).map({$_, .succ})>>7⏏5=>␤ expecting any of:␤ postfix␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D4e9KyJfOw␤Malformed postfix␤at /tmp/D4e9KyJfOw:1␤------> 3dd my % = (1..4).map({$_, .succ})>>7⏏5=>␤ expecting any of:␤ postfix␤»
jdv79 so, i have a ro attr in a role and i want to write it from a subclass of the consuming class 15:05
should that work?
moritz m: my $x = 'a b'; say <<C $x>>.perl 15:06
camelia rakudo-moar edffe0: OUTPUT«("C", ("a", "b"))␤»
GLRelia rakudo-moar 46b97a: OUTPUT«("C", ("a", "b"))␤»
jdv79 or, in other words - in what ways can a ro attr be written? 15:07
moritz from within the class by a method
jdv79 the attr is in a role though
moritz then the role must offer a method to write to the attribute 15:08
ShimmerFairy We don't have anything in the way of 'protected' attributes (as they're known in C++), if that's what you're after. 15:09
moritz it's very easy: if a subclass should get access to something, that something must be public
otherwise you'd force everyone who wants access to that someting to subclass
and that's a very bad motivation for subclassing
nine moritz: looking at your roundrobin implementation, I can't quite see why it should be inefficient :) 15:10
jdv79 it technically is public, its just ro
moritz nine: because it builds the array of iterators anew each iteration 15:11
ShimmerFairy moritz: the one use-case I've seen for protected attributes/methods is with logging functions, e.g. a base class offers logging functionality for while it's operating, and wants to open that to subclasses, but not beyond that.
moritz ShimmerFairy: and that's stupid; why would a subclass be more qualified, than, say, a class that extends the logger by delegation? 15:12
nine m: m: say (my % = |<a b c >.map( { Slip.new($_, .uc) }) ).perl 15:13
GLRelia rakudo-moar 46b97a: OUTPUT«{:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/mJ4lKhZGyF:1␤------> 3m: say (my % = |7⏏5<a b c >.map( { Slip.new($_, .uc) }) ).p␤Undeclared name:␤ Slip used at line 1␤␤␤»
ShimmerFairy I don't follow, sorry
moritz ShimmerFairy: what makes the subclass so special? why allow access to a subclass? 15:14
laben m: dd my % = |<a b c >.map( { Slip.new($_, .uc) })
GLRelia rakudo-moar 46b97a: OUTPUT«% = {:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/sgktloEFwz:1␤------> 3dd my % = |7⏏5<a b c >.map( { Slip.new($_, .uc) })␤Undeclared name:␤ Slip used at line 1␤␤␤»
moritz ShimmerFairy: as opposed to a user that delegates to the logger?
laben m: dd my % = |<a b c >.map( { slip($_, .uc) })
GLRelia rakudo-moar 46b97a: OUTPUT«% = {:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/g5xVRcxQg1:1␤------> 3dd my % = |7⏏5<a b c >.map( { slip($_, .uc) })␤Undeclared routine:␤ slip used at line 1. Did you mean 'flip'?␤␤␤»
ShimmerFairy I don't follow the "a class that extends the logger by delegation" part
laben m: dd my % = <a b c >.map( { slip($_, .uc) })
GLRelia rakudo-moar 46b97a: OUTPUT«% = {:a("A"), :b("B"), :c("C")}␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/d974ySrYbv␤Undeclared routine:␤ slip used at line 1. Did you mean 'flip'?␤␤»
moritz ShimmerFairy: are you familiar with delegation? 15:15
ShimmerFairy nope
moritz ShimmerFairy: basically that's having the logger stored in an attribute, and forward method calls to it
15:15 khw joined
moritz (or at least some fo the method calls) 15:15
laben ShimmerFairy: search for keyword "handles" in the synopses 15:16
moritz en.wikipedia.org/wiki/Delegation_%...ramming%29
ShimmerFairy moritz: ah. I have done that before in C++ (it was the better solution because I had to implement a logger class on its own and pass it around)
moritz: the idea, as I understand it, is that the logger functions are of no use to the outside world, only the class and anything extending its functionality. 15:18
nine ShimmerFairy: logging is actually the classic example of extra functionality that should _not_ be in a class (unless its a Logger class of course)
moritz a more pragmatic approach is: if you have a "protected" method, it's already part of the public API (because subclasses can use it), so it must be documented, tested, stability criteria apply etc.
so you can just make it public
ShimmerFairy: but delegation can also be used to extend funcitionality
ShimmerFairy: so protected attributes force the one who wants to extend the class into an inheritance pattern, even if delegation would be preferable 15:19
ShimmerFairy As a contrived example, imagine a class DFARegex that logs as it works, and an NFARegex that inherits DFARegex and needs to log as well. Letting the outside world access the logger would be inappropriate, since the logging is specifically for what the engines are doing
jdv79 i'll just leave it as is rw and as later in context 15:20
its not a big deal - this instance i mean
*ask
seems kinda lame but i don't think i get the whole argument
ShimmerFairy moritz: with your "no protecteds" method, those logging functions would be exposed to anyone, anywhere. While it's acceptable to just document "don't use unless inheriting the class or delegating to it", a lot of times it'd be nice if you can enforce the limited usability 15:21
moritz ShimmerFairy: but what would be so bad if others used the logger?
ShimmerFairy: after all, there might be legitimate use cases for determining which logger the current object uses, if several are in use throughout the application 15:22
ShimmerFairy moritz: I can't imagine a scenario where it's harmful off-hand, but the point is that it's not _useful_ either.
jdv79 i simply wanted to dissuade someone from replacing a sub-object instance contained in an attr because it may be subclass dependent 15:24
15:25 skids left
moritz nine, jnthn, lizmat, TimToady: I've created github.com/perl6/glr-test-failures-annotated where I added some information about test failures that I have triaged, but not fixed 15:26
and I plan to add more
hopefully it's helpful to somebody; if not, we can scrap the whole thing again
15:30 cschwenz joined 15:31 rurban left 15:32 cschwenz left
nine moritz++ # this would have saved quite a bit of duplicated work already 15:33
15:37 carlin joined
dalek kudo/glr: b9a76ce | (Stefan Seifert)++ | src/core/Mixy.pm:
Fix "expected 'Positional' but got 'Seq'" in Mix.roll
15:42
15:43 mjgardner joined
jdv79 the pause code brings back memories of $work spaghetti nightmares 15:44
15:44 ZoffixWork joined 15:51 amurf joined 15:55 amurf left
nine Why does deepmap process the input twice? I can understand doing it in an unexpected order but why twice? 15:58
jdv79 its staggered 15:59
ShimmerFairy nine: that's the hyper thing, right? It goes through the list twice because it goes every other
jdv79 odds evens
shuffling shenanigans ^H 16:00
nine oooh...ok
jdv79 backwards and unzipped; or somemthing
nine But that's not a functional requirement, isn't it?
ShimmerFairy IIRC, it's *-1, *-3, *-5,... and then *-2, *-4, ...
jdv79 nope
nine good :) Then I can just take the sequential-map code and adjust it 16:01
jdv79 afaik thats just the "don't rely on this order of exec" impl details
ShimmerFairy nine: not really, it's just there to simulate the fact that you can't trust hyper to process things in a consistent order (side-effects and such)
jdv79 ShimmerFairy: did you try to understand the pause code
i wouldn't recommend it for sanity's sake
ShimmerFairy jdv79: not really, I barely understand P5 :P
jdv79 i understand p5 and i'm losing it 16:02
this is the kind of code that p5 haters love to point at 16:04
16:05 lsm-desktop left, lucasb joined
ShimmerFairy I would imagine there have been a few rewrite attempts over the years, considering its age and tangled nature :) 16:05
mst people have been slowly refactoring it and switching stuff out for modules 16:07
but bear in mind it's lived a loooong time
jdv79 no idea. i never cared about it until now.
yeah, super example of legacy
mst and it's very solid code that isn't actually -that- hard to change 16:08
the big problem is that a lot of things that look like bugs turn out to be required for crazy stuff people uploaded to cpan
16:09 vendethiel left
moritz m: class A { has @.a = <a b c>; method x { say $.x.VAR } }; A.new.x 16:09
camelia rakudo-moar edffe0: OUTPUT«Memory allocation failed; could not allocate 120192 bytes␤»
GLRelia rakudo-moar b9a76c: OUTPUT«Memory allocation failed; could not allocate 63360 bytes␤»
jdv79 i think the "liberal in what you accept" principle can be taken too far
ShimmerFairy mst: yeah, I figured a rewrite of CPAN/PAUSE would better work out in a "modular" sense. That is, providing drop-in replacements for things one component at a time
jdv79 ShimmerFairy: if you've ever tried to rewrite a real legacy app then you get it 16:10
its the stuff of pure nightmares
moritz aye
jdv79 a fascinating subject though - one we have much to learn about 16:11
i hope;)
mst ShimmerFairy: it's been in slow progress for years; if you want to help, I suggest becoming a member of the perl5 toolchain team first 16:12
otherwise you're going to fall down the various rabbit holes we've already explored
jdv79 mst: this all came about earlier today when i found a bug in the p pause support
mst extracting the perl6 side into a module so you guys can help maintain that would seem very logical
jdv79 FROGGS pointed us at the pause repo and i'm trying to figure out how to fix the issue 16:13
mst and not require quite so much understanding of the original stuff
ShimmerFairy mst: my "help" would be to reinvent things as Perl 6, because I'm almost prideful of being one of the few P6ers who see P6 from a non-P5 viewpoint :P
jdv79 its about sequencing
mst ShimmerFairy: rewriting the code in a different programming language is not help.
ShimmerFairy
.oO(Why learn P5 when P6 satisfies all my current needs already?)
jdv79 its not detecting p6 and thus avoiding the p5 parts
ShimmerFairy mst: hence the "help" in quotes :)
mst ShimmerFairy: yes, that's why we wouldn't want you to replace working code with perl6 :)
nine jdv79: I only skimmed the backlog, but isn't the issue simply that a file with the exact same name already exists? 16:14
jdv79 no
that's "supported"
mst ShimmerFairy: actually, I think seeing perl6 from a non-perl5 viewpoint is the only way 16:15
16:15 coffee` joined
ShimmerFairy mst: if there were some way to call Perl 6 code from Perl 5 (I faintly recall hearing about something like that), then a P6-written module to handle P6 modules would be kinda neat, perhaps :) 16:15
jdv79 having Dist-1.00.tgz for p5 and p6 is supported because the p6 dist should be shoved under a Perl6 dir
mst ShimmerFairy: perl6 is a terrible 'perl5 replacement'. it's not at all a bad language in its own right.
(one can say similar things about lisps, too)
(and I like lisps, too :)
jdv79 right now its trying to index the p6 dist before it knows its a p6 dist. it should see a p6 dist, not do any p5 steps, and probably hit up a p6 indexer 16:16
ShimmerFairy all that shifting of @_ still looks like something out of assembler or equivalently low-level :P
philh p6: { a=>2, b=>3 }.kv.perl
GLRelia ( no output )
camelia ( no output )
mst ShimmerFairy: strawman
philh p6: { a=>2, b=>3 }.Mix.kv.perl 16:17
GLRelia ( no output )
camelia ( no output )
jdv79 p5 is fine. pause just has a minor bug.
mst almost never uses shift on @_
jdv79 its just a major codebase:)
nine ShimmerFairy: there is Inline::Perl6 (of course) for calling Perl 6 code from Perl 5
philh p6: say { a=>2, b=>3 }.kv.perl
GLRelia rakudo-moar b9a76c: OUTPUT«("a", 2, "b", 3).iterator␤»
camelia rakudo-moar edffe0: OUTPUT«("a", 2, "b", 3)␤»
philh p6: say { a=>2, b=>3 }.Mix.kv.perl
GLRelia rakudo-moar b9a76c: OUTPUT«(("a", 2), ("b", 3)).iterator␤»
camelia rakudo-moar edffe0: OUTPUT«(("a", 2), ("b", 3))␤»
philh Should Mix.kv be doing that? 16:18
mst ShimmerFairy: the sort of arrogant unresearched hostility towards perl5 that you tend to display is something that, some years ago, was one of the things that fed significant fighting between the two communites that was incredibly counterproductive
ShimmerFairy: masak and I spent quite some time arranging to kill it
ShimmerFairy: please don't let your youthful excitement accidentally resurrect the drama beast. it was a particularly ugly and stupid drama beast, and the world was not bettered by its presence :)
16:19 dwarring left
mst ShimmerFairy: strangelyconsistent.org/blog/how-pe...ill-us-all 16:19
ShimmerFairy mst: sorry for not being clear; I'm not attacking shifting of @_, I just think it looks amusing coming from P6's signatures. I actually like the low-level-ish feel it gives. 16:21
16:21 [Sno] joined
mst there's a number of ways to get perl6-ish signatures in perl5 if you want them 16:22
"all is fair if you pre-declare" is one of the things the two communities definitely have in common
ShimmerFairy mst: And sorry for railing against CPAN for a while the other day, I was way too rusty on how things were planned out last time :) . I'm actually excited by the idea of being able to move o'er to CPAN eventually.
mst it's fine, I killfiled you until today when I finally managed to not be annoyed about it ;) 16:23
(because I was annoyed at you-and-all-historical-yous-I've-encountered, which really wasn't fair to you, if you see what I mean)
ShimmerFairy mst: I get it. And I admit that my initial reactions to things I'm not wholly positive of tend to take some time to filter into something more rational :P 16:25
mst ok, so, that makes you rather more self aware than most of the people I'm categorising as 'historical yous', and thereby faster to get yourself out of the trap 16:26
dalek c: c150897 | (Zoffix Znet)++ | / (20 files):
Update jQuery and jQuery UI to bring in new methods for Autocomplete
16:27
mst ShimmerFairy++ # self debugging system
ShimmerFairy It's a pattern I've noticed in my history, and one I hope to handle better in the future. :)
ZoffixWork Hopefully that push won't explode things, but it adds a method to Autocomplete plugin that I'll use to fix github.com/perl6/doc/issues/84
16:27 brrt left, pmurias joined
dalek p/js: d36f571 | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 45-smartmatch.

Implement subrule with a block as the first argument.
  (We need to check if it's how it's supposed to be implemented).
16:28
p/js: 8e9e394 | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 80.

Fix bug.
p/js: df70364 | (Pawel Murias)++ | / (2 files):
Implement and test cloning of arrays.
ShimmerFairy mst: I think my perception of P5 is like my perception of C (where I use C++): I can certainly edit minor things in C, and I would not be opposed to learning how to code C to a deeper extent, but C++ suits my needs just fine, so I'm not particularly interested in C for myself. 16:30
mst ShimmerFairy: interestingly, if you flip that on its head, that's much how I feel currently 16:31
(I like C and perl5, and am not that bothered about C++ or perl6)
with the one exception of OMG WANT THE GRAMMAR ENGINE
which will result in me using Inline::Perl6 :)
flussence
.oO( I was kinda negative-knee-jerky about the idea of moving to CPAN... but that was more an aversion to Yet Another Website Signup in general than anything wrong with CPAN itself. And I'd definitely prefer it to a github monoculture as of late. )
16:32
mst flussence: "pick your SPOF, pick your poison"
ShimmerFairy mst: yes, I've toyed with the idea of a "libp6regex" for C++ before, because C++ is my other primary language of choice and _god_ do I not want to touch another regex syntax/engine if I can help it :)
flussence mst: the best thing about git is how easy it makes the 1-2-3 backup rule (1 offsite, 2 physical formats, 3 copies) 16:34
and... doesn't p5 have Marpa? I'm surprised you guys could be all excited about grammars when there's that. 16:35
nine mst: considering that you were the reason I wrote Inline::Perl6, I'm eagerly awaiting you using it do do awesome things ;)
mst nine: somebody sprayed all my yaks with regain. 16:36
I'm eagerly awaiting being able to do that ;)
leont hapilly uses Perl 5, Perl6, C and C++, not sure what that says about me :-p 16:42
happily 16:43
moritz m: my @a = <a b c>; my $x = 0; $x++ for flat 0, @a; say $x
GLRelia rakudo-moar b9a76c: OUTPUT«4␤»
camelia rakudo-moar edffe0: OUTPUT«4␤»
japhb leont: Oh excellent! Can you put some of that happiness to use finishing Perl 6's C++ support? ;-)
16:43 cbk1090 joined
moritz m: my $a = <a b c>; my $x = 0; $x++ for flat 0, $a; say $x 16:43
GLRelia rakudo-moar b9a76c: OUTPUT«2␤»
camelia rakudo-moar edffe0: OUTPUT«2␤»
leont japhb: there are too many problems I can see with that, take a more naive person! :-p 16:44
japhb leont: DANG! :-D
cbk1090 morning #perl6
japhb leont: You should know, BTW, that there is a branch that mostly-works. It's just not been finished off and merged. 16:45
mst leont: it says you're the programming equivalent of Jack Harkness :D
dalek ast/glr: ecc7a5f | moritz++ | S12-methods/accessors.t:
GLR-ify S12-methods/accessors.t
leont Do I get to have that fancy coat of him with that? ;-)
japhb .tell jnthn It's looking now like the limiting factor for the awesomeness of your parallelism/asynchrony/concurrency talks is *the length of the talk*. I think we need to get you longer speaking slots. ;-) 16:46
yoleaux japhb: I'll pass your message to jnthn.
japhb mst: Good C++ bindings would indeed immortalize him. 16:47
pmurias mst: re terrible 'perl 5 replacement', I'm a bit afraid people will assume the upcoming 1.0 Perl 6 release means it's the "ready for Perl 5 replacement date"
jdv79 mst: the grammars are pretty sweet
japhb Everybody talk to mst at once about different things!
jdv79 i tried to use damian's thing - but its kinda lame
japhb jdv79: Not sure I've ever heard those two clauses in the same sentence before 16:48
jdv79 esp since the ver of p5 at the time broke part of it
moritz are typed arrays implemented post-GLR?
japhb I thought someone had put in native arrays in glr, but perhaps I was merely dreaming 16:49
moritz japhb: native != typed
jdv79 Regexp::Grammars
moritz japhb: I mean, native implies typed, but the more general typed arrays aren't native
japhb moritz: I knew that, and meant the former bit.
cbk1090 Is it better to use a Grammar or a regex to find a pattern like ( A123-45678). I have a Grammar for it, but it seams to only find the first occurrence. I need to pull the example numbers out of a file that may contain many of them among other text. Also has .parsefile() changed in its functionally? I seem to have been able to do this a few months ago..? 16:50
moritz m: my $foo = [[0]]; $foo[0][0]++
GLRelia rakudo-moar b9a76c: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/A3q91NZ0l_:1␤␤»
camelia ( no output )
moritz m: my $foo = [[0]]; say $foo[0][0].perl 16:51
GLRelia rakudo-moar b9a76c: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«0␤»
moritz m: my $foo = [[0]]; say $foo[0].^name
GLRelia rakudo-moar b9a76c: OUTPUT«Int␤»
camelia rakudo-moar edffe0: OUTPUT«Array␤»
moritz m: my $foo = [[0]]; say $foo.^name
GLRelia rakudo-moar b9a76c: OUTPUT«Array␤»
camelia rakudo-moar edffe0: OUTPUT«Array␤»
moritz m: my $foo = [0]; say $foo.^name
GLRelia rakudo-moar b9a76c: OUTPUT«Array␤»
camelia rakudo-moar edffe0: OUTPUT«Array␤»
moritz m: my $foo = [[0]]; say $foo.perl 16:52
GLRelia rakudo-moar b9a76c: OUTPUT«$[0]␤»
camelia rakudo-moar edffe0: OUTPUT«[[0]]␤»
moritz m: my $foo = [$[0]]; say $foo[0][0].perl
GLRelia rakudo-moar b9a76c: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«Any␤»
moritz m: my $foo = [$[0]]; $foo[0][0]++
camelia ( no output )
GLRelia rakudo-moar b9a76c: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/3E6SSEl2U6:1␤␤»
mst pmurias: I still think we should've ditched the 5 -and- the 6 and given 'em both a name of the form 'X perl' for some X chosen by reach community, but ... eh
at this stage that'd probably cause more confusion than anything else anyway 16:53
moritz m: my $foo = [$[0]]; say $foo.perl; say $foo[0].perl; say $foo[0][0].perl 16:54
camelia rakudo-moar edffe0: OUTPUT«[Any]␤Any␤Any␤»
GLRelia rakudo-moar b9a76c: OUTPUT«$[0]␤0␤0␤»
moritz m: my $foo = $[$[0]]; say $foo.perl; say $foo[0].perl; say $foo[0][0].perl 16:55
GLRelia rakudo-moar b9a76c: OUTPUT«$[0]␤0␤0␤»
camelia rakudo-moar edffe0: OUTPUT«Indexing requires an instance, tried to do: $[ (Any) ]␤ in block <unit> at /tmp/4ZDypm8Kwt:1␤␤»
moritz wtf?
how do I make a double-array in GLR?
like [[0]] in p5 or nom?
16:57 mstorti joined
ShimmerFairy m: my $foo = [[0],]; say $foo.perl; 16:57
GLRelia rakudo-moar b9a76c: OUTPUT«$[$[0]]␤»
camelia rakudo-moar edffe0: OUTPUT«[[0]]␤»
FROGGS moritz++ # github.com/perl6/glr-test-failures...ilures.txt 16:59
moritz: I thought about starting that yesterday
mst japhb: medicore C++ bindings would immortalize him 17:01
jdv79 is there a way to get panda to use git over ssh instead of git:?
mst japhb: really good ones would integrate with the GC properly
jdv79 i'm port blocked on git:
flussence jdv79: it just uses whatever the META.json says to use atm, which isn't great. I've been putting https:// in all of mine for that reason but I can't do much for the rest of the ecosystem... 17:02
jdv79 oh:(
mst you're ... git cloning ... to install packages?
17:02 mstorti left
jdv79 welcome to "not cpan"? 17:03
mst *eep*
ZoffixWork :)
jdv79 that's why...pause:)
ShimmerFairy mst: that's how panda works atm, and there's no real sense of "releasing" modules, at least not for me
jdv79 after dinner though ^H
flussence or more specifically, welcome to "our entire infrastructure is sitting on github" :)
(it's scary)
mst shareclouding 17:04
jdv79 its neat that it works
mst I'm not sure 'neat' is quite the word I'd use
jdv79 but uh, maybe time for something more
ShimmerFairy And yes, the panda system feels ad-hoc and temporary to me too :P
jdv79 haha
mst much like having sex down a nine foot metal pipe, while it's theoretically possible and certainly proves -something- about the participants abilities, it won't be comfortable, it isn't clever, and it wasn't designed for that
jdv79 c'mon. these guys needed to start somewhere 17:05
it works!
dalek c: d7719ae | (Zoffix Znet)++ | / (2 files):
Show a "Not Found" message when nothing is found (Closes #84)
moritz m: my @array; @array[42;23] = 17; say @array.perl; 17:06
GLRelia rakudo-moar b9a76c: OUTPUT«Method 'lol' not found for invocant of class 'List'␤ in block <unit> at /tmp/LMujPWikPq:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«[Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, [Any, Any, Any, Any, Any, Any, Any, Any, Any,…»
moritz m: my @array; @array[42;23] = 17; 17:07
GLRelia rakudo-moar b9a76c: OUTPUT«Method 'lol' not found for invocant of class 'List'␤ in block <unit> at /tmp/ITCXgSim8o:1␤␤»
camelia ( no output )
mst jdv79: oh, yes, I'm very glad they did -something- 17:08
I can call something 100% better than nothing while still side-eyeing it :)
jdv79 just fyi this little git config gem works around it - url.ssh://git@github.com/.insteadof=git://github.com/ 17:13
leont I think I mentioned before, p6 release toolchain is in need of more sysadmins
jdv79 git++ # as usual
flussence jdv79++ # rtfm'ing for us all 17:14
leont s/release/install/ # clarity
moritz m: say (1+*).^name 17:15
GLRelia rakudo-moar b9a76c: OUTPUT«WhateverCode.new␤»
camelia rakudo-moar edffe0: OUTPUT«WhateverCode.new␤»
dalek kudo/glr: acd1af9 | skids++ | src/core/Str.pm:
Handle :0x and :nth(*) correctly and always return Positional
17:16
kudo/glr: c4742a6 | moritz++ | src/core/Str.pm:
Merge pull request #510 from skids/glr2

Handle :0x and :nth(*) correctly and always return Positional
geekosaur is just figuring this stuff out...
dalek kudo/glr: 5b902d4 | moritz++ | src/Perl6/Metamodel/MultipleInheritance.nqp:
Do not produce empty parent lists in .^parents(:tree)

still seems to be a bit off
17:19
17:21 cschwenz joined 17:27 Shozan is now known as SHODAN
nine moritz: I remember doing typed Hash iterators and native array iterators 17:31
17:36 zakharyas joined, xinming_ joined
nine TypedArray is missing a "new" method. Commented out with # XXX GLR 17:39
17:39 xinming left 17:45 ZoffixWork left 17:48 llfourn left
nine what....does .* do? 17:49
cschwenz p6: for <r w x o R W X O e s z f d l L p S b c u g k> -> $test { try { say " $test = ", "/".IO.all: $test; }; }; 17:51
GLRelia rakudo-moar 5b902d: OUTPUT« r = True␤ w = False␤ x = True␤ e = True␤ s = False␤ z = False␤ f = False␤ d = True␤ l = False␤»
camelia rakudo-moar edffe0: OUTPUT« r = True␤ w = False␤ x = True␤ e = True␤ s = False␤ z = False␤ f = False␤ d = True␤ l = False␤»
cschwenz Any idea on when <o R W X O L p S b c u g k> will be implemented? (They currently throw an "Unknown test ..." error.)
lizmat cschwenz: when there is VM support for them 17:53
cschwenz so what is needed in MoarVM to support them? 17:54
leont Probably most are a SMOP, but most also aren't a high priority 17:55
17:56 domidumont joined
leont RWX are a bit of an anti-pattern anyway 17:57
cschwenz and is there a work-around for determining if something on disk isn't what the Perl6 test method is saying it is? (my use-case is perl6 is saying something is a directory when it is in fact one of <p S b c>.)
lizmat that feels like a bug, fwiw 17:58
leont Yes
cschwenz hmm
leont -d should return the correct thing
cschwenz what should it do then?
leont d = "is this a directory", so if it's true on a non-dir (I thik you're suggesting that) then that's a bug 17:59
cschwenz ah, okay. will try to get a minimal case which exhibits the behavior then. :-) 18:00
leont What is L supposed to do?
cschwenz From design.perl6.org/S32/IO.html#File_test_methods " L Actual path of symbolic link (readlink) Str" 18:01
lizmat that may have just been implemented in the newio branch, and not in nom
too tired now to check... :-) 18:02
good night, #perl6!
leont Ah, I see
dalek kudo/glr: ed32f95 | moritz++ | src/Perl6/Metamodel/MultipleInheritance.nqp:
Fix .^parents

it used to double arrays, which somehow got undone by HLLization (?)
cschwenz goodnight lizmat!
leont I'm missing t in that list
lizmat t is waiting for VM support
really afk&
nine moritz++ # sounds like some hardcore debugging 18:04
moritz nine: not really
nine moritz++ # anyway
dalek ast/glr: 46c94bb | moritz++ | S12-methods/defer-next.t:
Fix defer-next.t
18:05
18:06 domidumont left
FROGGS hmmm, I don't know what I should do with "foo".index("o", $pos) where $pos is bigger than 64 bits... 18:07
it throws now, but that is probably wrong... it should potentially work with bigints
maybe it should fail with >64bits not supported or so
moritz FROGGS: are there any systems that support strings with > 2**64 chars? 18:08
FROGGS I have no idea
but a good point 18:09
nine There aren't 18:10
18:10 zakharyas left
nine That would be 16 exabytes 18:10
16 exabytes ought to be enough for anyone 18:11
FROGGS nine: "64kB should be enough"... I heard that before :P 18:12
nine Dear people of the distant future: I will probably still think this is a good decision for this time.
moritz dear people in the future: if you want Perl 6 to support strings with more than 16 Exabyte, please give us 128bit processes 18:13
laben yeah and at least 512 terabyte of RAM 18:14
nine Send them back using your nearest time machine :)
laben how would you even mmap such a string?
nine waits for....something to happen
moritz nine: if somebody planne to contact you via time machine, you wouldn't need to wait :-) 18:15
nine moritz: well the IRC log is only accurate to the minute :) 18:16
But it's over already :/
laben they gave up since you asked for vm support written in actual C11, while they probably program now in C2**32 18:17
dalek kudo/glr: d161fb4 | (Stefan Seifert)++ | src/core/Mu.pm:
Fix dispatch:<.*> failing with "This type does not support elems"

No idea why returning an Array would not be ok.
18:20
kudo/glr: a519305 | (Stefan Seifert)++ | src/core/metaops.pm:
New deepmap implementation based on sequential-map

Does not actually deepmap for now but is enough to fix parallel-dispatch.t
18:20 bin_005 joined
nine That's a bit unsettling: I can't find a test that actually needs deepmap to go deep :/ 18:21
dalek osystem: e99e6b8 | Carlin++ | META.list:
add FastCGI::NativeCall::PSGI
18:25
18:29 rurban_ joined
japhb nine: 64 bits for an index into a chunk of data is not enough for everyone, even now. However, I am certain that the Rakudo we release for 6.Christmas does not need to handle that edge case at this time. :-) 18:46
laben japhb: ooc, what is an use case where they have a chunk of data bigger than 2**64 bytes? 18:49
nine We're even talking about full blown NFG strings here ;) 18:50
18:50 rurban joined
laben ok then, 2**64 unicode chars? 18:51
18:52 virtualsue left 18:55 lucasb left
dalek kudo/glr: 0ca6b57 | (Stefan Seifert)++ | src/core/metaops.pm:
Make deepmap actually recursive
18:56
nine This ^^^ may need another look later on. I'm not sure if replacing all lists in a nested structure by iterators really is the way to go.
But we're at 143/1047 spec test files failing now :) 18:57
FROGGS uhh, nice :o)
nine And that was the last usage of gimme in the core! Now I'll never have to find out what it actually did :)
FROGGS *g* 18:58
moritz nine: gimme($n) tried to reify $n elements, and returned the number of actually reified elements
I have a weird thing here 18:59
nine moritz: but that's not everything, since I've seen it called with some named arg
moritz dispatch:<.*> gathers the result values in an array variable, @results
and then calls infix:<,>(|@results) to produce a List
and if @results is empty, it dies with "this type does not support elems" 19:00
nine moritz: not any more, I already fixed that
moritz ooh
nine :)
See the clog at 20:20 :)
19:01 domidumont joined
moritz nine: any idea why it died that way? 19:01
nine infix:<,> was called because it used to be the Parcel constructor, so the reason for using it went away. It failed because it passed something to nqp::elems that was no nqp::list 19:02
I replaced it by creating a List and re-used the array's $!reified. A very cheap way :) 19:03
moritz aye
nine++
nine Now t/spec/S15-nfg/many-threads.t is a weird one. It doesn't actually involve threading problems. await is called with @promises as argument. @promises is a plain old array, yet somehow the await() multi dispatch candidate is run 19:05
19:05 espadrine left
moritz that's weird 19:05
I think I've seen that before
though in the context of &map'ing over a multi, or so 19:06
19:06 virtualsue joined
nine oh yes, it does actually call the right multi candidate which again calls await 19:06
moritz ah yes 19:07
that's because .map() picks the zero-arity candidate
iterating zero elements at a time 19:08
changing that to await($_) for @awaitables; should fix it
though maybe .map also wants a patch
19:08 emilbarton joined
moritz (maybe needs a 'do' in front to actually return the value) 19:08
emilbarton hi anybody 19:09
moritz or .map({ await($_) })
hi emilbarton
FROGGS hi emilbarton
laben m: dd (1..3)>>.succ
GLRelia rakudo-moar 0ca6b5: OUTPUT«(2, 3, 4).iterator␤»
camelia rakudo-moar edffe0: OUTPUT«(2, 3, 4)␤»
nine moritz: ok, one step further, but now I get a This Seq has already been iterated error
emilbarton Id' like to test the p6 language once and for all, and I'd like to have a shell. How would you do that? 19:10
laben m: ((1..3)>>.succ).WHAT.say
GLRelia rakudo-moar 0ca6b5: OUTPUT«(Seq)␤»
camelia rakudo-moar edffe0: OUTPUT«(Parcel)␤»
moritz emilbarton: rakudo comes with a basic REPL, but it's not very advanced
laben nine: why do hypers return Seq now? didn't we say that they're eager and cunsume it right away producing a list? 19:11
emilbarton Is there a readable source code for it that I could reuse with Term::Readline if possible?
flussence
.oO( if someone needs .index to handle strings longer than the number of atoms between here and the moon, they can afford the manpower to send in a patch for it like IBM did for p5 EBCDIC recently. YAGNI )
emilbarton moritz: ? 19:12
moritz emilbarton: I might have misunderstood your question
laben m: (1..3)>>.succ >>~~<<(2..4) 19:13
emilbarton Ok, i wasn't clear, I've been using a home made perl shell for years, and Id' like to do the same with perl6
GLRelia rakudo-moar 0ca6b5: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/x7pZ3IkMfX:1␤␤»
camelia ( no output )
emilbarton moritz 19:14
laben m: $(1..3)>>.succ >>~~<<$(2..4)
GLRelia rakudo-moar 0ca6b5: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/Fq0naLxpVQ:1␤␤»
camelia ( no output )
laben m: 1..3>>.succ >>~~<<2..4
GLRelia rakudo-moar 0ca6b5: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/l_YJTPtGqF:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<~~> are not of the same length␤left: 1 elements, right: 3 elements␤ in block <unit> at /tmp/c4GRrss1hy:1␤␤»
laben m: (1..3>>.succ) >>~~<<2..4
GLRelia rakudo-moar 0ca6b5: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/fTguQuQvgp:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<~~> are not of the same length␤left: 1 elements, right: 3 elements␤ in block <unit> at /tmp/ncwDMyp_7a:1␤␤»
laben m: ((1..3)>>.succ) >>~~<< (2..4) 19:15
camelia ( no output )
GLRelia rakudo-moar 0ca6b5: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/wnhg75a460:1␤␤»
nine laben: who is the "we" who said this?
19:18 sqirrel joined
dalek ast/glr: 6f497bd | moritz++ | S02-types/array.t:
Fix some tests in array.t
19:18
ast/glr: 4468aa5 | moritz++ | S17-supply/map.t:
Fix S17-supply/map.t
laben nine: irclog.perlgeek.de/perl6/2015-08-21#i_11094478 19:19
i just need to know if it's intended or not
dalek kudo/glr: 5c509b1 | (Stefan Seifert)++ | src/core/asyncops.pm:
Fix await @ps failing with "Must specify a Promise or Channel to await on"

21:07 < moritz> that's because .map() picks the zero-arity candidate 21:08 < moritz> iterating zero elements at a time
19:20
19:20 dwarring joined
dalek ast/glr: 7c1bd67 | moritz++ | S17-supply/min.t:
Add .Slip around ranges in S17-supply/min.t
19:23
19:24 virtualsue left
nine laben: the specs say that hyper is a variant of eager, yes. I'm actually not sure if this is really a good idea, because it makes hypers useless for setting up pipelines. 19:26
FROGGS m: use Test; is ({ try { eager map { die }, 1,2,3 }; 42 }()), 42, "die in map";
GLRelia rakudo-moar 0ca6b5: OUTPUT«Died␤ in block at /tmp/PX_jgOWACn:1␤ in block <unit> at /tmp/PX_jgOWACn:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«ok 1 - die in map␤»
FROGGS m: use Test; is ({ try { eager grep { die }, 1,2,3 }; 42 }()), 42, "die in grep";
GLRelia rakudo-moar 0ca6b5: OUTPUT«Died␤ in block at /tmp/OFIHUeKkaV:1␤ in block <unit> at /tmp/OFIHUeKkaV:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«ok 1 - die in grep␤»
moritz seems eager isn't eager enough? 19:27
laben but then you need to combine lazy with auto-threading, isn't that a mess to get the right result order?
19:28 sqirrel left
nine laben: that's....an interesting thought 19:28
moritz well, if you use autothreading, you can't rely on laziness at the same time
nine I think, I have to spend some more time with HYPER 19:30
moritz m: multi a() { 0 }; multi a($) { 1 }; say map &a, 'x' 19:31
GLRelia rakudo-moar 5c509b: OUTPUT«0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...␤»
camelia rakudo-moar edffe0: OUTPUT«1␤»
moritz ok, I'll try to fix that :-)
nine moritz: thanks! I wouldn't know how. 19:32
moritz nine: one line, I hope :-) 19:33
$count = 1 if $count == 0 && &block.arity >= 1
m: multi a() { 0 }; multi a($) { 1 }; say &a.arity 19:36
GLRelia rakudo-moar 5c509b: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«0␤»
moritz m: multi a() { 0 }; multi a($) { 1 }; say &a.count
GLRelia rakudo-moar 5c509b: OUTPUT«Inf␤»
camelia rakudo-moar edffe0: OUTPUT«Inf␤»
moritz ups.
dalek ast/glr: 08eeb00 | (David Warring [email@hidden.address] | integration/advent2010-day (2 files):
GLR tweaks to advent 2010 days 08 & 11
19:37
19:39 domidumont left
nine We're down to 138! 19:40
138/1047 spec test files failing
jdv79 insne 19:41
*insane
19:41 kaare_ left
dwarring moritz++ for tes failure list - github.com/perl6/glr-test-failures...ilures.txt 19:42
19:45 llfourn joined 19:49 llfourn left 19:50 CQ left
raydiak hello #perl6 19:50
FROGGS hi raydiak 19:51
raydiak hi FROGGS, how's it going?
FROGGS raydiak: quite good :o)
raydiak glad to hear it :) 19:52
how's the GLR going? any end to the semantic changes in sight yet? 19:53
I'm assuming some of my modules have some bitrot, but wasn't sure if I should address them yet or just wait until after the GLR when I'll have to go through and fix a bunch of stuff anyway 19:54
19:55 mjgardner left
laben i've been testing around with the existent ecosystem to see the impact of glr and try to fix it. can you tell me which are your modules? 19:55
raydiak App::Pray, Image::PNG::Portable, Math::Symbolic...still thinking... 19:56
19:57 mjgardner joined
raydiak but I think some of them may have had breakages not related to glr, I've been away a while 19:57
laben got a github?
emilbarton moritz: say "hi"
moritz: perl6 Argument list too long 19:58
raydiak yes raydiak on github
emilbarton moritz: perl6: Success
is it normal?
raydiak oh Git::PurePerl is another one I at least started
some of them don't have tests other than 'use'ing the module, sadly 19:59
oh! can't forget Inline::Lua too...
and Math::ThreeD; I think that's all of them on the ecosystem 20:01
laben first one: Math::Symbolic builds and test fine on recent (may not be latest) nom, but fails building Grammar.pm6 on glr with this error "Cannot assign to an immutable value" 20:02
i can investigate for you if you want
20:05 pmurias left
raydiak if you feel like it, I'm certainly not turning away the help :) but my question was more about how close the glr semantics are to being done, so I can plan my time appropriately, since I'm not very aware of what's happening with it (the glr or even rakudo in general) right now 20:05
laben semantics should be fine unless you make (heavy) usage of hyper ops 20:06
if you dont find them fine it should be a bug or a misuse under the new assumptions 20:07
emilbarton I'm sorry to insist but it seems my usage or installation of perl6 lacks something, could you help me start with the perl6 interpreter? 20:09
raydiak do we have the glr changes in any kind of document to get myself up to speed without re-reading the syns and scouring for the differences? 20:10
dalek ast/glr: 59b6d26 | (David Warring [email@hidden.address] | integration/advent2012-day0 (2 files):
GLR tweaks to advent 2012 days 03 & 09
laben the famous jnthn Github gist is the most recent doc, i dont think much work has been done for now on perl6/docs for now regarding glr 20:11
20:13 fame joined
raydiak url of jnthn++'s gist? 20:13
20:13 fame left 20:14 fame joined, fame left
laben should be this one gist.github.com/jnthn/aa370f8b32ef98e4e7c9 20:14
raydiak great, thanks for the info laben++ :) 20:15
nine emilbarton: details would help, like how you installed rakudo and what error messages you get 20:16
raydiak emilbarton: what specifically is going wrong?
heh
20:17 xfix left
emilbarton as I said if I type "say 'hi'" I get Arg list too long ; Success 20:17
I've rarely been told hi this way
FROGGS emilbarton: what is your 'perl6 --version'?
emilbarton FROGGS: Arg list too long ; Success with that much delay 20:18
nine emilbarton: what shell are you using? 20:19
emilbarton bash
FROGGS O.o
emilbarton: that does not even sound like a perl6 20:20
emilbarton: where do you got it from?
emilbarton it's rakudo /opt/rakudobrew/bin/perl6
git, recently
laben raydiak: i suspect your Math::Symbolic code might be a little too much for me
raydiak laben: me too :P that one needs heavy revision bordering on a rewrite 20:21
FROGGS emilbarton: can you open that file in an editor, and paste it into a gist?
nine Or paste it in here, it should just be 2 lines
FROGGS (/opt/rakudobrew/bin/perl6 should be a shell script)
laben raydiak: what i can tell for now is that it seems the Op hook up that you do to transform e.g. .inverse in a sub does not work and stays a Str 20:22
raydiak goes to remind himself what all that looked like
20:23 darutoko left
dalek kudo/glr: 185fc07 | (Stefan Seifert)++ | src/core/metaops.pm:
Fix Seq already iterated issues with hyper ops

Have deepmap always return a List as the spec still requires. This should fix several issues with already iterated Seq.
20:23
nine laben: ^^^ 20:24
20:24 mjgardner left
laben nine: rebuilding right now, exactly what should this fix? 20:25
nine Odd "This Seq has already been iterated" messages involving code using hyper ops 20:28
emilbarton FROGGS: maybe I have moved the rakudobrew dir after installation... 20:29
20:29 KCL joined
FROGGS ohh 20:29
emilbarton: it is not relocatable yet :o)
laben m: (1..3)>>.succ >>~~<<(2..4) 20:30
GLRelia rakudo-moar 185fc0: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/t9em5h3dUI:1␤␤»
camelia ( no output )
emilbarton it's bizarre while I was talking to you my rakudobrew disappeared 20:31
20:32 KCL_ left
emilbarton no man we are not alone 20:33
nine laben: oh, that's something else 20:34
laben nine: sorry i sent the wrong test command while i was testing elsewhere 20:35
nine laben: but I may have a fix for that already...just running spec tests 20:36
laben m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b>>.pred
GLRelia rakudo-moar 185fc0: OUTPUT«True True True␤»
camelia rakudo-moar edffe0: OUTPUT«True True True␤»
raydiak laben: ah I see where you meant in math::symbolic...looks like more concequences of poorly-considered design though; one of the parts I really needed to do when I left off on that one was a better API, so there shouldn't even really be strings in there 20:37
laben m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b.map(*.pred)
GLRelia rakudo-moar 185fc0: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/KinKP0_HyS:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«True True True␤»
laben nine: works as expected, nine++
FROGGS sure?
nine I don't think so 20:38
laben well, afaicu
no, i meant the eager-ness of the single hyper, not the impl od the dwimmy one
s/od/of
nine To be precise: I fixed >> 20:39
laben nine: yeah, that was the one i was referring to. since it doesnt makes Seq anymore, it doesnt have problems even if iterated twice
masak m: say [[0]] # doesn't create a nested array post-GLR? 20:40
GLRelia rakudo-moar 185fc0: OUTPUT«0␤»
camelia rakudo-moar edffe0: OUTPUT«0␤»
laben m: dd en.wikipedia.org/wiki/Special:Searc...p;search=0
GLRelia rakudo-moar 185fc0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QjkCVQa60u␤Confused␤at /tmp/QjkCVQa60u:1␤------> 3dd http:7⏏5//en.wikipedia.org/wiki/Special:Search?g␤ expecting any of:␤ colon pair␤»
camelia rakudo-moar edffe0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/beOEc0xXFl␤Confused␤at /tmp/beOEc0xXFl:1␤------> 3dd http:7⏏5//en.wikipedia.org/wiki/Special:Search?g␤ expecting any of:␤ colon pair␤»
masak hm, how do I...?
laben m: dd [ [0] ]
GLRelia rakudo-moar 185fc0: OUTPUT«[0]␤»
camelia rakudo-moar edffe0: OUTPUT«$ = [[0]]␤»
laben m: dd [ $[0] ]
GLRelia rakudo-moar 185fc0: OUTPUT«[0]␤»
camelia rakudo-moar edffe0: OUTPUT«$ = [Any]␤»
masak thank you.
laben m: dd $[ [0] ]
GLRelia rakudo-moar 185fc0: OUTPUT«$[0]␤»
camelia rakudo-moar edffe0: OUTPUT«$v = Any␤»
laben m: dd $[ $[0] ]
GLRelia rakudo-moar 185fc0: OUTPUT«$[0]␤»
camelia rakudo-moar edffe0: OUTPUT«Indexing requires an instance, tried to do: $[ (Any) ]␤ in block <unit> at /tmp/QAuEht7C6C:1␤␤»
laben m: dd [(0)] 20:41
GLRelia rakudo-moar 185fc0: OUTPUT«[0]␤»
camelia rakudo-moar edffe0: OUTPUT«$ = [0]␤»
laben m: dd [([0])]
camelia rakudo-moar edffe0: OUTPUT«$ = [[0]]␤»
GLRelia rakudo-moar 185fc0: OUTPUT«[0]␤»
laben oh well
rindolf Zoffix: here? 20:42
laben raydiak: actually i started fixing that code, but it seems there are various issues. if you say you're going to rewrite it anyway, i'm skipping to another module
dalek kudo/glr: 7f8a196 | (Stefan Seifert)++ | src/core/metaops.pm:
Fix HYPER(\&op, \left, \right) on Ranges

Fixes Method 'is-lazy' not found for invocant of class 'Range' when tyring to do: (1..3)>>.succ >>~~<<(2..4)
Thanks to laben++ for reporting
20:43
20:43 geekosaur left
raydiak laben: yeah I got too enthusiastic about that one :) it turned into a mess I'll have to untangle in more profound ways 20:44
20:44 rurban left, llfourn joined
raydiak don't even think about git::pureperl, it's not even done being converted from p5 20:45
just did enough that it'll clone small repos
20:45 geekosaur joined
laben m: (1..3)>>.succ >>~~<<(2..4) 20:46
GLRelia rakudo-moar 185fc0: OUTPUT«Method 'is-lazy' not found for invocant of class 'Range'␤ in block <unit> at /tmp/8HSM1y0sdM:1␤␤»
camelia ( no output )
laben is GLRelia not updated?
lemme rebuild myself
s/rebuild/rebuild it/ # damn english 20:47
20:48 llfourn left
laben raydiak: no problems on Git::PurePerl, one of its deps (digest) it's actually messed up on glr and i cant even touch it (dont understand that golfed code) 20:50
raydiak laben: App::Pray (which also depends on Image::PNG::Portable) is probably my first concern, and is one of the more readable ones 20:51
as long as compress::zlib is working on glr, which i::p::p requires
laben raydiak: yea, i'm starting from the deps, it's quite a long way there
emilbarton what's the difference between rakudobrew and rakudo? 20:53
20:53 telex left 20:54 telex joined
dalek ast/glr: b50b3f9 | (David Warring [email@hidden.address] | integration/advent2012-day13.t:
GLR tweaks for advent2012-day13.t
20:54
raydiak emilbarton: rakudobrew is a tool for automatically building and installing rakudo from source, instead of doing each step by hand
emilbarton ok
laben m: dd ((1..3)>>.succ) >>~~<< (2..4)
GLRelia rakudo-moar 7f8a19: OUTPUT«(Bool::True, Bool::True, Bool::True)␤»
camelia rakudo-moar edffe0: OUTPUT«(Bool::True, Bool::True, Bool::True)␤»
laben nine++ # It Works! 20:55
m: dd 1..3>>.succ >>~~<< 2..4
GLRelia rakudo-moar 7f8a19: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<~~> are not of the same length␤left: 1 elements, right: 3 elements␤ in block <unit> at /tmp/3nc3FUWQ4x:1␤␤»
camelia rakudo-moar edffe0: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<~~> are not of the same length␤left: 1 elements, right: 3 elements␤ in block <unit> at /tmp/Ep3R4bT9lD:1␤␤»
laben m: dd (1..3)>>.succ >>~~<< 2..4
GLRelia rakudo-moar 7f8a19: OUTPUT«(Bool::True, Bool::True, Bool::True)␤»
camelia rakudo-moar edffe0: OUTPUT«(Bool::True, Bool::True, Bool::True)␤»
20:59 rindolf left
raydiak laben: an easier one might be inline::lua which has no module deps, if nativecall works and you have lua 5.1 or luajit installed 20:59
21:00 rindolf joined
laben raydiak: actually i just rebootstrapped panda so i was going for compress::zlib::raw 21:01
raydiak cool
laben but i can do that too
raydiak inline::lua doesn't even build on non-glr rakudo it appears, so...
21:03 bin_005 left, bin_005 joined
emilbarton already better, now can you just tell me if there is a module that would allow me to launch a shell session like Term::Readline? 21:04
masak 'night, #perl6
laben raydiak: compress::zlib and ::raw seem fine for now 21:05
raydiak good night masak
laben: cool :) 21:06
laben raydiak: confirmed for String::CRC32 and Image::PNG::Portable too, now checking App::Ray 21:07
raydiak unfortunately I think png might be one of the ones with nearly no test coverage, so those problems might not show up until Pray reveals them 21:08
laben pray build and tests fine, trying to run it tells me this error "Width and/or height must be specified" 21:09
in sub render at lib/Pray.pm6:19
raydiak try like pray --width=32 examples/scene-07.json or so iirc 21:10
21:10 vendethiel joined
laben Cannot modify an immutable Int in method rotate at lib/Pray/Geometry/Matrix3D.pm6:66 21:10
raydiak hm another one of those 21:11
vendethiel waves
raydiak \o vendethiel
laben raydiak: it seems i forgot to remind myself and you that multidim array syntax is not functional for now 21:13
indeed it was that, dunno how to help you there for now 21:14
raydiak laben: like lol?
laben exactly
21:14 zakharyas joined
raydiak it's just nested arrays, don't think I used any lol in pray 21:14
m: [[1,2,3],[4,5,6],[7,8,9]].perl.say 21:17
GLRelia rakudo-moar 7f8a19: OUTPUT«[$[1, 2, 3], $[4, 5, 6], $[7, 8, 9]]␤»
camelia rakudo-moar edffe0: OUTPUT«[[1, 2, 3], [4, 5, 6], [7, 8, 9]]␤»
raydiak like that...appears to work
jdv79 i think i may have the beginning of a fix for pause 21:18
scary
laben it probably depends on how you built that, consider now there is much less auto-flattening
i'll try to go deeper
jdv79 are we below 100 failing tests yet? 21:19
nine 137
jdv79 does one have to rebuild nqp/moar since a few days ago? 21:20
or is rakudo enough
nine nqp is unchanged 21:21
laben raydiak: there are indeed flattening troubles, i fixed it. now i get another error, i'll see how far i can get, then publish a gist for you to study 21:22
rindolf jdv79: hi, sup? 21:23
raydiak laben: nice, tyvm for all the time you're taking :)
emilbarton Ok now that everything is ok I can say good bye, and thank you! 21:24
21:24 emilbarton left
jdv79 rindolf: not much. you? 21:24
trying to fix pause for p6 on one hand 21:25
rindolf jdv79: I removed #perl from my autojoin list.
jdv79 fantastic; why?
rindolf jdv79: and came up with a new humour bit.
jdv79: what's fantastic?
jdv79 your autojoin change 21:26
21:26 zakharyas left
rindolf jdv79: what's so great about it? 21:26
jdv79 i was hoping you'd tell me
rindolf jdv79: I have my reasons.
jdv79 ok 21:27
rindolf jdv79: I can tell you them in private.
jdv79 that's ok
going to spw?
rindolf jdv79: what's that?
Spanish Perl Workshop?
swiss PW? 21:28
jdv79 swiss
next week
dalek ast/glr: 1a710c0 | (David Warring [email@hidden.address] | integration/advent2012-day14.t:
GLR tweak for advent2012-day14.t
sjn thinks the Swiss Perl Workshop should be called chpw :)
jdv79 i think that's the longest git user name i've ever seen 21:29
rindolf jdv79: I don't have plans to go there. 21:31
jdv79 hmm, i must be running the spectests - my leg is starting to burn 21:32
geez
21:44 rangerprice joined
laben raydiak: i'm a bit in a pinch after this gist.github.com/anonymous/8bee82105f07e7613197, you'll need to check it out yourself. 21:47
raydiak: i get Start argument to substr out of range. Is: 647, should be in 0..629; use *647 if you want to index relative to the end in method update_preview at lib/Pray/Output.pm6:191
raydiak laben: hm...yeah I'll build the glr branch and see how it goes...thanks again, this is a good start 21:49
laben raydiak: good luck, i'm goning to bed now, it's a bit late here 21:51
good night|work #perl6
21:52 laben left
jdv79 what does () mean now? 21:57
m: use Test; is (if 0 { 42 }), (), "if evaluates to () when no block chosen" # a todo test 22:00
GLRelia rakudo-moar 7f8a19: OUTPUT«ok 1 - if evaluates to () when no block chosen␤»
camelia rakudo-moar edffe0: OUTPUT«not ok 1 - if evaluates to () when no block chosen␤␤# Failed test 'if evaluates to () when no block chosen'␤# at /tmp/XXDuEqBZNB line 1␤# expected: ''␤# got: (Empty)␤»
jdv79 guessing that's cool under glr 22:01
22:10 Timbus left 22:11 AlexDani` joined 22:13 AlexDaniel left 22:15 rurban_ left
rangerprice Hi 22:15
22:22 rindolf left 22:23 vendethiel left 22:27 maddingue joined 22:39 vendethiel joined 22:43 coffee` left, coffee` joined 22:45 llfourn joined 22:49 llfourn left 22:58 TEttinger joined 22:59 cschwenz left 23:00 yqt joined 23:02 mjgardner joined 23:03 RabidGravy left 23:14 leont left 23:43 mjgardner left 23:47 mjgardner joined 23:48 vendethiel left