Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-13

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 colomon joined #perl6
00:02 Mso150 joined #perl6
00:13 cognome joined #perl6
00:16 cognome joined #perl6
00:17 cognome_ joined #perl6
00:21 xenoterracide_ joined #perl6
00:26 Hor|zon joined #perl6
00:44 cognome joined #perl6
00:45 cognome_ joined #perl6
00:53 xenoterracide__ joined #perl6
00:54 mls joined #perl6
01:01 lizmat_ joined #perl6
01:10 akagi201__ joined #perl6
01:18 camelia joined #perl6
01:26 ezra1 joined #perl6
01:30 mls joined #perl6
01:46 cognome joined #perl6
01:58 yeahnoob joined #perl6
02:01 colomon joined #perl6
02:02 bjz joined #perl6
02:13 colomon joined #perl6
02:15 chenryn joined #perl6
02:17 JimmyZ joined #perl6
02:18 kurahaupo joined #perl6
02:23 yeahnoob joined #perl6
02:27 Hor|zon joined #perl6
02:33 colomon joined #perl6
02:36 aborazmeh joined #perl6
02:40 Mouq joined #perl6
02:43 Mouq r: say ::('X').::
02:43 camelia rakudo-moar 0d1ab2: OUTPUT«===SORRY!===␤MVMArray: Can't pop from an empty array␤»
02:43 camelia ..rakudo-parrot 0d1ab2: OUTPUT«===SORRY!===␤QRPA: Can't pop from an empty array!␤»
02:46 cognome joined #perl6
02:48 Mouq r: say nqp::who(::("X")) # more what I was expecting
02:48 camelia rakudo-moar 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc, "Anon" => Anon, "Assignment" => Assignment, "Attribute" => Attribute, "Augment" => Augment, "Backslash" => Backslash, "Bind" => X::Bind, "Buf" => Buf, "Caller" => Caller, "Channel" => Channel, "Comp" => X::Comp, "Composition" => Compos…»
02:48 camelia ..rakudo-parrot 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc, "Anon" => Anon, "Assignment" => Assignment, "Attribute" => Attribute, "Augment" => Augment, "Backslash" => Backslash, "Bind" => X::Bind, "Buf" => Buf, "Caller" => Caller, "Comp" => X::Comp, "Composition" => Composition, "Constructor"…»
02:50 _slade_ joined #perl6
02:50 noganex_ joined #perl6
02:55 JimmyZ r: say ::("X").WHO
02:55 camelia rakudo-moar 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc, "Anon" => Anon, "Assignment" => Assignment, "Attribute" => Attribute, "Augment" => Augment, "Backslash" => Backslash, "Bind" => X::Bind, "Buf" => Buf, "Caller" => Caller, "Channel" => Channel, "Comp" => X::Comp, "Composition" => Compos…»
02:55 camelia ..rakudo-parrot 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc, "Anon" => Anon, "Assignment" => Assignment, "Attribute" => Attribute, "Augment" => Augment, "Backslash" => Backslash, "Bind" => X::Bind, "Buf" => Buf, "Caller" => Caller, "Comp" => X::Comp, "Composition" => Composition, "Constructor"…»
02:56 Mouq Oh, huh :P JimmyZ++
03:03 JimmyZ_ joined #perl6
03:25 tadzik inhuman waking hours :|
03:26 BenGoldberg r: say ::("X").WHO.sort
03:26 yoleaux 12 Oct 2014 04:46Z <japhb> BenGoldberg: if you're thinking of take-task(), I asked about that after the talk, and jnthn++ explained that it was smarter than he initially let on -- meet-condition sets the condition *without* releasing the method lock, which only gets released at actual method exit, which is when other threads can notice the condition was met.
03:26 camelia rakudo-moar 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc "Anon" => Anon "Assignment" => Assignment "Attribute" => Attribute "Augment" => Augment "Backslash" => Backslash "Bind" => X::Bind "Buf" => Buf "Caller" => Caller "Channel" => Channel "Comp" => X::Comp "Composition" => Composition "Cons…»
03:26 camelia ..rakudo-parrot 0d1ab2: OUTPUT«"AdHoc" => X::AdHoc "Anon" => Anon "Assignment" => Assignment "Attribute" => Attribute "Augment" => Augment "Backslash" => Backslash "Bind" => X::Bind "Buf" => Buf "Caller" => Caller "Comp" => X::Comp "Composition" => Composition "Constructor" => Constru…»
03:27 BenGoldberg Why does moar have '"Channel" => Channel', but not parrot?
03:29 JimmyZ because rakudo doesn't support thread on parrot
03:31 ivanshmakov joined #perl6
03:46 cognome joined #perl6
03:51 kaare_ joined #perl6
03:54 cognome joined #perl6
04:03 xenoterracide__ joined #perl6
04:19 anaeem1 joined #perl6
04:22 ghostlin_ joined #perl6
04:23 anaeem1_ joined #perl6
04:28 kyun joined #perl6
04:28 Hor|zon joined #perl6
04:45 ggoebel1111118 joined #perl6
04:46 cognome joined #perl6
05:26 chenryn joined #perl6
05:35 ecocode joined #perl6
05:36 pepl joined #perl6
05:39 anaeem1__ joined #perl6
05:44 kurahaupo joined #perl6
05:46 cognome joined #perl6
05:46 virtualsue joined #perl6
06:00 gfldex joined #perl6
06:12 anaeem1_ joined #perl6
06:21 sergot mornign o/
06:22 chenryn joined #perl6
06:23 ghostlines joined #perl6
06:24 bartolin joined #perl6
06:24 japhb Someone else is awake!  :-)
06:26 anaeem1 joined #perl6
06:26 dalek roast: 58ec1cf | usev6++ | S16-filehandles/filetest.t:
06:26 dalek roast: Add test for RT #111400
06:26 dalek roast: review: https://github.com/perl6/roast/commit/58ec1cfdbb
06:26 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=111400
06:28 rindolf joined #perl6
06:28 JimmyZ_ joined #perl6
06:29 Hor|zon joined #perl6
06:30 dalek perl6-bench/stress: a68da1b | (Geoffrey Broadwell)++ | timeall:
06:30 dalek perl6-bench/stress: Skip runs that failed when computing best times; be braver about pushing failed runs onto timing lists
06:30 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/a68da1bba9
06:33 JimmyZ good morning, #hackthoners
06:35 kaleem joined #perl6
06:41 japhb o/ JimmyZ
06:41 bartolin .tell brrt wrt 112678, the relevant line is S03:800 (just saw your question in the backlog)
06:41 synopsebot Link: http://perlcabal.org/syn/S03.html#line_800
06:41 yoleaux bartolin: I'll pass your message to brrt.
06:42 * japhb wanders off in the general direction of the venue, though probably making some stops on the way.
06:46 cognome joined #perl6
06:48 chenryn joined #perl6
06:50 masak good morning, #perl6
06:50 moritz \o masak, #perl6
06:52 rindolf masak: morning #perl6
06:52 rindolf What's up?
06:53 masak I'm hoping to blog today about macros.
06:53 masak saying it here so that the pressure is on :)
06:53 timotimo o/
06:53 masak by the way, these blog posts will be simple, small, and about one thing. not trying to solve the whole macro business all at once.
06:54 masak their main intended role is as focus for constructive discussion.
06:56 pepl joined #perl6
07:01 Ven joined #perl6
07:04 leont joined #perl6
07:04 Ven o/
07:05 timotimo what a surprise, it's ven!
07:05 Ven you just wanted to hear me bip, didni't you? eh.
07:05 Ven go and prepare so that we don't get late
07:06 Ven masak: go go and blog! :)
07:06 zakharyas joined #perl6
07:09 leont Morning
07:13 kjs_ joined #perl6
07:19 darutoko joined #perl6
07:21 Ven o/, leont
07:24 bartolin m: class B { has Int $.x where 0|1 }; my $b = B.new( x => 2 ); say $b
07:24 camelia rakudo-moar 0d1ab2: OUTPUT«B.new(x => 2)␤»
07:24 bartolin shouldn't that behave identically to the following:
07:24 mauke joined #perl6
07:24 bartolin subset ZeroOne of Int where 0|1; class A { has ZeroOne $.x }; my $a = A.new( x => 2); say $a
07:24 bartolin m: subset ZeroOne of Int where 0|1; class A { has ZeroOne $.x }; my $a = A.new( x => 2); say $a
07:24 camelia rakudo-moar 0d1ab2: OUTPUT«Type check failed in assignment to '$!x'; expected 'ZeroOne' but got 'Int'␤  in block  at src/gen/m-CORE.setting:958␤  in method BUILDALL at src/gen/m-CORE.setting:950␤  in method bless at src/gen/m-CORE.setting:939␤  in method new at src/gen/m-COR…»
07:25 bartolin (it's from RT #75858)
07:25 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=75858
07:26 Ven m: sub f { 1}; sub s { say f }; s; do { my &f = sub { 5 }; s; }
07:26 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m�Null regex not allowed�at /tmp/tIs_MNonV0:1�------> [32m say f }; s; do { my &f = sub { 5 }; s; [33m�[31m}[0m�Couldn't find terminator ;�at /tmp/tIs_MNonV0:1�------> [32m say f }; s; do { my &f = sub { 5 };…»
07:27 timotimo oh hey leont
07:28 timotimo i kind of think it may be a good idea to not allow ; as the delimiter of regexes
07:28 Ven m: temp &bar := sub {...};
07:28 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4D7sOnSmSkâ�¤Cannot use bind operator with this left-hand sideâ�¤at /tmp/4D7sOnSmSk:1â�¤------> [32mtemp &bar := sub {...}[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        argument listâ�¤      â€¦Â»
07:28 Ven ^ this is from s06
07:30 TimToady commuting &
07:30 TimToady (we have ncw10)
07:31 timotimo .o( we have nwc10 and we are not afraid to use it )
07:36 mauke hello from ncm
07:36 Ven \o
07:39 azawawi joined #perl6
07:41 timotimo leont: we are about to go to breakfast; you're probably already there?
07:45 * masak is disappointed that (a) http://moritz.faui2k3.org/tmp/​profile-to-json.html#callgraph doesn't activate the right tab, and (b) it's not actually a graph, it's a series of tubes^Wlinks in a table leading to more tables
07:46 leont timotimo: not yet, will be there soon
07:46 cognome joined #perl6
07:47 masak also, there isn't an obvious way to go back up the tree. like the '..' directory movement.
07:48 masak I'm fully aware that this is a "patches welcome" situation, so...
07:49 masak m: my @a = [<a m c>], [<d e f>], [<g h i>]; say "slicing -- @a[*;1].join()!"
07:49 camelia rakudo-moar 0d1ab2: OUTPUT«slicing -- meh!␤»
07:49 masak ;)
07:50 rurban joined #perl6
07:51 abraxxa joined #perl6
08:02 moritz ideal would be a click trail, where in step there is a routine name, and two percentages
08:02 moritz percentage of total run time, and percentage of callee's run time
08:04 dalek roast: 96c8778 | usev6++ | S32-hash/delete-adverb.t:
08:04 dalek roast: Add test for RT #74946
08:04 dalek roast: review: https://github.com/perl6/roast/commit/96c87780f7
08:04 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=74946
08:04 _sri joined #perl6
08:06 chenryn joined #perl6
08:07 ghostlines joined #perl6
08:07 _sri joined #perl6
08:12 JimmyZ masak: yeah, patches welcome :P
08:13 JimmyZ m: my @a = [<a m c>], [<d e f>], [<g h i>]; say "slicing -- @a[*;1]!"
08:13 camelia rakudo-moar 0d1ab2: OUTPUT«slicing -- m e h!␤»
08:14 moritz wow, I didn't know that worked
08:14 masak meh :P
08:15 masak srsly though -- seing S09 land, even a little bit... that's Christmas to me.
08:16 * japhb resists breaking into song, for the (great) benefit of the other hackathoners
08:16 masak :)
08:16 masak japhb: it's the thought that counts.
08:20 azawawi hi #perl6
08:21 jnthn morning, #perl6
08:21 Sqirrel joined #perl6
08:21 moritz \o jnthn
08:22 kyun Good aftrnoon, #perl
08:22 kyun 6
08:22 fhelmberger joined #perl6
08:22 moritz now I can't get Tom Lehrer's Christmas Carol out of my head, and japhb and masak are to blame :-)
08:22 jnthn masak: There *is* a way up the tree, see the breadcrumbs trail.
08:23 lizmat joined #perl6
08:23 jnthn masak: And the plan for that page is for it to include an icycle graph (upside-down flame graph that doesn't burn :P)
08:23 jnthn For now it's plenty useful anyway. :)
08:24 Hor|zon joined #perl6
08:24 jnthn As for the linking thing - yeah, patches welcome. I looked at the bit of Angular that does those sorts of things and it looked less than intuitive. :)
08:25 fhelmberger joined #perl6
08:25 ptc joined #perl6
08:27 moritz oh, the breadcrumb path is at the very top
08:27 Mso150 joined #perl6
08:28 masak oh -- missed the breadcrum trail
08:28 pmichaud good morning, #perl6
08:28 masak pmichaud! \o/
08:29 masak jnthn: ooh, icycle graph. sounds like a job for D3.
08:29 masak jnthn: and sounds like it could be done during a hackathon sometime.
08:29 jnthn masak: Oh, I realized those graphs are just a bunch of cells so you just do it by generating an epic table, with carefully set colspans :)
08:30 masak o.O
08:30 jnthn Why make it hard? :)
08:31 * masak .oO( http://giveupandusetables.com )
08:31 jnthn :D
08:31 jnthn Well, not so much give up as "realize you don't need to use This Year's Hot New Library" to achieve something that ain't all that hard ;)
08:32 masak *nod*
08:32 masak well, don't let me stand in the way of the simple solution :)
08:32 jnthn I don't think I'm trendy enough to be a JS developer. :)
08:36 nine jnthn: why tables? Seems simpler to use just nested divs: <div id="MAIN" style="width: 200px";><div id="foo" style="float:left; width: 100px"><a href="#foo">foo</a></div><div id="bar" style="float:left; width: 70px"><a href="#bar">bar</a></div><a href="#MAIN">MAIN</a></div>
08:37 nine CSS: #flamegraph a { display: block; clear: left; }
08:37 ptc_p61 joined #perl6
08:37 rurban joined #perl6
08:37 ptc_p61 left #perl6
08:37 moritz ... until they start to float because your viewport is too small
08:38 ptc_p61 joined #perl6
08:38 nine Oh, making it an icycle graph requires putting the <a>s before the lower level <div>s.
08:38 lizmat timotimo: re http://irclog.perlgeek.de/​perl6/2014-10-12#i_9497281  , yes, I think so.  $*EXECUTABLE_NAME is a string
08:39 nine moritz: no because the outermost <div> has a fixed width
08:39 nine moritz: one could also give the widths as percentages to make it flexible.
08:40 jnthn nine: 'cus float + line stuff up = suffering every darn time...
08:41 pmichaud r:  my @a = <a b c>; my @b = <d e f>;  say (@a,@b)[2];
08:41 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«(Mu)␤»
08:41 pmichaud r:  my @a = <a b c>; my @b = <d e f>;  say (@a,@b)[1];
08:42 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«d e f␤»
08:45 pmichaud r: my @b = <d e f>;  say (0,2,4,@b,8,@b)[3,4]
08:45 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«d e f 8␤»
08:45 pmichaud r: my @b = <d e f>;  say (0,2,4,@b,8,@b)[3,4].elems
08:45 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«4␤»
08:46 cognome joined #perl6
08:47 pmichaud r:  say (0,(1,2,3)).elems
08:47 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«2␤»
08:47 pmichaud r:  say (0,(1,2,3))[0..1].elems
08:47 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«2␤»
08:47 pmichaud r:  say (0,(1,2,3))[0,1].elems
08:47 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«2␤»
08:47 pmichaud r:  say (0,(1,2,3),4)[0..4].elems
08:47 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«3␤»
08:48 nine jnthn: still seems simple to me: http://niner.name/icycles.html
08:48 nine moritz: ^^^
08:48 pmichaud r: my @b = (1,2,3);   say (0,@b,4)[0..4].elems
08:48 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«6␤»
08:48 pmichaud r: my @b = (1,2,3);   say (0,@b,4)[0,1,2].elems
08:48 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«5␤»
08:48 pmichaud r: my @b = (1,2,3);   say (0,(1,2,3),4)[0,1,2].elems
08:48 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«3␤»
08:49 woolfy joined #perl6
08:49 jnthn nine: Well, if somebody sends in a patch that does it that way then it'll end up that way. ;)
08:49 dakkar joined #perl6
08:49 pmichaud r: my @b = (1,2,3);   say (0,@(1,2,3),4)[0,1,2].elems;
08:49 nine Percentages seem to work perfectly fine as well.
08:49 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«5␤»
08:50 pmichaud r: my @b = (1,2,3);  say (0,@b).elems;  say (0,(1,2,3)).elems;  say (0,@(1,2,3)).elems
08:50 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«2␤2␤2␤»
08:50 pmichaud r: my @b = (1,2,3);  say (0,@b)[0,1].elems;  say (0,(1,2,3))[0,1].elems;  say (0,@(1,2,3))[0,1].elems
08:50 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«4␤2␤4␤»
08:51 pmichaud my brane hurts now  :)
08:51 moritz so .elems on a slice flattens
08:52 moritz ... but only for arrays or lists, not parcels
08:52 pmichaud which is wrong imo  :)
08:52 moritz did I observe that correctly?
08:52 moritz pmichaud: agreed. When it doesn't flatten without the slice, the slice shouldn't make it flatten
08:53 nine jnthn: where can I find the source code to patch?
08:53 moritz nine++ # asking the right questions
08:54 jnthn nine: https://github.com/perl6/nqp/blob/mast​er/src/vm/moar/profiler/template.html
08:54 jnthn If you work in the NQP build directory it should prefer the one in the repo
08:54 Hor|zon joined #perl6
08:56 pmichaud of course, rakudo's current response could be implementation bug... I'm just wanting to see if we can decide what the semantic *should* be.
08:57 nine jnthn: thanks. I'll have a look at it in the evening
08:57 virtualsue joined #perl6
09:00 pmichaud TimToady: any thoughts on subscripting above?
09:00 pmichaud TimToady: related question:  if .[] on Parcel doesn't flatten, I'm thinking .[] on List shouldn't flatten either
09:01 mephinet hmm, I just rakudobrew'd, and now get an extra error message on any exception. E.g:
09:01 mephinet class Foo { has $.fn is IO::Path; }; Foo.new();
09:01 mephinet shows the correct error:
09:01 mephinet use of uninitialized value of type Any in string context  in any  at src/Perl6/World.nqp:1844
09:01 mephinet but then follows up with:
09:01 mephinet Unhandled exception: No exception handler located for warn
09:01 mephinet with a traceback coming from print_exception
09:01 moritz pmichaud, TimToady: so basically the only operation that is left that flattens by default is iteration, right?
09:02 mephinet I can't remember having seen this error message yesterday (while I *definitely* made this error many times yesterday X-)
09:02 pmichaud moritz: *no*
09:02 pmichaud iteration doesn't flatten...   .map does
09:02 moritz mephinet: has $.fn is IO::Path is wrong
09:02 mls joined #perl6
09:02 moritz mephinet: you likely want  has IO::Path $.fn
09:03 mephinet true, thanks for the reminder
09:03 pmichaud moritz: we definitely need to be able to iterate without flattening.
09:03 pmichaud (always have)
09:03 moritz pmichaud: ok, I was thinking about for-loops specifically
09:03 dalek ecosystem: 3106776 | paultcochrane++ | META.list:
09:03 dalek ecosystem: Add PerlMongers::Hannover to ecosystem
09:03 dalek ecosystem:
09:03 dalek ecosystem: This module is intended as the perl6 version of the equivalent PerlMonger::Hannover perl5 module.
09:03 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/31067765be
09:03 dalek ecosystem: 61f5e8a | (Tobias Leich)++ | META.list:
09:03 dalek ecosystem: Merge pull request #33 from paultcochrane/patch-1
09:03 pmichaud right, that's a .map
09:03 dalek ecosystem:
09:03 dalek ecosystem: Add PerlMongers::Hannover to ecosystem
09:03 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/61f5e8ad72
09:03 pmichaud that's not general "iteration"  :-)
09:03 mephinet moritz: thanks!
09:03 moritz pmichaud: because that's the standard, user-facing iteration technique
09:04 pmichaud well,   infix:<...>   is a form of iteration, too.
09:04 moritz yes
09:04 moritz and I know that the List.tree implementation also needs a low-level, non-flattening iteration
09:05 pmichaud as do   .sort   .pick   .roll   etc
09:05 pmichaud r:  say   (1,(2,3,4)).max
09:05 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«4␤»
09:05 pmichaud ouch.
09:06 moritz then it would be nice to also have non-flattening iteration exposed to the user, so that they can program the equivalent of built-int functions
09:06 moritz thing.map(:lol, {...}) maybe.
09:06 moritz or .lolmap or so
09:06 moritz no idea
09:06 pmichaud I'm more worried about being able to express "flattening" versus "non-flattening" behaviors in a consistent manner
09:07 moritz I'm also worried that currently, you have to memorize whether something flattens or not
09:07 pmichaud I don't like that we have some methods that flatten and some that don't.  Worse, we now have differing flattening behaviors for Parcel and List, which used to never be the case.
09:07 moritz there doesn't seem to be a good rule of thumb
09:08 moritz pmichaud: then we are in violent worry-agreement
09:08 FROGGS joined #perl6
09:08 timbunce_ joined #perl6
09:09 moritz would it be very heritcal to suggest to never flatten implicitly, and always call .flat?
09:09 moritz I know that's a big departure from p5
09:09 Ven joined #perl6
09:09 moritz but most other programming languages seem to get along fine with that
09:09 pmichaud moritz: well, that's one thing we've been tossing around here
09:09 pmichaud but then this one looks uglyish:    (@a,@b).max
09:10 moritz ok, slurpies might still flatten
09:10 pmichaud yes, slurpies should flatten, definitely.
09:10 moritz (@a, @b).flat.max
09:10 moritz not too bad, IMHO
09:10 moritz but them I'm not a code golfer
09:10 pmichaud moritz: well, it gets weird with:
09:10 moritz or
09:10 pmichaud (@a,@b).max   vs.    max @a,@b
09:11 moritz another infix operator for , that flattens
09:11 pmichaud that feels very wrongish.
09:11 moritz it doesn't, to me
09:11 timotimo o/
09:11 FROGGS \o
09:11 pmichaud and flattening likely needs to be type-based, not constructor-operator based
09:11 moritz two different operations, two different operators
09:12 pmichaud except I don't think , presently has anything to do with flattening.  Unless you're saying one uses something other than ',' to construct a flattening List or Parcel
09:13 japhb moritz: My worries match yours
09:13 moritz pmichaud: that's exactly what I'm saying
09:13 moritz pmichaud: iirc, Haskell uses : to concatenate two lists
09:13 japhb Why can we not say that .method calls don't flatten, slurpy params do, and the builtins have slurpy params?
09:14 mauke moritz: ++
09:14 moritz pmichaud: other than the fact that : is taken (I guess), I wouldn't mind (@a, @b).something to not flatten and (@a:@b).something to flatten
09:14 mauke Haskell uses : as cons
09:15 moritz maybe ,, could be flattening list concatenation, or something
09:15 japhb That's an interesting idea
09:16 japhb moritz: Would the simple rule I listed above work for you as not having to memorize special cases?
09:18 moritz japhb: yes
09:18 pmichaud we're conjecturing a postfix flattening operator now.   I proposed  postfix:<@>
09:18 moritz (@a, @b)@.something?
09:18 TimToady postfix _ would also work, but is as right angles to prefix |
09:18 pmichaud moritz: yeah
09:18 TimToady *at
09:19 moritz TimToady: also postfix _ is ugly for identifiers
09:19 moritz @thingy.blerg\_.sort
09:19 moritz what precedence?
09:19 TimToady if we required spaces around infix:<|>, we could have a postfix:<|>
09:20 TimToady but I don't think I want to do that
09:22 FROGGS hah, that is the point where Hor|zon left :P
09:22 TimToady could allow @thingy.blerg._.sort as well, but then only saves 3 chars over .flat
09:22 leont joined #perl6
09:22 TimToady otoh, I'd really like to know flat context at compile time, and .flat is late bound
09:23 pecastro joined #perl6
09:23 moritz and having prefix @ mean flat is out of question?
09:23 pmichaud I don't think that "flat at compile time" is going to quite work, though.
09:24 pmichaud I'm *kind* of okay with prefix @ meaning flat... but it means we need another way to do de-itemization (or just use .list)
09:24 pmichaud it does make me worry about things where @var is bound to a LoL, too.
09:24 pmichaud because that kinda doesn't flatten
09:24 TimToady I think @ only implies Positional
09:25 Ven uuuhmmm
09:26 Ven that seems like a rather major change, though
09:26 TimToady I don't think @thingy.blerg.|sort is taken
09:26 Ven though I don't really like flattening
09:26 pmichaud Ven: you're correct, the shift of .[] from flattening to non-flattening may result in some far-reaching changes
09:27 kjs_ joined #perl6
09:27 TimToady .|[]
09:27 Ven m: for (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4))) { .say } # iterating flattens as well
09:27 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/z9jNE186YU�Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)�at /tmp/z9jNE186YU:1�------> [32m, (3, (5, (4, 5), (7, (8, 9)), (3, 4))) [33m�…»
09:27 Hor|zon joined #perl6
09:27 pmichaud Ven: .map always flattens, yes.
09:28 Ven m: for (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4)))) { .say } # iterating flattens as well
09:28 camelia rakudo-moar 0d1ab2: OUTPUT«1␤2␤3␤5␤4␤5␤7␤8␤9␤3␤4␤»
09:28 pmichaud there are iterating forms other than .map that don't flatten
09:28 Ven ...right.
09:28 Ven I know larry changed .elems to not-flatten recently...
09:28 pmichaud well, sometimes.  :-)  See my examples above.
09:28 TimToady m: (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4)))).deepmap: *.say
09:28 camelia rakudo-moar 0d1ab2: OUTPUT«4␤9␤7␤4␤3␤1␤3␤8␤5␤5␤2␤»
09:28 Ven I strongly believe that *ONLY* method changing flatten mode (.tree, .item, .list and .lol) should be special
09:28 Ven and all the other ones should flatten
09:29 TimToady m: say (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4)))).deepmap: *+1
09:29 camelia rakudo-moar 0d1ab2: OUTPUT«2 3 4 6 5 6 8 9 10 4 5␤»
09:29 pmichaud Ven:  s/.list/.flat/
09:29 Ven right.
09:29 TimToady m: say (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4)))).deepmap(*+1).perl
09:29 camelia rakudo-moar 0d1ab2: OUTPUT«(2, 3, 4, 6, 5, 6, 8, 9, 10, 4, 5)␤»
09:30 TimToady uhh
09:30 TimToady m: say (1, 2, (3, (5, (4, 5), (7, (8, 9)), (3, 4)))).tree.deepmap(*+1).perl
09:30 camelia rakudo-moar 0d1ab2: OUTPUT«(2, 3, (4, (6, (5, 6).item, (8, (9, 10).item).item, (4, 5).item).item).item)␤»
09:34 TimToady m: $_ = "food fool foop"; for m:g/(foo)/ {.say}
09:34 camelia rakudo-moar 0d1ab2: OUTPUT«「foo」␤ 0 => 「foo」␤␤「foo」␤ 0 => 「foo」␤␤「foo」␤ 0 => 「foo」␤␤»
09:35 TimToady m: $_ = "food fool foop"; for m:g/foo/ {.say}
09:35 camelia rakudo-moar 0d1ab2: OUTPUT«「foo」␤␤「foo」␤␤「foo」␤␤»
09:35 pmichaud m: $_ = "dump pump hump"; say m:g/(ump)/.perl
09:35 camelia rakudo-moar 0d1ab2: OUTPUT«(Match.new(orig => "dump pump hump", from => 1, to => 4, ast => Any, list => (Match.new(orig => "dump pump hump", from => 1, to => 4, ast => Any, list => ().list, hash => EnumMap.new()),).list, hash => EnumMap.new()), Match.new(orig => "dump pump hump", fr…»
09:36 pmichaud m: $_ = "d p h"; say m:g/(\w)/.perl
09:36 camelia rakudo-moar 0d1ab2: OUTPUT«(Match.new(orig => "d p h", from => 0, to => 1, ast => Any, list => (Match.new(orig => "d p h", from => 0, to => 1, ast => Any, list => ().list, hash => EnumMap.new()),).list, hash => EnumMap.new()), Match.new(orig => "d p h", from => 2, to => 3, ast => An…»
09:37 TimToady m: if "food fool foop" ~~ rx:g/foo/ {.WHAT.say}
09:37 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/nWykLepH0S�Adverb g not allowed on rx�at /tmp/nWykLepH0S:1�------> [32mif "food fool foop" ~~ rx:g/foo/[33m�[31m {.WHAT.say}[0m�»
09:38 moritz TimToady: there is no rx:g
09:38 TimToady nod
09:38 TimToady was trying to repro something I thought I remembered, but unsuccessfully
09:39 moritz (for the uninitiated, http://doc.perl6.org/language/regexes#Adverbs talks about why there is no rx:g)
09:39 dalek specs: ab289f4 | pmichaud++ | S02-bits.pod:
09:39 dalek specs: [S02]  Remove '$$' and '@$$' fossils, spotted at #apw2014.
09:39 dalek specs: review: https://github.com/perl6/specs/commit/ab289f4252
09:40 pmichaud to bring the channel up to date:  last night at dinner I proposed that with some of the other changes being discussed it's likely we can eliminate the Parcel type (and just use List)
09:40 pmichaud we're kind of investigating that... but more importantly, we need to really get a handle on flattening behavior
09:41 pmichaud because as things stand now .[] on Parcel doesn't flatten and .[] on List does.
09:41 pmichaud (as well as other strange edge cases)
09:41 * JimmyZ still doesn't know what is Parcel  :P
09:41 moritz and I've started to grow fond of parcels :-)
09:42 nine +1 for fewer listish types
09:42 JimmyZ +1 too, which always confuses me..
09:43 moritz +1 to fewer listisch types, but also +1 to actually having an immutable, list-ish container type
09:43 pmichaud moritz: why immutability, ooc?
09:44 moritz pmichaud: because value types can be very handy (for example when used as hash keys, or other identity-preserving operations)
09:44 JimmyZ .oO(listish can be simpler, since ssa can be simpler ...) :O
09:44 pmichaud moritz: well, Parcels are currently "immutable"
09:44 pmichaud but the things they contain are not
09:45 pmichaud (or don't have to be)
09:45 moritz right
09:45 pmichaud Is that what you're referring to?
09:45 moritz yes, no
09:45 moritz the "immutable things can contain mutable things" is another issue
09:45 pmichaud I haven't found a place where "immutable list type" is useful (which is why it's plausible to eliminate Parcel)
09:45 pmichaud moritz: so, you want a type where everything in it is immutable
09:46 pmichaud there are four possibilities here:
09:46 moritz pmichaud: yes, but IMHO that's mostly orthogonal to the current discussion
09:46 pmichaud 1.  a mutable aggregate containing mutable elements  (Array)
09:46 dalek perl6-bench/stress: c390a4a | (Geoffrey Broadwell)++ | bench:
09:46 dalek perl6-bench/stress: Add an eager needed to prevent the gather from being entirely too lazy
09:46 cognome joined #perl6
09:46 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/c390a4aafb
09:46 dalek perl6-bench/stress: cc141c6 | (Geoffrey Broadwell)++ | bench:
09:46 dalek perl6-bench/stress: Allow quickstart to be stopped after a particular step, useful for e.g. getting a clean perl6-bench all ready to begin timings without actually building compilers or running benchmarks
09:46 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/cc141c6442
09:46 pmichaud 2. an immutable aggregate containing mutable elements (Parcel)
09:46 moritz (I'd like a general mechanism to have mutability recursively descend into a data structure)
09:46 Ven my $a = 'banana'; my $b = 'anna'; say [Z*] ($a, $a).map(*.comb.Bag.values) # how can I make this work?
09:47 pmichaud s/mutability/immutability/   # perhaps?
09:47 moritz pmichaud: yes, sorry
09:47 Ven m: my $a = 'banana'; my $b = 'anna'; say [Z*] ($a, $a).map(*.comb.Bag.values) # how can I make this work?
09:47 camelia rakudo-moar 0d1ab2: OUTPUT«1 3 2 1 3 2␤»
09:47 moritz but as long as we don't have that, your 2. is a good first approximation
09:47 moritz Ven: what do you want to achieve?
09:47 pmichaud moritz: yes, I haven't found any place where that immutability is terribly important (more)
09:48 Ven moritz: getting $a.comb.Bag.values Z* $a.comb.Bag.values
09:48 pmichaud knowing that it's fully reified is important, though -- but that can just be an attribute instead of a type
09:48 moritz Ven: that looks kinda malformed to me. Bag.values isn't sorted in any way
09:48 Ven moritz: I don't want it sorted
09:48 TimToady Z requires order
09:49 moritz Ven: but Z req.. what TimToady says
09:49 Ven .oO( Z requires TimToady to speak )
09:49 moritz m: say 'aaaabbbccd'.comb.Bag.values for ^5
09:49 camelia rakudo-moar 0d1ab2: OUTPUT«4 3 2 1␤4 3 2 1␤4 3 2 1␤4 3 2 1␤4 3 2 1␤»
09:49 moritz that looks like an accident :-)
09:50 pmichaud anyway, I don't feel as though immutability is an important component of flattening behavior
09:50 moritz pmichaud: I agree, it's not important for flattening
09:50 pmichaud 3. a mutable aggregate containing immutable/mutable elements (List)
09:50 Ven moritz: I don't understand why it needs order?
09:50 nine pmichaud: immutable aggregate containing mutable elements sounds like a tuple in Python. So having such a type helps Python <-> Perl 6 interop.
09:51 Ven m: say (1, 3, 2) Z* (1, 3, 2)
09:51 camelia rakudo-moar 0d1ab2: OUTPUT«1 9 4␤»
09:51 Ven no order needed?
09:51 pmichaud nine: why is the immutable portion important, though?
09:51 moritz Ven: well, Bag.values returned (4, 3, 2, 1) here, but it could have just as well returned (4, 1, 2, 3)
09:51 pmichaud I mean, what does immutability of the aggregate gain
09:51 pmichaud ?
09:51 moritz Ven: what's the value of multiplying that with another list? what do you know in the end?
09:51 Ven moritz: that seems very weird. I expect bag(a, b(3), c(2)) to return (1, 3, 2).
09:52 moritz pmichaud: as I said, having something immutable gives you a value type, which makes it much better suited as hash keys
09:52 pmichaud (my 4 types weren't orthogonal enough -- I can explain later)
09:52 nine pmichaud: I don't know. Seems at least important enough for Python to have a special type for it. From my perspective, it makes round trips of tuples from Python through Perl 6 back to Python possible without any loss.
09:52 pmichaud moritz: you mean we would use a Parcel as a hash key?
09:52 moritz pmichaud: or for any other operation that values object identity
09:53 moritz pmichaud: yes
09:53 TimToady m: say [Z*] (1,3,2), (1,3,2)
09:53 camelia rakudo-moar 0d1ab2: OUTPUT«1 9 4␤»
09:53 cognome joined #perl6
09:53 nine moritz: but for such cases you'd need recursively immutable data structures
09:53 pmichaud exactly
09:53 moritz Ven: then your expectations are off. Afaict, bags aren't ordered.
09:53 moritz p: say 'aaaabbbccd'.comb.Bag.values for ^5
09:53 camelia rakudo-parrot 0d1ab2: OUTPUT«4 3 2 1␤4 3 2 1␤4 3 2 1␤4 3 2 1␤4 3 2 1␤»
09:53 Ven no, you'll always get the same result
09:53 moritz or is it?
09:54 TimToady only by accident
09:54 pmichaud I'm fine if we come up with a immutable aggregate of immutable elements (which we don't presently have), but it's unlikely to be a commonly used type
09:54 nine Strange how the discussion turned from reducing the number of listish types to creating new ones...
09:54 pmichaud in the sense of  I don't think our built-in operations are going to be producing immutable aggregates of immutable elements
09:55 pmichaud nine: my purpose is to get list operations to work.
09:55 moritz pmichaud: fwiw I don't think an immutable container (whether the elements are mutable or not) is essential; I'd just like it for Perl 6 to be easy to build value types
09:55 pmichaud nine: that may involve reducing the number of types or increasing them... but I want the result to be reasonably consistent for a newcomer to Perl 6
09:55 pmichaud and sufficiently efficent
09:56 moritz so, I'm not going nuclear for preserving parcels, or anything
09:56 moritz (not that I usually go nuclear on anything...)
09:56 nine pmichaud: a laudable cause. This list stuff and complicated flattening rules made it really difficult for me.
09:56 leont It seem Duraction doesn't really have documentation :-/
09:56 pmichaud anyway, at the moment one of the key cruxes of GLR (imo) is getting a handle on flattening behavior
09:56 leont Having some kind of abstraction around "give me this in seconds/miliseconds/whatever" would be nice
09:58 moritz Ven: S02 says   Bag         Unordered collection of values that allows duplicates
10:00 denis_boyun_ joined #perl6
10:09 Ven Do we have some kind of "splice"? add an element at some index?
10:09 dalek perl6-bench/stress: 2abd5c7 | (Geoffrey Broadwell)++ | timeall:
10:09 dalek perl6-bench/stress: Work around recursive reference oops
10:09 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/2abd5c7d36
10:10 TimToady m: my @a = <a b d>; @a.splice(2,0,'c'); @a.say
10:10 camelia rakudo-moar 0d1ab2: OUTPUT«a b c d␤»
10:11 Ven TimToady++
10:13 flaviusb joined #perl6
10:16 Hor|zon joined #perl6
10:18 dalek specs: fe47b03 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
10:18 dalek specs: Change Supply.more to Supply.drip
10:18 dalek specs:
10:18 dalek specs: Nobody really liked "more" anyway.  "Drip" sort of signifies the itemness
10:18 dalek specs: of the things being put in the Supply being tapped.  Discussed with
10:18 dalek specs: jnthn++ and pmichaud++
10:18 dalek specs: review: https://github.com/perl6/specs/commit/fe47b03492
10:25 leont That will break a bunch of my code! :-p
10:25 TuxCM joined #perl6
10:26 wollmers joined #perl6
10:29 Ven http://isocpp.org/files/papers/N4174.pdf c++ gone crazy
10:30 timotimo it'll have a generous deprecation cycle
10:31 pmichaud yeah, we'll give you until at least the end of today.  :)
10:31 FROGGS m: use QAST:from<NQP>; say QAST::Op.new( :op<if> ) # lizmat
10:31 camelia rakudo-moar 0d1ab2: OUTPUT«No such method 'gist' for invocant of type 'QAST::Op'␤  in sub say at src/gen/m-CORE.setting:15797␤  in block <unit> at /tmp/lJp8o43zp2:1␤␤»
10:31 FROGGS well, 'say'-ing it is probably bogus anyway
10:34 pmichaud r: say Nil.^mro    # RT 118717
10:34 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
10:41 japhb As requested by Ven, my suggestion for a replacement for 'winner': 'earliest'
10:43 FROGGS bartolin++
10:45 mephinet To parse XML, which module is the way to go? supernovus/exemel?
10:48 dalek specs: 83d4beb | TimToady++ | S17-concurrency.pod:
10:48 dalek specs: Prefer "emit" to "drip"
10:48 dalek specs:
10:48 dalek specs: (Also, avoid C<> on verbs that are being used primarily for their meaning,
10:48 dalek specs: even if there happens to be a keyword of the same name.  The fact we can
10:48 dalek specs: get away with this means we now have a better verb with the proper valence.)
10:48 dalek specs: review: https://github.com/perl6/specs/commit/83d4beb4ef
10:51 Ven Unhandled exception: ctxlexpad needs an MVMContext
10:51 Ven while trying to run perl6-debug
10:53 FROGGS mephinet: I am porting XML::LibXML to P6, but for now your have to stick to exemel, aye
10:54 masak I've successfully used exemel.
10:54 nine .oO( or use XML::LibXML and replace it with the P6 version once that's finished )
10:56 pmichaud emi
10:57 pmichaud emit++
10:57 timotimo damn you, trigonometry
11:00 pmichaud #apw2014 update:  consensus here for GLR design is that lists don't flatten by default unless explicitly told to do so.  (There may be an exception for .map, .grep, etc.)
11:01 pmichaud we're trying to come up with a shortcut for .flat -- such as a postfix operator
11:03 moritz sanity++
11:03 moritz pmichaud++
11:03 moritz (everyone involved)++
11:07 virtualsue joined #perl6
11:12 TuxCM joined #perl6
11:17 prevost joined #perl6
11:26 rurban joined #perl6
11:26 Alina-malina joined #perl6
11:31 mephinet FROGGS: porting XML::LibXML -> great!
11:31 FROGGS yeah, I'll need it for an XML::Compile port
11:32 dalek roast: 109eb14 | usev6++ | S03-metaops/hyper.t:
11:32 dalek roast: Add test for RT #77670
11:32 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77670
11:32 dalek roast: and some cosmetics
11:32 dalek roast: review: https://github.com/perl6/roast/commit/109eb1445d
11:32 mephinet nine: you mean, using Inline::Perl5?
11:32 nine mephinet: yes.
11:32 mephinet I'll give it a try!
11:34 kjs_ joined #perl6
11:35 moritz Juerd: do you have an traffic figures for feather{1,2,3} ?
11:38 pmichaud can someone that is {feather,docs,perl6.org} aware fix it so that the Synopsis link points to a page that incorporates my commit at https://github.com/perl6/mu/commit/0b2​3d387986d63c6d39a9441a8eb906453027748 ?
11:39 pmichaud Or give me instructions as to what I've done wrong or need to do to get the page to update?  (It claims to auto-update, but that hasn't happened.)
11:40 masak hey #apw2014, great to hear about the GLR progress.
11:40 masak *why* are .map and .grep possible exceptions?
11:40 * Ven fixed timotimo's JITing of atan2 o/
11:41 masak I'm fishing for an answer that sounds like "because the operator is not iffy"
11:41 pmichaud masak:  should     for @a,@b { .say }    flatten or no?
11:41 masak pretty sure it should.
11:41 pmichaud that kind of implies that .map flattens
11:41 Ven yes, it should.
11:41 masak yes, got it.
11:41 pmichaud as in   (@a,@b).map({ .say })
11:41 Ven iterating flattens
11:41 masak and I agree it should.
11:41 pmichaud NONONO
11:41 masak :)
11:42 pmichaud Please don't equivalence "for" and "iterating"
11:42 masak *nod*
11:42 masak pmichaud: my question isn't "does it make sense" -- I agree it does
11:42 masak pmichaud: my question is "what is the name of the quality .map has that makes it flatten things? can we reify it? is it user-exposed?"
11:43 pmichaud masak: I don't have a quick answer to that.  (more)
11:43 pmichaud There's been some speculation about having    (...).|foo   be a flattening form of foo
11:44 TimToady feel free to bikeshed that
11:44 masak the syntax does make sense.
11:44 pmichaud er,  .|foo is a flattening form of .foo
11:44 masak right
11:44 TimToady assuming we can have .|"foo" and such as well
11:44 masak so it'd mean .flat.foo ?
11:44 pmichaud the   for (@a,b) { .say }    would be equivalent to  (@a.@b).|map({.say})
11:44 TimToady one could view it as picking the flattening variant of what follows as well
11:45 pmichaud which is essentially   .flat.map({say}).... but what TimToady++ just said
11:45 pmichaud which is that someone might be able to define method "|foo"  as a (optimized) flattening variant
11:45 masak what's the interaction/collision with other dotties? like .?foo and .=foo ?
11:45 pmichaud as I said: speculation :)
11:45 pmichaud Haven't considered interaction with other dotties
11:46 masak oki
11:46 TimToady was starting to
11:46 pmichaud but at some level I'd prefer    .flat.?foo   to trying to compose them
11:46 TimToady certainly before the following in .|"foo"
11:46 TimToady if it's considered part of the method name, then .?|foo makes more sense than the opposite
11:47 masak *nod*
11:47 TimToady .= probably doesn't need flattening
11:47 pmichaud there is that.
11:47 pmichaud also, during #apw2014 jnthn++ and I have come up with ways to make sink context much more efficient
11:47 TimToady the problem with establing a |foo meme is that it means the opposite if foo is a function
11:48 TimToady *blish
11:48 moritz I really think that if we remove most autoflattening, then   for @a, @b -> $x { ... } shouldn't flatten also, but that we need a very convenient way to make it flatten
11:48 TimToady |foo() would flatten the result
11:48 moritz s/also/either/
11:49 TimToady |for @a, @b -> $x {...}   # ducks
11:49 masak hehe, I thought the same :)
11:49 TimToady for flat @a, @b maybe
11:49 TimToady |-> maybe
11:49 masak `for flat` sounds entirely doable, and quite self-documenting
11:49 TimToady it's a shame that | has come to mean making something _ :)
11:50 TimToady is kinda long
11:50 brrt joined #perl6
11:50 pmichaud r:  for flat (1,2),(3,4) -> { .say }
11:50 camelia rakudo-moar 0d1ab2: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in block <unit> at /tmp/tmpfile:1␤␤»
11:50 camelia ..rakudo-parrot 0d1ab2: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in block <unit> at /tmp/tmpfile:1␤␤»
11:50 pmichaud I'm worried about the parse
11:50 TimToady um, you need a param
11:50 moritz |-> wouldn't work nicely  for non-pointies
11:50 masak right, not `-> {`
11:51 moritz m: for flat (1, 2), (3, 4) -> $x { $x.say }
11:51 pmichaud r:  for flat (1,2),(3,4) { .say }
11:51 camelia rakudo-moar 0d1ab2: OUTPUT«1␤2␤3␤4␤»
11:51 camelia rakudo-{parrot,moar} 0d1ab2: OUTPUT«1␤2␤3␤4␤»
11:51 masak \o/
11:51 pmichaud okay, it works
11:51 moritz for @a, @b |{ .say } # hm?
11:51 moritz probably ambiguous
11:51 pmichaud yeah, I'm worried about that | in operator position
11:51 * masak votes "we don't need extra syntax, because `for flat` works today"
11:52 masak I'm fine with changing the semantics of for/.map/.grep to not flatten.
11:52 masak it'll have ecosystem fallout, but we can handle that.
11:53 masak waitwait, what does it mean for the case of `for @a { .say }`
11:53 masak ?
11:54 pmichaud forflat @a, @b { .say }   # /me ducks
11:54 Ven uugh. It doesn't seem we're going for something that's more consistent
11:54 masak that's a pretty natural way to loop over an array. will it go away (have to write `for flat @a` instead) or will it keep working?
11:54 pmichaud flatfor @a, @b { .say }   # /me ducks again
11:55 masak pmichaud: "2003: we removed foreach from the language because it's too long, and unnecessary. 2014: here, use `forflat`" :P
11:55 pmichaud ffor @a, @b { .say }
11:55 timotimo can we get an EXPORTHOW category for things that take a blast?
11:55 FROGGS flort would be shorter
11:55 jnthn timotimo: That's in macro land
11:55 * masak snatches away all the for loop syntax from #perl6 and hides it in a safe place
11:55 timotimo OK
11:55 pmichaud masak: I'm writing entirely tongue-in-cheek here  :)
11:55 masak nodnod
11:55 colomon I hate to be slow here (and apologize if I missed this):
11:55 TimToady FOR @a, @b {...}
11:55 timotimo i actually looked over and he actually has his tongue in his cheeks
11:56 pmichaud yay, Modula III !
11:56 colomon What is my @a = 1, 2, 3; .say for @a supposed to print out?
11:56 TimToady Fore! @a, @b
11:56 colomon (under proposed scheme)
11:56 timotimo 4 @a, @b { }
11:56 pmichaud colomon++
11:56 masak what colomon said. that was also my question above.
11:56 timotimo .u loop
11:56 yoleaux U+01AA LATIN LETTER REVERSED ESH LOOP [Ll] (ƪ)
11:56 yoleaux U+08AA ARABIC LETTER REH WITH LOOP [Lo] (ࢪ)
11:56 yoleaux U+08EC ARABIC TONE LOOP ABOVE [Mn] (◌࣬)
11:57 jnthn ᶠᵒʳ @a, @b { ... } # it's smaller 'cus it's been flattened
11:57 timotimo ƪ @a, @b { }
11:57 timotimo ___ @a, @b { }
11:57 FROGGS jnthn--
11:57 FROGGS :P
11:57 * masak approves of this use of decrement
11:58 pmichaud timotimo++
11:58 Hor|zon joined #perl6
11:58 timotimo they are going to take away the flattening nature of using , in a list assignment! :(
11:58 masak o.O
11:59 timotimo "for will be the only thing that flattens"
11:59 masak not much of a list assignment without the flattening nature of infix:<,>...
11:59 pmichaud TimToady proposes  that  .for  is the flattening form of .map
12:00 colomon +1
12:00 * masak likes that
12:00 jnthn my @a = @b, @c;
12:00 pmichaud so   for @a,@b { .say }    is equivalent to  (@a,@b).for({.say})
12:01 colomon …. that only helps if we understand what  (@a,@b).for({.say}) does.  :)
12:02 colomon part of the problem I'm having understanding this is it seems to me there are three things here:
12:02 lizmat s/winner/earliest/ ++
12:02 masak colomon: it does (@a,@b).flat.map({.say})
12:02 masak lizmat: ooh, missed that. yes earliest++
12:02 lizmat it conveys the sense of timing
12:02 colomon 1) take array as item
12:02 colomon 2) flatten array to list of items
12:03 colomon 3) take array as array, which might contain arrays which are not flattened
12:03 brrt \o
12:03 yoleaux 06:41Z <bartolin> brrt: wrt 112678, the relevant line is S03:800 (just saw your question in the backlog)
12:03 synopsebot Link: http://perlcabal.org/syn/S03.html#line_800
12:03 colomon except those terms are all wrong, apologies
12:03 brrt aha.. thanks bartolin++
12:04 * brrt had been looking for that for quite some time
12:04 FROGGS moritz: that does not work out on parrot and jvm: https://github.com/perl6/nqp/commit/cd​f4639fbaccb7c1e6841a29d9f86d09d2be2a74
12:04 brrt very activity by the way :-)
12:05 timotimo brrt: are you with us in spirit? :)
12:05 dalek specs: 116e309 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
12:05 dalek specs: s/winner/earliest/ as suggested earlier today
12:05 dalek specs: review: https://github.com/perl6/specs/commit/116e309177
12:06 brrt as much as i can be :-)
12:06 brrt if there's any small thingy i can do, just let me now
12:06 brrt know
12:08 colomon I guess the right way to say what I'm thinking is: 1) don't flatten 2) flatten recursively 3) flatten just the top level
12:10 TimToady 1) .tree 2) .flat 3) .lol  (currently)
12:10 * colomon wishes he could be there.
12:10 * masak too
12:12 colomon TimToady: I was just reading S02 on .tree, and I find the examples almost 100% incomprehensible.  :(
12:12 JimmyZ joined #perl6
12:13 pmichaud colomon: that can be fixed once we get the GLR done
12:13 pmichaud from discussion here -- note that "one level down" is effectively what arrays do
12:14 pmichaud i.e.,  elements stored in an Array don't flatten
12:14 brrt maybe we should make a Global Perl Holiday so we can all have a date on which we can all come
12:15 dalek rakudo/nom: e96d4d6 | jonathan++ | src/Perl6/Metamodel/MethodContainer.nqp:
12:15 dalek rakudo/nom: Fix an out-dated comment.
12:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e96d4d60be
12:15 dalek rakudo/nom: 50ff378 | jonathan++ | src/Perl6/Metamodel/MethodContainer.nqp:
12:15 dalek rakudo/nom: Implement .^lookup('method').
12:15 dalek rakudo/nom:
12:15 dalek rakudo/nom: Used to get a method for introspection, as opposed to .^find_method
12:15 dalek rakudo/nom: which gets it for invocation (and so might be some closure that, for
12:15 dalek rakudo/nom: example, puns a role, takes a lock, etc.)
12:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50ff378fb8
12:16 timotimo i can definitely see how this is useful
12:16 colomon pmichaud: I wasn't so much complaining about the quality of the documentation as my understanding of what the heck is going on.
12:17 pmichaud colomon: .tree is a way of itemizing sub-levels of a list
12:17 timotimo all of them rather than just the first level
12:17 timotimo does lol actually flatten anything that's in the inner lists?
12:17 timotimo (replace "does" with "is supposed to")
12:17 pmichaud no, it defers that decision
12:17 colomon from my perspective as a p6 programmer, for me the difficulty has been the times I expect first level flattening and do not get it by default.
12:18 colomon I don't think I've *ever* run into case where I actually wanted to flatten recursively.
12:18 FROGGS colomon: the sigil usually tells you
12:18 pmichaud colomon: think about return values from hypers and cross metaoperators
12:19 pmichaud those have structure that we often want to discard
12:19 colomon pmichaud: with hypers I usually want the return value to have the same form as the input values.
12:19 colomon though you're right about X or X,
12:20 pmichaud colomon: fair enough.  I have a ton of tickets from masak++ where the expectation is flattening (and the bug report is "it didn't flatten")
12:21 * masak has no memory of that :P
12:21 pmichaud my memory is RT :)
12:21 masak hard to argue with ;)
12:21 Mouq joined #perl6
12:22 breinbaas joined #perl6
12:23 FROGGS good that I can still see jnthn and leont
12:23 pepl joined #perl6
12:23 cosimo joined #perl6
12:23 colomon is part of the problem in this discussion that we "want" 1, 2 to be a Parcel constructor but @a, @b to be a list concatenator?
12:23 jnthn joined #perl6
12:23 PerlJam good * #perl6
12:23 yoleaux 10 Oct 2014 07:21Z <azawawi> PerlJam: finally found an example @ https://github.com/perl6/roast/b​lob/master/S17-procasync/print.t . Thanks :)
12:23 Ven well....
12:24 nine joined #perl6
12:24 bartolin joined #perl6
12:24 TimToady we're actually trying to get rid of parcels at the moment, and make everything lists, that can be processed either by "arg" or by element
12:24 Ven I actually don't explain flattening in my tutorial because I havn't found a way to do it "sanely"
12:24 bloonix joined #perl6
12:24 Gothmog joined #perl6
12:24 pmichaud jnthn:   @a.push(@b,@c)   as equivalency to   @a ,= @b,@c    (which means @a = @a,(@b,@c) )
12:24 jnthn Yes, that's an equivalency I'd expect
12:24 pmichaud do we expect (@b,@c) to be appended to @a as a single tuple, or flattened...
12:24 krunen joined #perl6
12:25 Ven and @a.push(|(@b, @c).flat) to be `(@a,@b,@c).flat`?
12:26 masak (getting rid of parcels and making everything lists)++
12:26 Bucciarati joined #perl6
12:26 [Coke] pmichaud: you don't need to include [BUG] at the beginning of tickets.
12:26 masak you don't???
12:26 Ven masak: immutabilityyyy
12:26 timotimo [BUG^] no
12:26 tadzik don't they get categorized immediately when you do?
12:26 masak right
12:27 masak what tadzik said
12:27 ilogger2 joined #perl6
12:27 leont joined #perl6
12:27 timotimo doesn't "rakudobug@" do that? :P
12:27 virtualsue joined #perl6
12:27 Ven m: say (1, (2, ((3)), 10, 20)[3]
12:27 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/3BP8ZAj81vâ�¤Unable to parse expression in parenthesized expression; couldn't find final ')' â�¤at /tmp/3BP8ZAj81v:1â�¤------> [32msay (1, (2, ((3)), 10, 20)[3][33mâ��[31m<EOL>[0mâ�¤    expectin…»
12:27 masak timotimo: no, things can be patches or todos.
12:27 Ven m: say (1, (2, ((3)), 10), 20)[3]
12:27 camelia rakudo-moar 0d1ab2: OUTPUT«(Mu)␤»
12:28 Ven m: say (1, (2, ((3)), 10), 20)[2]
12:28 camelia rakudo-moar 0d1ab2: OUTPUT«20␤»
12:28 Ven right.
12:28 japhb pmichaud: Following up something I said a few hours ago, the idea that listops flatten and method calls don't: @a.push(@b, @c) results in $(@b) and $(@c) appended to @a, but push @a, @b, @c results in the elements of @b and @c being appended to @a
12:28 pmichaud [Coke]: the standard has long been to mark RT tickets with [BUG] or [PATCH], iirc
12:28 Ven m: say (my @ = (1, (2, ((3)), 10), 20))[2]
12:28 camelia rakudo-moar 0d1ab2: OUTPUT«3␤»
12:28 timotimo fair enough; but why don't we have rakudotodo@, rakudopatch@?
12:28 timotimo i like the sound of rakudotodo
12:28 Ven this is indeed surprising..
12:28 muraiki joined #perl6
12:28 JimmyZ rakudo to do is on roadmap?
12:28 timotimo why is that confusing? it has an @ there and @ flattens
12:28 pmichaud timotimo: this is one reason I've wanted to move to github issues  :-P
12:29 timotimo :)
12:29 pmichaud @ does not mean "flattens", it means "Positional"
12:29 Ven yeah...
12:29 pmichaud *Array" flattens.
12:29 timotimo oh
12:29 japhb pmichaud: Is my idea from a couple minutes ago sane?
12:29 Ven I expect `for 1, 2 {}` and `for (1, 2){ }` to mean the same
12:29 pmichaud about "push"?
12:29 timotimo it used to be my impression that i put an @( ... ) around things i want flattened
12:29 japhb yes
12:29 TimToady @ allows flattening in flat context, $ doesn't
12:30 pmichaud japhb: I recognize that interpretation also, but it's not natural to p5 programmers, nor is it what I intuitively expect
12:30 nine japhb: I'd expect push as function and push as method to behave exactly the same.
12:31 japhb nine: I'm not wedded to that particular unification, that's all.
12:31 nine japhb: why would a programmer expect a difference there?
12:31 pmichaud what should   max(@a, @b)  produce?
12:31 nine japhb: if there's a difference in behavior, it should come from the natural difference between a function and a method.
12:31 japhb nine: Because a programmer can be taught a simple rule that is always strictly held.
12:31 pmichaud or,     sort  @a, @b
12:32 jnthn Or (@a, @b).max and (@a, @b).sort
12:32 dalek roast: 85bf992 | usev6++ | S03-metaops/hyper.t:
12:32 dalek roast: Add test for RT #77668
12:32 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77668
12:32 dalek roast: review: https://github.com/perl6/roast/commit/85bf9926a1
12:32 PerlJam (simple rules)++
12:32 nine japhb: a Perl 6 programmer already has to learn quite a few simple rules. That they're strictly held is what makes this possible at all. Not something that should be used as a free ticket to add more.
12:33 Juerd moritz: No. Very little except the few times people put movies in their ~/public_html :)
12:33 Juerd moritz: That caused full uplink saturation for hours on end :P
12:34 japhb nine: Granted, but currently listop and method form don't have independent value other than TIMTOWTDI.  I think it's worth considering this as a real use for the difference.
12:34 timotimo aaaarghhh fix this mess %)
12:34 Ven %)
12:35 pmichaud (for the channel:  I pointed out that one can easily prevent flattening of things by prefix-$
12:35 nine It seems to me that all we need is a simple and consistent way to specify if someting should be flattened or not and have non-flat be the default, as flattening surprises programmers too often.
12:35 japhb BTW, I think this could apply to for @a, @b v. (@a, @b).for
12:35 Mouq I've been thinking for a while after we made flattening less common that we need infix:<++>, prefix:<|> everywhere, or both
12:36 pecastro_ joined #perl6
12:36 Mouq But it looks like everyone has an opinion on this :)
12:36 pmichaud note that     for $@a, $@b { .say }     doesn't flatten
12:36 timotimo huh, infix:<++>?
12:36 pmichaud and it's easy to say    for @a, $@b, @c    which flattens @a and @c but not @b
12:36 Ven timotimo: list concat
12:36 Ven (stolen from haskell, I take it)
12:36 timotimo yeah
12:36 timotimo but when did that get put into perl6?
12:36 Ven flattening suprises everybody except for 5ers, from experience
12:37 timotimo maybe we should be using +×+?
12:37 Ven we didn't. we use infix:<,>
12:37 timotimo ×x
12:37 brrt joined #perl6
12:37 Ven m: sub circumfix:<+ +>(**@a) { return @a.flat }; say +1, 2+
12:37 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8Cve960vm9�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument�at /tmp/8Cve960vm9:1�------> [32m +>(**@a) { return @a.flat }; say…»
12:37 Ven m: sub circumfix:<+ +>(**@a) { return @a.flat }; say (+1, 2+)
12:37 camelia rakudo-moar 0d1ab2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/AgLPmX6wHpâ�¤Bogus statementâ�¤at /tmp/AgLPmX6wHp:1â�¤------> [32m+>(**@a) { return @a.flat }; say (+1, 2+[33mâ��[31m)[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤    â€¦Â»
12:37 Ven :D
12:37 Mouq except infix:<,> doesn't actually concat, it makes a new list
12:38 Ven Mouq: but @x ,= will flatten
12:38 Ven because list assign
12:38 timotimo m: sub circumfix:<× ×>(**@a) { return @a.flat }; say ×1, 2×
12:38 camelia rakudo-moar 0d1ab2: OUTPUT«1 2␤»
12:38 nine What about: for @foo { } iterating over the elements of @foo, for (@foo) { } iterates once, with @foo being the single item. for @a, @b { } iterates over all items of @a and @b. for (@a, $b) { } iterates twice, with @a and @b being the items respectively
12:38 Ven yeah. "superstitious parens" change meaning
12:38 pmichaud nine: we don't syntactically distinguish parens
12:39 pmichaud and that really violates the "parens are used only for grouping" rule
12:39 japhb OK, I think I know what was bothering me.  The problem is that I really often create chains of cross ops, zip ops, hyper ops, and method calls that end in something that operates on an entire list (grep for map sort etc.), and I find myself pretty much trying various combos getting the amount of flattening I want.
12:40 brrt InsufficientDwimException
12:40 pmichaud japhb: in particular, that implies that  104 and (104)  are somehow different.
12:40 japhb ENOTME
12:40 pmichaud er, sorry, timotimo
12:40 pmichaud (nick confusion, need a short break, brb)
12:40 timotimo er, what now? me?
12:41 nwc10 timotimo: I suspect it's tim-TAB
12:41 timotimo did nwc10 confuse him? is that why he says "nick confusion"?
12:41 nwc10 :-) I doubt it
12:41 * PerlJam sure hopes this discussion means that there is /some/ progress towards the GLR
12:41 timotimo there is not no progress
12:42 timotimo much discussion, not exactly 100% sure where the goal is at the moment
12:42 nwc10 I think that it's moving from UNKOWN UNKNOWNS towards KNOWN UNKNOWNS
12:42 Mouq japhb: I have a similar sentiment
12:42 PerlJam timotimo: there never was no progress I guess :)
12:42 nwc10 (this is not exactly accurate - I think it's more that the necessary conflicting desires needing trade offs have been better identified)
12:43 brrt which is really important, by the way
12:43 Mouq japhb: I've also had annoyances trying to assemble lists that I'm giving as arguments to a function in the way that I want
12:43 daxim joined #perl6
12:44 pmichaud PerlJam: yes, we're making progress on the GLR
12:45 dalek rakudo/nom: ba91de3 | jonathan++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
12:45 dalek rakudo/nom: Make using role short name for introspection work.
12:45 dalek rakudo/nom:
12:45 dalek rakudo/nom: This is decidedly a hack for now; further refactors to parametrics
12:45 dalek rakudo/nom: will take the opportunity to clean this up.
12:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba91de30f8
12:45 PerlJam pmichaud: good, because I can't tell from here :)
12:45 pmichaud the "goal" is what I wrote earlier:  We need some consistency in our handling of lists, in a way that enables good performance
12:45 kaleem joined #perl6
12:46 dalek roast: b9e6b17 | jonathan++ | S26-documentation/why- (3 files):
12:46 dalek roast: Switch some .^find_method uses to .^lookup.
12:46 dalek roast: review: https://github.com/perl6/roast/commit/b9e6b1778d
12:46 pmichaud part of the "challenge" of GLR is that there are also semantic changes taking place, such as the interpretation of flattening rules and Parcels
12:46 dalek rakudo/nom: d9246fd | jonathan++ | src/Perl6/Actions.nqp:
12:46 dalek rakudo/nom: Have $a.^foo($b) desugar to $a.HOW.foo($a, $b).
12:46 dalek rakudo/nom:
12:46 dalek rakudo/nom: Before it desugared to .dispatch:<.^>, which would in turn pun roles -
12:46 dalek rakudo/nom: not to mention be a decent bit more costly and not work out on things
12:46 dalek rakudo/nom: that hadn't had their inheritance set up yet. Most patches before this
12:46 dalek rakudo/nom: were clearing up things that accidentally relied on the previous way
12:46 dalek rakudo/nom: things worked with punning roles.
12:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d9246fdab8
12:46 pmichaud and as I've learned from long experience, once you change any of the fundamental axioms in flattening and laziness, the result cascades throughout the design of Perl 6
12:47 pmichaud so, since flattening has been changed on Parcel, it implies a lot of changes to how flattening works everywhere else
12:47 Mouq jnthn++
12:47 pmichaud on the plus side, removing flattening will eliminate a _lot_ of slowness that currently exists
12:47 jnthn I'm pretty sure I regressed no spectests with this, but it was some...effort.
12:48 pmichaud because there were a lot of places where an argument said "I'm a flattening operator, so I have to flatten whatever inputs are coming in" which adds another level of iteration
12:49 pmichaud s/argument/operator or function/
12:49 japhb pmichaud: That's a pretty strong argument for me to not default-flatten.  Because that's default slow, and make the programmer work to do the fast thing.  That feels like 'return \@result' in perl5 -- mostly there to avoid passing a bunch of stuff on the stack.
12:50 pmichaud japhb: well, it can be made a lot faster (negotiation).  I was working on this in 2011 and 2012, but I needed solid answers to "which things flatten and which don't", which is where we are today.
12:50 japhb I prefer that the worker have to add a character to do the slow thing.  So I'd rather see prefix-| all over the place than prefix-$, if you see what I mean.
12:50 \00 joined #perl6
12:50 PerlJam japhb++
12:50 pmichaud japhb: I fundamentally disagree.
12:50 pmichaud I want to optimize programmer efficiency
12:51 japhb \o/ # fundamental disagreement FTW!  ... wait, what?
12:51 pmichaud if my programmer has to do more work to achieve the goal because we set the defaults to maximize speed... that's not the tradeoff I want
12:51 japhb pmichaud: I think you assume that programmers almost always *want* flattening, so switching the default need would result in more work.  I suspect it's closer to 50-50.
12:52 pecastro joined #perl6
12:52 brrt hmmm
12:53 PerlJam japhb: I think that's the problem. ... Perl wants DWIMy, but in this case the sometimes flattening, sometimes not is confusing.
12:53 masak lizmat: re https://github.com/rakudo/rakudo/commit/79ac0c7e1c -- does a change like that make a difference in performance? it would seem to me that :exists would get inlined just as much as .exists_key would. the former has the benefit of being what users are expected to use.
12:53 Mouq PerlJam: I agree
12:54 FROGGS $ perl6-m -e '"VERSION".IO.open(:nl<0>).lines.perl.say'
12:54 FROGGS ("20", "14.0", "9").list
12:54 FROGGS I push that in a few minutes...
12:55 PerlJam japhb: which is also why I like they idea of pushing the onus onto the programmar a little bit by requiring an explicit flattening marker  (but maybe that's just because I can't divine that appropriate rule that makes sense in all cases.  ;-)
12:56 moukeddar joined #perl6
12:56 masak jnthn: https://github.com/jnthn/oo-actors​/blob/master/lib/OO/Actors.pm#L60 -- I would have expected something like a super() call there. doesn't `nextsame` work, since Metamodel::ClassHOW is the parent class?
12:56 timotimo i prefer using the $ as a signal, but that's probably a total aside to this conversation
12:56 PerlJam Also, isn't the conservative approach to require the programmer be more explicit about flattening?  Can't we then relax that requirement as time moves forward and were learn precisely where to relax it?  (Assuming that's possible)
12:57 masak jnthn: or is that mixing together the inheritance and multi-dispatcher axes?
12:57 moukeddar o/ #perl6
12:57 [Coke] (ven doesn't like flattening) I agree with ven. :)
12:57 FROGGS hi moukeddar
12:57 masak moukeddar! \o/
12:57 moukeddar been a long while
12:57 masak indeed.
12:58 masak join us in this frenzy of activity that is the APW hackathon!
12:58 jnthn masak: I found some weird behavior there, and I was writing a talk, and I just needed something to work.
12:58 PerlJam I don't care one way or the other right now as long as there's something predictably consistent.  If implicit flattening is "slow", then erring toward explicit flattening seems sane to me.
12:58 masak jnthn: oh, interesting.
12:58 moukeddar how you all doing ?
12:58 jnthn masak: Generally though, we need to have a bunch more meta-programming tests
12:59 masak jnthn: if you can reproduce it enough to show it on camelia, I can submit it for you. :) limited offer.
12:59 masak moukeddar: doin' fine. busy. turns out being alive is a full-time job.
12:59 masak moukeddar: how's with you?
12:59 moukeddar zombification is half the cure then.
13:00 masak unfortunately not.
13:00 masak well, it's a "solution", but...
13:00 masak ...it's also a "problem" :P
13:00 moukeddar work has been a total torture lately, how problematic are we talking ?
13:01 masak at a guess, still problems($work) < problems($zombie)
13:02 moukeddar hmm, looks non-blocking, ship it!
13:02 masak :)
13:02 Hor|zon joined #perl6
13:02 moukeddar #perl6 always been a busy hive. i like that
13:03 [Coke] pmichaud: I see no need to perpetuate that old standard.
13:04 * [Coke] feels like he's skipping a conversation across teh backlog.
13:04 masak moukeddar: but today more than usual.
13:04 * colomon has no idea what [Coke] is talking about, so maybe he is
13:04 kjs_ joined #perl6
13:05 kjs_ left #perl6
13:05 bartolin [Coke]: but RT marks the ticket as Bug automatically if the subject contains [BUG], doesn't it? like hier: https://rt.perl.org/Ticket/Disp​lay.html?id=122963#txn-1313084
13:05 kjs_ joined #perl6
13:05 bartolin *here ;-)
13:06 [Coke] (flattening) I read the desire to some times flatten automatically as "the programmer can't be bothered to remember what their data structure looks like, so we try to do what they `meant` instead of what they said".
13:07 [Coke] bartolin: No one but maybe masak uses the "bug" tag.
13:07 [Coke] it's only worth recording if we're using it to find tickets.
13:07 [Coke] also, we are better arbiters of what's a bug than the users.
13:08 moukeddar what's the hackathon about ?
13:08 dalek rakudo/nom: 1e03727 | (Elizabeth Mattijsen)++ | src/Perl6/ModuleLoader.nqp:
13:08 dalek rakudo/nom: Call DYNAMIC when fetching @*INC
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e037277b1
13:08 dalek rakudo/nom: 5902b35 | (Elizabeth Mattijsen)++ | src/core/stubs.pm:
13:08 dalek rakudo/nom: Make sure we do not itemize @ and %
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5902b35531
13:08 dalek rakudo/nom: 36d74f6 | (Elizabeth Mattijsen)++ | src/core/IO/Special.pm:
13:08 dalek rakudo/nom: Some code esthetics
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/36d74f606a
13:08 dalek rakudo/nom: 9efbece | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local (2 files):
13:08 dalek rakudo/nom: Make sure we have abspath always
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9efbece519
13:09 Mouq bartolin+++ for all the RT work lately!
13:11 molaf joined #perl6
13:12 petercommand joined #perl6
13:15 colomon quick blog post on flattening issues: http://justrakudoit.wordpress.com​/2014/10/13/flattening-and-such/
13:18 PerlJam colomon++
13:19 Ven [Coke]++ # agreeing :P
13:20 PerlJam I wonder if it would help to create a table of listy syntax surprises/annoyances?  (like colomon's examples, but more)
13:21 colomon BTW, I keep updating the post as I do experiments here.  :)
13:21 kaare_ joined #perl6
13:23 TimToady m: say ( [] = (1,2),(3,4) ).perl
13:23 camelia rakudo-moar 0d1ab2: OUTPUT«(timeout)»
13:24 dalek nqp: 058b32e | (Tobias Leich)++ | / (4 files):
13:24 dalek nqp: set input line seperator because separately
13:24 dalek nqp:
13:24 dalek nqp: Also, map the nqp::setinputlinesep op on parrot for convenience.
13:24 dalek nqp: review: https://github.com/perl6/nqp/commit/058b32e2a7
13:25 dalek nqp: 45b8191 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
13:25 dalek nqp: bump moar revision
13:25 dalek nqp: review: https://github.com/perl6/nqp/commit/45b81910cb
13:26 dalek nqp: b6a4562 | (Tobias Leich)++ | t/nqp/19-file-ops.t:
13:26 dalek nqp: nqp::eoffh is only trueish when we read *past* eof
13:26 dalek nqp:
13:26 dalek nqp: At least, that is the point we can be sure about it.
13:26 dalek nqp: review: https://github.com/perl6/nqp/commit/b6a4562cbe
13:27 xinming joined #perl6
13:27 dalek rakudo/nom: a2c9c52 | (Tobias Leich)++ | / (2 files):
13:27 dalek rakudo/nom: allow custom newlines for IO::Handle
13:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a2c9c5295a
13:28 dalek rakudo/nom: 8b3e8c2 | (Tobias Leich)++ | src/core/IO/Socket/INET.pm:
13:28 dalek rakudo/nom: refactor IO::Socket::INET.get now we got nqp::setinputlinesep
13:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8b3e8c204d
13:28 dalek roast: 2b3bee5 | usev6++ | S (2 files):
13:28 dalek roast: Add tests for RT #77338
13:28 dalek roast: review: https://github.com/perl6/roast/commit/2b3bee5223
13:28 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77338
13:28 Ven I kinda want more of moritz and masak's input on what's going down here :P
13:29 * moritz has to $work :(
13:29 Ven sorry :P
13:31 travis-ci joined #perl6
13:31 travis-ci NQP build failed. Tobias Leich 'set input line seperator because separately
13:31 travis-ci http://travis-ci.org/perl6/nqp/builds/37826481 https://github.com/perl6/nqp/com​pare/3047e975d2f8...058b32e2a768
13:31 travis-ci left #perl6
13:31 nwc10 moritz: it's possibly a good time - there are now 8 people round the flipchart figuring out the GLR
13:31 nwc10 hence most of them aren't on the channel
13:31 nwc10 and it's also not clear at what point it becmoes a singularlity
13:31 nwc10 and collapses
13:31 Ven booom
13:31 nwc10 and the answer to the problem never reaches us, because it's beyond the event horizon
13:32 colomon AFK # life
13:33 moritz nwc10: IME, 8 people is too much for a good design
13:33 moritz but maybe they'll manage, if some of them are mostly quiet listeners
13:33 PerlJam moritz: There's probably only 2 or 3 synthesizing a "design" from the conversation :)
13:34 nwc10 moritz: I think it's OK
13:34 nwc10 1 of them is Larry
13:34 chenryn joined #perl6
13:34 * moritz would guess TimToady, pmichaud and jnthn
13:34 nwc10 it's now down to 5 - those 3 + liz + Gloria
13:34 moritz those three typically lost me after a while of discussing lists :-)
13:35 nwc10 and it's mostly picking holes in each proposed design (or I think it's more, design for the defaults)
13:35 PerlJam nwc10: It sounds like you think you're being reassuring, but  ... I dunno about that  ;)
13:35 nwc10 and it seems as much to be figuring out the correct defintion of the problem to load into TimToady's subconcious
13:35 pepl joined #perl6
13:41 Hor|zon joined #perl6
13:41 Ven somebody said TimToady actually knows how to get a consistent design, but he wants people to figure it out by themselves :P
13:45 kjs_ joined #perl6
13:48 moritz well, knowing how to get there, and being there are two very different things
13:48 cognome or maybe, even god needs prophets to move people :)
13:50 geekosaur have you considered that maybe the way to get a consistent design *is* to have people figure it out for themselves?
13:51 brrt i don't really think that's true :-)
13:51 geekosaur "consistent" is not necessarily something that can be handed down from On High
13:51 geekosaur I could build an entirely consistent design that is incompatible with humans. (see: sendmail.cf)
13:52 pecastro joined #perl6
13:52 geekosaur if you want it to be consistent *and* useable by more than just the original designer, you need more than just said original designer
13:52 guru joined #perl6
13:53 dalek doc: c57800f | Mouq++ | lib/Language/functions.pod:
13:53 dalek doc: Talk a little bit about the sub declarator
13:53 dalek doc: review: https://github.com/perl6/doc/commit/c57800f92c
13:53 JimmyZ .oO(we need queit listeners here too) :O
13:54 Mouq JimmyZ: :9
14:01 fhelmberger joined #perl6
14:03 pecastro joined #perl6
14:05 kjs_ joined #perl6
14:06 pdcawley joined #perl6
14:08 SamuraiJack joined #perl6
14:10 TimToady Ven: wasn't me that said that; I know that there's no way to get a consistent design :)
14:10 TimToady there is no useful language that is perfectly consistent
14:10 lizmat joined #perl6
14:14 * geekosaur summons Gödel re consistent vs. complete
14:15 dalek roast: 390f04d | jonathan++ | S12-introspection/meta-class.t:
14:15 dalek roast: Add a test for RT #121885.
14:15 dalek roast: review: https://github.com/perl6/roast/commit/390f04da8c
14:15 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=121885
14:15 geekosaur (not that that is the same or even similar argument, necessarily)
14:25 xinming joined #perl6
14:33 dalek doc: ac2538c | Mouq++ | lib/Language/functions.pod:
14:33 dalek doc: Point to the Blocks documentation
14:33 dalek doc: review: https://github.com/perl6/doc/commit/ac2538cd3d
14:34 virtualsue joined #perl6
14:41 treehug88 joined #perl6
14:43 ptc_p6 joined #perl6
14:44 araujo joined #perl6
14:47 * [Coke] wonders if hackathon is still on today or if people are on their way home
14:51 timotimo still on
14:54 masak wow.
14:54 masak my blogging software used to take 3 minutes to run.
14:54 masak I just ran it. it takes 12.6 seconds.
14:54 masak I can live with that :>
14:54 [Coke] moar power.
14:55 masak word.
14:56 masak lol, I blogged! http://strangelyconsistent.org/​blog/macros-thunkish-parameters
14:56 sjn lol
14:57 sjn how did the hackathon go, btw?
14:57 masak still ongoing, apparently
14:57 PerlJam masak: "Don't expect me to stay consistent ..."  but ... but ... but ... the title of your blog is "strangely consistent"!
14:57 PerlJam ;-)
14:58 masak ok, I expect to stay *strangely* consistent
14:58 masak PerlJam++ # srsly, that didn't occur to me at all
14:59 masak hope it doesn't occur to too many people :)
14:59 tadzik I was certain that's a pun :)
15:00 masak oh. yes, yeah, it was a brilliant pun.
15:00 sjn PerlJam: it's possible to be "consistently inconsistent" :)
15:00 kaleem joined #perl6
15:00 masak that... sounds terribly exhausting.
15:01 sjn maybe the strageness in the consistency is that it's also inconsistently inconsistent?
15:02 masak the title comes from a sense of some parts of the Perl 6 design "making sense" by certain things mimicking or being parallel to other certain things.
15:03 masak "The phrase "strangely consistent" refers to the tendency of even unrelated parts of the design to exhibit patterns or interact in some way. It originated somewhere in the vicinity of Patrick Michaud during YAPC::EU 2009." http://strangelyconsistent.org/about
15:04 sjn so with "strange" you don't mean "odd" but rather "unexpected"?
15:04 masak that's the one.
15:04 moritz but "strangely consistent" does sound better than "unexpectedly consistent"
15:05 sjn "oddly consistent" sounds a bit odd though :)
15:05 sjn and you still have that interpretation, when using the word "strange"
15:05 moritz "strangely odd"
15:06 sjn "unexpectedly odd"
15:06 sjn "the consistency is unexpectedly odd"
15:06 sjn :D
15:06 PerlJam masak++ I'm not sure what to make of your post.   But I like the idea-space you're exploring.
15:07 leont Would it be an idea for some bot to read the stackoverflow rss feed for the tag perl6? Or does a thing already exist
15:08 [Coke] leont: I get emails whenever there are new perl6 tagged posts.
15:08 [Coke] so, "sort of". not sure if your goal is notification, or a specifically RSS?
15:09 sjn masak: or, are you talking about food texture/taste/conistency, when you write about "strangely consistent"? :)
15:09 masak PerlJam: yeah, that's the main idea -- to explore the design space.
15:09 * sjn stops now
15:09 masak sjn: :D
15:09 moritz masak: I don't see how macros can have "normal" parameters (that are neither thunkish nor ASTs)
15:10 sjn "this soup is strangely consistent"
15:10 moritz masak: given that macros are compile-time evaluated, normal parameters aren't even available most of the time
15:10 * sjn stops now, again
15:10 masak sjn: I should hire you to do stand-up comedy in the margins of my blog posts :P
15:10 moritz masak: or when they are, they typically become the the static version of a variable where the user expects the run-time variable
15:11 sjn playing with words and meaning is fun, yeah
15:11 moritz sub infix:<xx>(THUNK $elem, $n) { ... }; for 1..10 -> { 5 xx $_ }
15:11 moritz has $n always as Any
15:11 PerlJam sjn: you could start a punny counter-blog to masak's you know  :)
15:11 masak moritz: did you read the "Implementation" section?
15:11 masak moritz: because what you're saying occurred to me, and I addressed it there.
15:12 moritz masak: but then it's not a macro anymore, no?
15:12 * masak shrugs
15:12 masak moritz: neither does it have a macro keyword.
15:13 moritz masak: ok, fairy nuff
15:13 moritz masak: one thing to consider is how that plays with multis
15:13 masak oh, indeed.
15:13 moritz masak: probably not well at all
15:13 masak didn't consider that one.
15:13 masak my guess is "puts quite heavy restrictions on multis".
15:14 moritz masak: so it might be forbidden in individual candidates, and only allowed in protos and onlys
15:14 masak as in, you're fine as long as you *consistently* (there's that word again) thunkify parameters.
15:14 masak moritz: or that. that works too.
15:14 moritz also, if you thunk something, you can't multi-dispatch on it anymore
15:15 * PerlJam likes moritz's imagination here
15:15 moritz masak: glad that I could contribute at least something to the discussion :-)
15:15 masak right, so it conceptually belongs "above" multi dispatch.
15:15 masak moritz: you certainly could. thank you. :)
15:16 masak yet another possible interaction -- methods with thunkish parameters: threat or menace?
15:16 PerlJam masak: or rules
15:16 masak ooh
15:16 * masak boggles
15:16 TimToady thunkness must propagate back to the callsite
15:16 Ven masak: alright
15:16 TimToady this is very difficult with methods
15:16 masak troo.
15:17 moritz rules are especially difficult, because they are methods, but often look sub-like
15:17 masak ok, so conservatively disabled.
15:17 * moritz conservatively commutes&
15:17 moritz one more thing
15:18 moritz do we allow routine postdeclarations?
15:18 moritz m: foo(42): sub foo($x) { say $x }
15:18 masak also addressed under "Implementation"
15:18 camelia rakudo-moar 9efbec: OUTPUT«(timeout)»
15:18 Ven masak: seems to me you're "cheating" a lot, from a very simple reading
15:18 moritz oh, I should read more carefully, like, really :-)
15:18 moritz really gone&
15:18 masak I wrote "should be possible, as long as we propagate thunkishness back to that site"
15:18 masak Ven: flattery accepted.
15:19 Ven masak: ... and I know how to catch you :-)
15:19 H2O1 joined #perl6
15:20 Ven masak: first... How do I get a parameterless macro?
15:20 PerlJam Ven++ good question
15:20 masak that is a good one.
15:22 PerlJam I wonder if macros are more like another kind of phaser where the programmer gets to decide when it fires?
15:22 H2O1 left #perl6
15:22 Ven I *STRONGLY* want a macro keyword. I want to say "I know what'll happen to me, and I'm ready to deal with it"
15:22 Ven you can tell me to put it at call site, like scala. But I want one
15:23 Ven This is a contract, and I want it signed so that I can do bad stuff to you legally :P
15:24 PerlJam Ven: There past several minutes since reading masak's post I've been trying to accept implicit macroness via THUNKy params only the discussion makes me want more and more to rejct it.
15:24 PerlJam s/There/These/
15:24 PerlJam s/rejct/reject/ too
15:24 Ven PerlJam: To be fair... This can be very useful for macro templates (scheme/racket-style)
15:25 masak Ven: maybe a proposal could be made to fly that (a) retains the `macro` keyword, but (b) allows parameters to be *un*-thunked.
15:25 Ven But then again. I really want a "quasi" keyword. I want to be able to do my shenanigans at compile-time, when the macro is called. Do stuff to my arguments. then generate code
15:25 masak *nod*
15:26 Ven Not having the "quasi" part of the macro means you're only doing template-y thingies
15:26 masak my proposal was more like having *only* the `quasi` part, but point taken.
15:26 TimToady this seems very sideways from all our earlier discussions of macros...
15:27 Ven which can be fine, of course. having sub foo(THUNK) for template macros can work out
15:27 TimToady possibly useful sugar, but far from general
15:27 Hor|zon joined #perl6
15:27 Ven masak: only having the quasi parts means I can't do my shenanigans to my arguments
15:27 Ven TimToady: yes.
15:27 masak TimToady: (1) I will make many different posts with various features. this one was easy to get out of the way, as it's relatively disconnected from other things.
15:27 anaeem1 joined #perl6
15:27 masak TimToady: (2) as I recall, you've proposed a feature like this several times across the years. :)
15:28 masak or s/proposed/pondered/
15:28 Ven masak: The first thing I want to build with macros is a MATCH. I want to a hash as (array) => thunk passed to me. Then, I'll inspect the array, put the literals somewhere, and the variables in another place
15:28 masak I'm fully aware that this doesn't solve all our problems. see the last section of the post.
15:28 Ven masak: Then, I'll create a forest of AND for every literal, and binding for every variable
15:28 * masak scribbles frantically
15:29 Ven I *need* to have a "before-quasi" part to do that.
15:29 brrt joined #perl6
15:29 timotimo damn this stuff is tricky
15:29 timotimo my head is smoking, and i'm not even helping figure stuff out
15:29 PerlJam masak: maybe we don't have to solve all problems at once too.  We've been putting all our eggs in the one "macro" basket.  Perhaps what we need is multiple flavors of macro (just like we have multiple Routines now)
15:30 masak timotimo: it took me literally months just to get insane enough to be able to think about these things effortlessly.
15:30 Ven :D
15:30 Ven masak: This is what every (common) lisper blames scheme for: since they don't have a pre-quasi block, the only thing you can do is basic substitutions
15:31 Ven You can do basic stuff with that, but not very much. Introspecting your arguments seems a rather mandatory parts of macros to me
15:31 masak PerlJam: I'm not sure that I made it 100% clear in the post, but I'm not *looking* for solutions just yet. I'm looking for *discussion*, of exactly the kind this post caused.
15:31 Ven oh, I'm always happy to discuss :P
15:31 masak PerlJam: "uhm, this doesn't seem like what we want" is a measure of *success* in what I'm trying to achieve.
15:31 b2gills (GLR) As a new P6, old P5 programmer having lists always (auto-) flatten or never (auto-) flatten would make more sense than inconsistent flattening (just caught up)
15:31 Ven even though me trying to explain dependently typed stuff to leont got him making faces.
15:31 Ven I'm terrible at explaining
15:31 brrt happy hacking
15:31 PerlJam masak: sure.
15:32 masak Ven: don't worry, one thing you'll definitely get is arguments introspection.
15:32 Ven masak: how?
15:32 Ven Just scribble something in a gist on how you picture this, please
15:33 masak ok, general notice: I reserve the right to deny anyone instant gratification in terms of how macros will magically work.
15:33 masak I need that right for my sanity.
15:33 Ven This is not what I'm arguing for
15:33 masak Ven: *you* write a gist. I'm going to go make dinner. :)
15:33 PerlJam masak: though I'm not liking your proposed thing too much, I think it's elucidated (at least to me) that such a thing would be useful.   I'm just trying to integrate that knowledge into my imagination of what future "macros" should look like.
15:34 Ven masak: you said "you'll get something". I ask: "how"?
15:34 Ven but, very fair.
15:34 xinming joined #perl6
15:35 * Ven scribbles on a gist
15:36 timotimo i'm very confused by the statement_mod_loop:<for> having a $lhs and a $rhs
15:37 Ven timotimo: ETOOTERMSINAROW
15:37 Ven masak: this looks pretty bad hahaha. wait a bit..
15:38 PerlJam timotimo: say "hi" for 1..10;  $lhs == say "hi",  $rhs == 1..10
15:38 timotimo "Much Term in a Row. So Error. Wow."
15:38 timotimo PerlJam: oh, now i get it, thank
15:38 PerlJam though one side is thunked and that makes all the difference.
15:38 timotimo you
15:38 TimToady no, there's a 'for' in the middle
15:38 timotimo masak: i was refering to the stuff on the flipboard, btw, i had not yet read the macro post
15:39 TimToady LHS for RHS; presumably
15:40 masak I could rename them `$statement` and `@values` if that makes it easier to grok.
15:40 woolfy left #perl6
15:40 masak (respectively)
15:41 TimToady though statement_mod_loop doesn't parse its left side currently, at least in STD
15:41 Ven masak: ok, I have a gist of how I *could* see my MATCH.
15:41 masak TimToady: you mean the resulting AST doesn't have those two parts?
15:42 masak Ven: ok, looking forward to seeing it.
15:43 TimToady it's probably added as info into the statement node currently
15:43 pmurias joined #perl6
15:44 PerlJam masak: after you've already built the AST for the lhs, you'd have to go back an thunk it when you've parsed enough to figure out there's a statement_mod_loop:sym<for> after.
15:44 PerlJam or ... provisionally thunk "everything" in anticipation of macros changing the rules midstream.
15:45 PerlJam (but then you'd have to "unthunk" once you realize macros aren't in play)
15:45 pmurias masak: one thing that your post seems to ignore is that we want to have to types of macros. Those that do stuff at compile time (and maybe generate code) and those that do stuff at runtime
15:45 masak ok, let's not get stuck on the statement_mod_loop:sym<for> example. I didn't seriously suggest we implement it like that. just trying to bring it under sorta-kinda the same umbrella as the rest of the stuff I was discussing.
15:45 masak pmurias: yes.
15:46 pmurias and both types seem useful
15:46 masak PerlJam: what you just said *is* interesting, but more in the context of where we'd want to do this with other, more real macros, not the made-up statement_mod_loop:sym<for> example.
15:47 masak PerlJam: as I think about the bit where macros get more integrated into the grammars/slangs story, they will also have to make more of that kind of decision,.
15:47 pmurias something like a smart &ok is just a sub with fancy argument parsing
15:47 masak pmurias: "a smart &ok"? can you elaborate?
15:48 Ven generating debug text
15:48 masak macros can already do that, today, in Rakudo.
15:48 Ven \o/
15:48 masak hold on, let me get the gist I wrote once
15:50 Hor|zon joined #perl6
15:50 masak ah, here. https://gist.github.com/masak/0c44​96b90e2aebf98062#file-groups-p6-L7
15:50 Ven masak: https://gist.github.com/Nam​i-Doc/eb64bab004b90d65a574
15:50 Ven here's my MATCH.
15:50 dalek perl6-bench/stress: 852bad7 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
15:50 dalek perl6-bench/stress: Fix warning in two microbenchmarks (and take the opportunity to output a checkable value)
15:50 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/852bad75d1
15:50 dalek perl6-bench/stress: aaafd8a | (Geoffrey Broadwell)++ | perl6/string-escape:
15:50 dalek perl6-bench/stress: Fix 5-ism in perl6/string-escape
15:50 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/aaafd8a6ad
15:50 dalek perl6-bench/stress: 27c7308 | (Geoffrey Broadwell)++ | timeall:
15:50 dalek perl6-bench/stress: Don't accidentally skip saving any partial data gathered so far for a given compiler on a given test
15:50 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/27c730888c
15:51 pmurias masak: what you are proposing in the blog post seems a lot like perl 5 prototypes
15:51 Ven masak: I basically translated it from my lisp version
15:51 masak Ven: thanks. will look.
15:52 Ven masak: instead of an AST, we can maybe do away with tuples like elixir does
15:52 Ven i.e. in Elixir, 3+4 is just {:+, [3, 4]}
15:52 Ven but I said it already i think....
15:52 Mouq joined #perl6
15:53 masak m: macro assert($fact) { quasi { die "FAILED: ", $fact.Str unless {{{$fact}}} } }; assert 2 + 2 == 4; assert 1 + 1 == 7
15:53 masak this is what pmurias wanted, I think.
15:53 Ven camelia: ?
15:53 camelia rakudo-moar 9efbec: OUTPUT«(timeout)»
15:54 Ven m: macro assert($fact) { quasi { die "FAILED: ", $fact.Str unless {{{$fact}}} } }; assert 2 + 2 == 4; assert 1 + 1 == 7
15:54 camelia rakudo-moar 9efbec: OUTPUT«FAILED:  1 + 1 == 7␤  in any  at /tmp/ETr8n4Uxty:1␤  in block <unit> at /tmp/ETr8n4Uxty:1␤␤»
15:54 masak \o/
15:54 Ven masak++ # this is good!
15:55 masak Ven: re gist: thank you.
15:55 Ven np :)
15:56 Ven I know it's not the best code. But that's kind of how I see it.
15:56 masak Ven: your biological and technological distinctiveness has been added to my own. stand by for results, ETA unknown.
15:56 Shailesh joined #perl6
15:57 timotimo Ven: but our ast has more types of things than just calling stuff
15:57 timotimo our for isn't just calling "a for function"
15:57 timotimo ... or something like that?
15:57 PerlJam So ...
15:57 timotimo hm
15:57 timotimo not so sure about that any more
15:58 Ven masak: my... biological distinctiveness??
15:58 Ven (and yours? wait, I'm not sure I want to know)
15:59 timotimo m)
15:59 lizmat Ven: Borg
15:59 PerlJam Is there a Salzburg.pm ?
15:59 pmurias masak: a better version of that with introspection, so that ok $foo eq 1, has the same failure message as is $foo,1
15:59 * masak .oO( Salzborg.pm )
16:00 masak pmurias: *nod*
16:00 masak pmurias: I've added that one too to my list of use cases I want to consider.
16:00 masak pmurias: as I see it, that will be a part of the Q-tree stuff.
16:00 lizmat joined #perl6
16:01 kjs_ joined #perl6
16:01 pmurias Q-tree?
16:01 Ven masak: okay, liz showed me what was a borg.
16:01 masak pmurias: http://strangelyconsistent.org/blog/mac​ros-progress-report-after-a-long-break
16:02 masak Ven: you will be assimilated.
16:02 Ven masak: oh, okay. Sorry, I'm more of a who kind of guy
16:02 masak :)
16:02 isBEKaml joined #perl6
16:03 pmurias Ven should be glad he wasn't exterminated instead ;)
16:03 Ven pmurias: considered where I'm in, it should be EXTERMINARION (or something)
16:03 masak we're more of an AND culture here, not an XOR culture. so Whovians, Trekkers. it all goes.
16:04 Ven he. I was wearing a star trek t-shirt yesterday
16:04 Ven and timotimo started talking to me about star trek and I was like :|
16:04 Ven idontunderstand.jpg
16:04 dalek rakudo-star-daily: b46d3c7 | coke++ | log/MoarVM-version.log:
16:04 dalek rakudo-star-daily: today (automated commit)
16:04 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/b46d3c7dbf
16:04 dalek rakudo-star-daily: b41bdc9 | coke++ | log/MoarVM-version.log:
16:04 dalek rakudo-star-daily: today (automated commit)
16:04 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/b41bdc94bd
16:05 dalek perl6-roast-data: e8ed1b3 | coke++ | / (4 files):
16:05 dalek perl6-roast-data: today (automated commit)
16:05 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/e8ed1b3569
16:06 Alina-malina joined #perl6
16:06 Ven masak: there are a lot of stuff I want to do with macros. It's kinda hard for me to reason about how they could be (like I did with MATCH here) but I can probably give you some more examples
16:07 Hor|zon joined #perl6
16:07 masak Ven: that would be much assimilated. thanks.
16:08 rurban joined #perl6
16:10 Ven masak: ... and most of them macros require some kind of pre-quasi
16:10 isBEKaml masak: Whovians? Who are you referring to? Dr.Who fans? :-)
16:11 masak isBEKaml: http://irclog.perlgeek.de/​perl6/2014-10-13#i_9501559
16:11 pmurias would it make sense to have a github repo for marco requests etc.?
16:11 * masak .oO( "*Who* are you referring to?" indeed )
16:12 Ven pmurias: paulo is the one and only one.
16:12 isBEKaml Ven: no no, that's Polo
16:12 Ven PAUUUUUULO
16:12 Ven no, it's paulo in french :)
16:12 masak pmurias: you seem very keen on *distributing* the requirements/design effort. I'm very keen on *centralizing* it. I have a git repo over here with use cases and ideas. a private one.
16:13 isBEKaml Marco... Polo... Marco... Polo (Well, eff it - I'm outta here)
16:17 masak dinner &
16:21 pmurias masak: I feel that *distributing* the requirements is something we should do
16:22 pmurias the interesting macro use case to me are the people pushing the edges of what is possible to day
16:22 pmurias I don't care much about reimplementing &infix:<||>
16:23 pmurias or the lispish way of using them to reduce the number of parenthesis
16:25 pmurias I feel there might be a conflict between elegance for simple things that aren't of much use and the things that we really need
16:27 moritz .tell Mouq I finally installed your ssh key for perl6/doc - sorry that it took me so long
16:27 yoleaux moritz: I'll pass your message to Mouq.
16:28 cognome joined #perl6
16:29 pmurias masak: the real world examples section in the blog post demonstrates what I fear
16:31 kaleem joined #perl6
16:37 Hor|zon_ joined #perl6
16:44 Mso150 joined #perl6
16:48 azawawi joined #perl6
16:51 spider-mario joined #perl6
16:54 pepl joined #perl6
16:56 anaeem1_ joined #perl6
17:01 dalek Perlito: a13381f | (Flavio S. Glock)++ | misc/typeglob/import.p (2 files):
17:01 dalek Perlito: Perlito5 - typeglob vs. import behaviour investigation
17:01 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/a13381f9fb
17:01 Mouq joined #perl6
17:04 timotimo macro... ploo...
17:08 timotimo I was so unproductive
17:09 pierrot joined #perl6
17:14 * moritz hopes that the GLR core group was productive :-)
17:14 timotimo looked tgat way
17:15 gtodd how should <<~<< be read ?  "append to array on left stringified elements from list on right" ? or something ....
17:17 gtodd even if it that is correct I'm trying to figure out how I would know this :-)  I tend to use this -->  http://www.perlfoundation.org/per​l6/index.cgi?perl_6_index_tablet which seems mostly up to date ? along with synopses ...
17:18 gfldex joined #perl6
17:20 isBEKaml the perlfoundation.org wiki still exists? I thought it hadn't seen updates in *years*
17:21 colomon m: my @a = 'a'..'h'; my @b = 1..20; say @a <<~<< @b
17:21 camelia rakudo-moar 8b3e8c: OUTPUT«a1 b2 c3 d4 e5 f6 g7 h8 a9 b10 c11 d12 e13 f14 g15 h16 a17 b18 c19 d20␤»
17:21 colomon gtodd: ^^
17:22 gtodd colomon: yes this is what I wanted to do well except I wanted the whole alphabet ;-)  .. but I also wanted a way to  stick it in my brain or document it name it etc :-)
17:23 gtodd colomon: thanks
17:23 isBEKaml m: my @a = 'a'..'h'; my @b = 1..20; say @a Z~ @b;
17:23 camelia rakudo-moar 8b3e8c: OUTPUT«a1 b2 c3 d4 e5 f6 g7 h8␤»
17:23 isBEKaml m: my @a = 'a'..'h'; my @b = 1..20; say @a X~ @b;
17:23 camelia rakudo-moar 8b3e8c: OUTPUT«a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 …»
17:23 timotimo it is a bit like a zip. it will extend lists that have angles pointed at then
17:23 isBEKaml timotimo: No, not like a zip at all. :-)
17:24 nine http://niner.name/icycle_profile.html and click on Call Graph
17:25 isBEKaml gtodd: you can see the difference between <<~<< and Z~ - the Z thing is a zip. All it does is take elements from both list and works through to the smallest list taking the corresponding item from the larger list.
17:25 isBEKaml gtodd: all the while in a single iteration (if you're wondering about it)
17:26 gtodd basically I wanted to see how easy it was to do a1 b1 ... z1 ... a2 b2 ... z2 .... all the way to z100 "by hand" using the right operators
17:26 gtodd isBEKaml: precisely, I wanted to see if I could figure out how to mimic something like Z or zip
17:27 gtodd ok good
17:27 isBEKaml gtodd: ah, so you want something like "matrix" multiplication. X-ops are for you then
17:27 colomon gtodd: oh!  That's what isBEKaml did back there,; you do n't want the hyper metaoperator at all for that.
17:27 gtodd :-)
17:29 gtodd ok ... I think I saw <<~<< in some code somewhere and it got me thinking experimenting
17:30 colomon with enough work you could make <<~<< do what you want, I suppose, but X~ is definitely the way to go.
17:32 gtodd ok I have X as an alias of cross Z of zip ..... (I have X in my brain under  X: for exceptions )  ... and <<~<<  is more for sticking a string on the end of each element of a list or something like that ....
17:33 timotimo why is it not like a zip at all?
17:33 isBEKaml timotimo: because it isn't one. :-)
17:33 isBEKaml timotimo: granted, you can call it that if you include some cycling.
17:33 timotimo that's why I said "is a bit like"
17:34 isBEKaml but that isn't how zips are considered.
17:34 timotimo ?
17:34 colomon the difference is that zip stops when it runs out, and this sort of hyper cycles
17:34 colomon (and lazy vs hyper, of course)
17:34 isBEKaml exactly, it works up to the minimal list.
17:34 timotimo but that is what I said
17:35 colomon It's certainly much more like zip than it is like cross.
17:35 timotimo actually, there is no way for a hyper to stop after the shorter one
17:36 colomon timotimo: sure, but other hypers will die instead of cycling
17:36 Hor|zon joined #perl6
17:39 timotimo aye
17:40 timotimo that much I agree with
17:41 timotimo but still... a hyper with an infix op is still a bit like a zip.
17:41 colomon timotimo: I completely agree with you.  more than a bit.
17:41 colomon (the similarity, not my agreement.)
17:42 Hor|zon joined #perl6
17:42 timotimo k :)
17:43 * colomon remembers when Zop was added to p6.  :)
17:45 azawawi joined #perl6
17:48 bartolin joined #perl6
17:56 timotimo people have been zopping ever since
17:57 bartolin m: my @a; my $x; ($x) = 1; my $y = @a[0] = 2; say @a[0]
17:57 camelia rakudo-moar 8b3e8c: OUTPUT«(Any)␤»
17:57 bartolin m: my @a; my $x; $x = 1; my $y = @a[0] = 2; say @a[0]
17:57 camelia rakudo-moar 8b3e8c: OUTPUT«2␤»
17:58 bartolin is that a bug or can someone explain why the first command didn't give a 2 as well?
17:59 timotimo huh
17:59 bartolin it's derived from the tests for RT #80614
17:59 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=80614
18:00 colomon bartolin: Looks like a bug to me.
18:00 colomon m: my @a; my $y = @a[0] = 2; say @a[0]
18:00 camelia rakudo-moar 8b3e8c: OUTPUT«2␤»
18:00 timotimo m: my $a; ($a) = 1; say $a. DUMP
18:00 camelia rakudo-moar 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/DBBmZA7Aii�Unsupported use of . to concatenate strings; in Perl 6 please use ~�at /tmp/DBBmZA7Aii:1�------> [32mmy $a; ($a) = 1; say $a. [33m�[31mDUMP[0m�»
18:00 nine Say I have this little patch for the profiler. How do I get it merged?
18:01 timotimo dann you phone kbd
18:01 timotimo we give out nqp commit bits for a cla
18:02 timotimo but pull request is totally fine
18:02 nine I guess the CLA for the Parrot foundation does not quite cover nqp these days? ;)
18:03 [Coke] correct.
18:03 [Coke] I am not sure that nqp requires a CLA.
18:03 [Coke] rakudo does (TPF CLA)
18:03 Exodist joined #perl6
18:04 bartolin colomon: I tried to golf it down to the code above. somehow "($x) = 1" vs. "$x = 1" makes a difference further down.
18:04 bartolin m: my @a; my ($x) = 1; my $y = @a[0] = 2; say @a[0]
18:04 camelia rakudo-moar 8b3e8c: OUTPUT«2␤»
18:04 timotimo ooooh
18:04 bartolin m: my @a; (my $x) = 1; my $y = @a[0] = 2; say @a[0]
18:04 camelia rakudo-moar 8b3e8c: OUTPUT«(Any)␤»
18:04 [Coke] m: my $x; ($x) = 1; my $y; $y = 1; say $x.WHAT; say $y.WHAT
18:04 camelia rakudo-moar 8b3e8c: OUTPUT«(Int)␤(Int)␤»
18:05 timotimo so it was the other way around
18:05 timotimo sorry
18:05 nine https://github.com/perl6/nqp/pull/193
18:05 azawawi joined #perl6
18:07 timotimo I wish I could check it out right  now
18:09 SamuraiJack joined #perl6
18:12 colomon It's Travis CI build passed...
18:12 colomon *Its
18:13 timotimo it has no way to fall the build
18:16 dalek nqp: 21c9c61 | nine++ | src/vm/moar/profiler/template.html:
18:16 dalek nqp: Add a basic icycle graph to Call Graph tab in profiler output.
18:16 dalek nqp: review: https://github.com/perl6/nqp/commit/21c9c61626
18:17 timotimo nice. nine++
18:18 moritz nine: nqp commit bit sent your way
18:20 moritz http://moritz.faui2k3.org/tmp/profile-icicles.html for an example
18:20 moritz check the "call graph" tab
18:20 masak pmurias: yes. we want to find the interesting use cases. we want to push the edges of what's possible. I definitely do want to identify the features we actually want in the language to make it support new, interesting, sustainable, extensible ways to program.
18:21 masak pmurias: that's my goal. I'm convinced I cannot do it if it's all in a wiki somewhere. I need to do it from inside my own head.
18:21 molaf joined #perl6
18:21 nine moritz: thanks! Your example shows well that the stacks quickly become too narrow to be useful
18:25 pecastro joined #perl6
18:26 timotimo that does not work on my phone at all 😀
18:27 masak pmurias: I was really intrigued to see the level of engagement with my blog post today. I have many more posts like that queued up. I think if we can keep going like this, we'll land somewhere nice. hope that's acceptable.
18:31 nine timotimo: what does not work on your phone?
18:32 denis_boyun_ joined #perl6
18:33 bartolin m: my $y; my @a = (); $y = @a[0] = 2; say @a[0]
18:34 camelia rakudo-moar 8b3e8c: OUTPUT«(timeout)»
18:34 bartolin m: my $y; my @a = (); $y = @a[0] = 2; say @a[0]
18:34 timotimo the icicle graph
18:34 bartolin ah, I see ;-)
18:34 camelia rakudo-moar 8b3e8c: OUTPUT«(timeout)»
18:34 timotimo and on my tablet is bad at it, too
18:38 bartolin I have another variant of the bug above. I'll go and add it to the ticket. but FYI I get locally:
18:38 bartolin perl6-m -e 'my $y; my @a = (); $y = @a[0] = 2; say @a[0]'
18:38 bartolin 2
18:38 bartolin perl6-m -e 'my $y; my @a; @a = (); $y = @a[0] = 2; say @a[0]'
18:38 bartolin (Any)
18:39 nine timotimo: seems to work just find on Firefox on Android and on rekonq.
18:41 timotimo cool
18:41 timotimo it spans many lines
18:41 timotimo the graph does
18:42 timotimo when I click through a few frames
18:46 masak waitwait -- so it's `EVAL` uppercase but `evalfile` lowercase? -- https://github.com/perl6/std/commit/bd22b5c08f
18:47 masak not that I ever understood the decision to discriminate this poor sub in the first place... but that feels terribly arbitrary.
18:48 [Coke] EVAL takes a block, evalfile doesn't. seems legit.
18:48 timotimo er
18:48 timotimo a block?
18:48 [Coke] er, perhaps that was my tcl brain.
18:48 masak m: EVAL 'say "OH HAI"'
18:49 [Coke] m: EVAL { say "what?" } ; # does that even work, I wonder
18:49 virtualsue joined #perl6
18:49 * [Coke] cries at camelia's lag.
18:49 masak so slow.
18:49 camelia rakudo-moar 8b3e8c: OUTPUT«(timeout)»
18:49 camelia rakudo-moar 8b3e8c: OUTPUT«(timeout)»
18:49 masak :(
18:50 azawawi #
18:50 masak locally, string works. block doesn't.
18:50 azawawi # -- Module Search sidebar in farabi6 ---> http://pasteboard.co/UNwtLZh.png
18:50 masak [Coke]: you might be thinking of `try { ... }`
18:50 timotimo http://imgur.com/a/y9wDg
18:51 timotimo ATTEMPT {}
18:51 [Coke] masak: I've been coldfusioning all day. shutting up now. :)
18:51 [Coke] the perl6bot is eating 100% of the memory building  nqp-j
18:51 [Coke] j: say 1
18:51 camelia rakudo-jvm 8b3e8c: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
18:52 [Coke] er, 30%. nearly 100% is in use atm.
18:52 [Coke] there is virtually no CPU usage atm.
18:53 Hor|zon joined #perl6
18:54 * [Coke] installs sysstat on host08...
18:54 timotimo gaaaahhhhh
18:56 denis_boyun joined #perl6
18:57 eternaleye joined #perl6
19:03 [Coke] any sysadmins who can tell me what http://feather.perl6.nl/~coke/stats.txt means?
19:04 dalek nqp: ec8930a | moritz++ | src/vm/moar/profiler/template.html:
19:04 dalek nqp: [profiler] improve link readability in icycle graphs
19:04 dalek nqp: review: https://github.com/perl6/nqp/commit/ec8930ae6b
19:05 Mso150_1 joined #perl6
19:07 masak FROGGS: [backlog] yes, provisional solutions live a long time. I do wonder, however, if the real solution with an auto-generated grammar isn't possible today already. I think it is. if it's not, then it's kind of an interesting question what's blocking it.
19:07 pepl joined #perl6
19:07 moritz nine: somehow the layout isn't very robust; this is what I get when I "zoom in" by clicking on some of those routines: http://moritz.faui2k3.org/​tmp/icycles-screenshot.png
19:08 [Coke] j: say 3
19:08 camelia rakudo-jvm 8b3e8c: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
19:08 [Coke] r: say 3
19:09 camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«(timeout)»
19:09 anaeem___ joined #perl6
19:09 [Coke] I also installed iotop, no clue how to read that either. :)
19:09 bartolin [Coke]: to me it looks like IO was not a main problem during your run of iostat. what was the intervall you used for the command?
19:10 [Coke] 5s
19:11 bartolin [Coke]: but isn't host08 a virtual machine? I doubt that one could track IO problems without looking at the host.
19:11 [Coke] I have no idea if host08 is a virtual machine or not.
19:12 moritz it is
19:12 [Coke] moritz: do you have access to the host machine?
19:12 moritz [Coke]: nope
19:13 [Coke] .ask diakopter is host08 as zippy as it's going to get?
19:13 yoleaux [Coke]: I'll pass your message to diakopter.
19:13 nine moritz: already on it
19:14 dalek nqp: 563322e | moritz++ | src/vm/moar/profiler/template.html:
19:14 dalek nqp: [profiler] give divs a title tag
19:14 dalek nqp:
19:14 dalek nqp: this provides a hover tag for when it is too small for the link to read
19:14 dalek nqp: review: https://github.com/perl6/nqp/commit/563322e71e
19:15 [Coke] r: say 3
19:16 camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«3␤»
19:16 moritz nine: also, clicking on one of the links in the icycle graph just seems to load the original callgraph page, this time without the graph
19:17 azawawi moritz: hi
19:17 moritz azawawi: ola, que tal?
19:17 azawawi moritz: i was browsing the wonderful doc.perl6.org until i got to http://doc.perl6.org/syntax/%3C+%3E  :)
19:18 azawawi moritz: search for < >
19:18 [Coke] moritz: given that it's a virtual machine, I don't think we have any diagnostic tools that are really going to help us, do you?
19:18 [Coke] .seen diakopter
19:18 yoleaux I saw diakopter 20 Sep 2014 13:03Z in #perl6: <diakopter> oh
19:19 moritz [Coke]: not really; I've given diakopter++ some numbers that illustrate the slowness, and he wanted to contact support
19:19 azawawi moritz: im trying to read index.data to make something like http://pasteboard.co/UNwtLZh.png for help
19:19 azawawi moritz: help index + display
19:21 dalek nqp: f05195d | nine++ | src/vm/moar/profiler/template.html:
19:21 dalek nqp: Icycle graph: show one graph for Current instead of one per callee
19:21 dalek nqp:
19:21 dalek nqp: Fixes layout breaking when the current node has multiple callees.
19:21 dalek nqp: review: https://github.com/perl6/nqp/commit/f05195d5f5
19:21 dalek nqp: d1f3ee1 | nine++ | src/vm/moar/profiler/template.html:
19:21 dalek nqp: Icycle graph: allow navigating through tree by clicking on callees in graph
19:21 dalek nqp: review: https://github.com/perl6/nqp/commit/d1f3ee1067
19:22 Mouq joined #perl6
19:22 mauke joined #perl6
19:24 azawawi what's the replacement of quotemeta in Perl 6?
19:25 masak it's the default.
19:25 moritz azawawi: I've opened https://github.com/perl6/doc/issues/27 for you
19:25 azawawi moritz: thanks
19:25 masak m: my $string = "fo+"; say $string ~~ / $string /
19:25 camelia rakudo-moar 8b3e8c: OUTPUT«「fo+」␤␤»
19:25 masak azawawi: ^
19:26 * masak is finally finished backlogging the weekend
19:26 masak everybody++
19:26 mauke what's the opposite of quotemeta?
19:27 moritz <$string> iirc
19:27 masak mauke: <$string>
19:27 azawawi masak: i see thanks :)
19:27 masak m: my $string = "fo+"; say "fooo" ~~ / <$string> /
19:27 camelia rakudo-moar 8b3e8c: OUTPUT«「fooo」␤␤»
19:28 mauke thanks
19:31 ClarusCogitatio joined #perl6
19:34 masak 'night, #perl6
19:40 bbkr I'm tracking JSON::RPC parrot bug and there is some mystery here I cannot solve: https://github.com/bbkr/jsonrpc/issues/13
19:40 bbkr How is is possible that such modification affects attribute assignment?
19:41 bbkr Looks to me like some weird assignment laziness.
19:42 moritz bbkr: is anything using the return value from notify_hello?
19:42 bbkr no
19:43 bbkr although changing it to method notify_hello ( $count ){ $.count = $count; return; } does not help.
19:43 bbkr only works when $.count is used in any way after assignment
19:44 Celelibi joined #perl6
19:46 Sqirrel joined #perl6
19:48 moritz bbkr: can you assing to $!count? if yes, does that change anything?
19:49 moritz and is this parrot-only?
19:50 bbkr parrot only
19:50 bbkr changing to private $!count helped
19:50 bbkr what happened here?
19:52 moritz no idea
19:52 denis_boyun_ joined #perl6
19:53 moritz nine++ # ice-colored flame graphs
19:53 bbkr it fixed the test but parrot users will still get invalid results when trying to use library :(
19:58 bbkr i've noticed somethong else - error is not constant. sometimes I get "Unmarshallable foreign language value passed for parameter '$got'"
19:58 bbkr sometimes 0. sometimes ''. once Whatever<7414491160082086972> appeared
19:58 moritz nine: clicking on a callee works now, but doesn't set the bread crumb path
19:59 moritz bbkr: sounds like a memory corruption thingy
19:59 moritz bbkr: maybe compile parrot with asan
20:00 bbkr thanks, I'll try
20:02 _slade_ joined #perl6
20:03 moritz ok, if I read this profile correctly, the runtime of the case of Str.trans that I'm testing now is dominated by this line: @!substitutions = @!substitutions.grep: {self.triage_substitution($_) }
20:03 moritz and it's not the self.triage_substitution or the grep that's costing the time, but the list assignment
20:05 bbkr --parrot-option='--asan' ?
20:06 moritz (well, STORE + the list iteration behind it)
20:10 moritz rurban: how do you compile parrot with asan?
20:10 Mouq joined #perl6
20:11 bbkr I found no such option in their Makefile.PL
20:12 nine moritz: oh, I see. The code for navigating through the call graph does not take jumps over multiple levels into account
20:12 moritz bbkr: probably some --cc-flags=
20:13 rurban cflags and ldflags and linkflags all must contain the magic
20:13 rurban -fsanitize=address
20:14 rurban but there is now a even better check soon in clang: -fcps (faster and better)
20:15 rurban http://levee.epfl.ch/
20:19 bbkr --parrot-option='--ccflags=-fsanitize=address' like this ?
20:21 moritz yes
20:22 moritz and the same for the other options, and for --cc=clang
20:25 denis_boyun_ joined #perl6
20:26 rurban I'm adding a new parrot option —ccld=clang to set all 3 compilers at once with 6.10
20:37 pmichaud good evening, #perl6
20:42 Hor|zon joined #perl6
20:46 FROGGS joined #perl6
20:48 Ven joined #perl6
20:49 pmichaud general GLR update:  I plan to write blog posts summarizing the results of GLR (and a few other) discussions at #apw2014.  I expect to do much of the writing on the plane tomorrow, so you can expect to see a summary of discussion/expected changes in the next couple of days
20:50 Ven pmichaud++
20:50 Ven (everybody at apw)++ # this was a very fun week, thanks to everybody!
20:50 Ven Get some sleep, nwc10
20:51 Ven (everbody else)++ # you're great as well!
20:51 [Coke] pmichaud++
20:51 timotimo moritz: yeah, the work of grep is being done by the list assignment that's reifying all the elements of grep's lazy list
20:59 leont joined #perl6
21:10 azawawi http://pbrd.co/1w2zEvz  # farabi6 with side-by-side editor/output buffers and module search sidebar
21:26 anaeem1_ joined #perl6
21:32 Mouq joined #perl6
21:32 brrt joined #perl6
21:34 azawawi is there a way for Perl 6 programs to access the REPL via an API?
21:36 dalek panda: 9762fc4 | timbo++ | README.md:
21:36 dalek panda: Add note explaining what Task::Star is
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/9762fc42ab
21:36 dalek panda: 725b060 | (Tobias Leich)++ | README.md:
21:36 dalek panda: Merge pull request #106 from timbunce/patch-1
21:36 dalek panda:
21:36 dalek panda: Add note explaining what Task::Star is
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/725b060901
21:42 tadzik nice:)
21:42 azawawi tadzik: hi
21:43 azawawi tadzik: can Farabi6 be part of Task::Star? Or is there some criteria for including it or not?
21:48 azawawi i wonder if we can some way in the META.json or a certain dir/file structure to have examples for the module at hand
21:48 tadzik azawawi: Task::Star is a list of things available in Rakudo Star, so if you get Farabi there it should end up in Task::Star :)
21:49 azawawi tadzik: cool
21:49 tadzik so you have to find your nearest Star release manager :)
21:50 azawawi hmm ok
21:50 tadzik things like cross-VM compat and stuff are a must
21:50 raiph joined #perl6
21:50 azawawi check... then im targeting for the 2014.11 inclusion
21:51 azawawi so it can be more polished and stable
21:51 azawawi no back to the example or SYNOPSIS directory structure...
21:51 azawawi we need an  example of each Perl 6 module
21:52 tadzik hmm, there's a wiki page
21:52 azawawi no
21:52 azawawi let me explain what i need
21:52 azawawi take a look at http://pbrd.co/1w2zEvz plz
21:53 bbkr azawawi: nice thinking!
21:53 azawawi when the user clicks on the module on the right, we insert the snippets for the module selected
21:54 bbkr unfortunately SYNOPSIS is not easily exportable and is in various places (Readme.md, library POD) across different modules
21:54 azawawi now how can farabi6 determine that... i guess snippet.pl in root directory or something
21:54 azawawi and SYNOPSIS requires more parsing
21:54 azawawi which is prone to error
21:55 azawawi think of about, why did i panda install Module::XYZ....
21:55 azawawi 1. to use...
21:55 azawawi it :)
21:55 Hor|zon joined #perl6
21:56 azawawi i will add an initial feature to pull the snippet.pl from the root directory or eg/snippet.pl
21:57 azawawi if it is there, that snippet is directly inserted into the farabi6 storyboard
21:58 pmurias joined #perl6
21:58 azawawi why is javascript so popular?... the number of steps/tools to create a working example is minimal
21:58 pmurias it's so popular because it's in the browser
21:58 ggherdov joined #perl6
21:59 bbkr does p5 specify example/snippets directory name?
21:59 azawawi nope
21:59 tadzik azawawi: oh, I see. That's cool :)
22:00 pmurias masak: I can understand why you don't want to keep the design in the wiki, if the design evolved by small distributed edits we would likely end up with just adding a bunch of helper methods to QAST and some helper traits
22:00 azawawi bbkr: example/snippets/task1.pl example/snippets/task2.pl example/snippets/task3.pl   # interesting
22:01 azawawi pmurias: true but the number of tools needed to make something work is a A) browser already there and B) an editor... easily obtained
22:01 pmichaud for the impatient:  https://gist.github.com/pmi​chaud/460bc17afcc5ca93b6b1    (highlights of #apw2014 glr-related decisions and accomplishments)
22:04 bbkr azawawi: thought so :( and i don't think p6 does that either. directories like lib/ or t/ are just customary. I think the best bet is to look for common names such as example/ or snippets/ and offer to paste content from files there. however small number of p6 modules has those
22:05 camelia joined #perl6
22:07 azawawi in p5 they use eg/ for examples
22:09 * azawawi added the snippet idea as https://github.com/azawawi/farabi6/issues/39  .. bbkr++ tadzik++
22:10 * azawawi sleep &
22:10 bbkr maybe stick with eg/ then instead of  example/snippets/
22:11 azawawi or use a META.json  key :)
22:11 Alina-malina joined #perl6
22:12 azawawi tadzik: do you have a template for a new p6 github project?
22:12 leont joined #perl6
22:13 * azawawi so sleepy... later &
23:09 brrt stage parse 25.827s
23:09 brrt wow
23:13 brrt left #perl6
23:20 ifim joined #perl6
23:28 pochi_ joined #perl6
23:38 cognome joined #perl6
23:43 xenoterracide__ joined #perl6
23:58 Hor|zon joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo