Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-05-22

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:24 timotimo ufo wants updating, too. for $*VM<name>
00:24 dayangkun joined #perl6
00:26 raiph joined #perl6
00:35 askz joined #perl6
00:46 john3213 joined #perl6
00:50 virtualsue joined #perl6
00:51 john3213 left #perl6
00:59 timotimo i'm running into trouble with trying to build a simple GTK::Simple app
00:59 timotimo i have added two buttons to my window and tapped one's clicked supply and the other's
00:59 timotimo but clicking the other button mores the first button's clicked tap, too
01:00 colomon timotimo++
01:00 timotimo and it don't seem like the second button's supply gets more'd at all
01:02 timotimo two supplies do get created. but that's about it.
01:04 timotimo yeah, i really don't get it.
01:07 timotimo someone ought to check out the examples/01 in perl6/gtk-simple
01:07 klapperl joined #perl6
01:07 timotimo it behaves very oddly
01:07 timotimo there's debug output in there
01:25 bowtie joined #perl6
01:30 shalom1024 joined #perl6
01:46 pdcawley_ joined #perl6
01:48 SHODAN joined #perl6
01:50 FROGGS_ joined #perl6
01:51 thou joined #perl6
01:53 dayangkun joined #perl6
01:54 Su-Shee joined #perl6
02:22 telex joined #perl6
02:25 Grimnir__ joined #perl6
02:29 kurahaupo joined #perl6
02:31 shalom1024 joined #perl6
02:31 Sqirrel joined #perl6
02:32 Sqirrel_ joined #perl6
02:33 AndChat-458964 joined #perl6
02:42 Timbus joined #perl6
02:53 pochi_ joined #perl6
02:55 Ben_Goldberg joined #perl6
02:55 shalom1034 joined #perl6
02:56 woolfy1 joined #perl6
02:56 skids1 joined #perl6
02:57 Timbus_ joined #perl6
02:57 tadzik1 joined #perl6
02:57 FROGGS__ joined #perl6
02:57 nebuchad` joined #perl6
02:58 Shozan joined #perl6
02:59 FOAD_ joined #perl6
03:02 stux|away joined #perl6
03:02 go|dfish1 joined #perl6
03:03 yoleaux joined #perl6
03:03 nhayashi joined #perl6
03:04 yoleaux joined #perl6
03:04 ilogger2 joined #perl6
03:07 molaf joined #perl6
03:11 bowtie joined #perl6
03:12 xragnar joined #perl6
03:14 huf joined #perl6
03:18 Ulti joined #perl6
03:18 segomos joined #perl6
03:23 xragnar joined #perl6
03:29 SevenWolf joined #perl6
03:36 Alula joined #perl6
03:39 thou joined #perl6
03:43 fhelmberger joined #perl6
03:44 SamuraiJack__ joined #perl6
03:57 berekuk joined #perl6
03:57 colomon joined #perl6
04:02 kaare_ joined #perl6
04:11 thou joined #perl6
04:11 anaeem1_ joined #perl6
04:17 anaeem1 joined #perl6
04:40 SamuraiJack joined #perl6
05:29 kaare_ joined #perl6
05:31 DarthGandalf joined #perl6
05:43 FROGGS__ m: FOO: while 1 { say 1; last FOO }; say FOO
05:43 camelia rakudo-moar f5e98b: OUTPUT«1�Label<FOO>(at /tmp/XGK3A4MmyP:1, '[32m[33m�[31mFOO[32m: while 1 { say 1; last[0m')�»
06:01 kaleem joined #perl6
06:03 denis_boyun_ joined #perl6
06:26 SevenWolf joined #perl6
06:31 sjn_mob joined #perl6
06:33 lizmat good *, #perl6!
06:34 lizmat I tried jnthn "say" patch, but it gives some spectest errors I would like to look into before committing
06:34 lizmat and since I won't have time for that today, I think I'll wait until after this month's release has been cut
06:35 lizmat just to be on the safe side
06:45 sjn_ joined #perl6
06:47 FROGGS joined #perl6
06:59 Ven joined #perl6
07:15 darutoko joined #perl6
07:15 moritz m: FOO: while False { }; say FOO.^name
07:15 camelia rakudo-moar f5e98b: OUTPUT«Label␤»
07:15 moritz m: FOO: while False { }; say FOO.^methods
07:15 camelia rakudo-moar f5e98b: OUTPUT«new name gist Int next redo last␤»
07:16 moritz woah, first class labels
07:18 moritz m: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, B).pick.next } }
07:18 camelia rakudo-moar f5e98b: OUTPUT«1 a␤1 b␤1 c␤2 a␤2 b␤3 a␤3 b␤»
07:18 moritz m: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, A, B).pick.next } }
07:18 camelia rakudo-moar f5e98b: OUTPUT«1 a␤1 b␤2 a␤2 b␤3 a␤3 b␤»
07:19 moritz r: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, A, B).pick.next } }
07:19 camelia rakudo-parrot f5e98b: OUTPUT«1 a␤2 a␤2 b␤3 a␤»
07:19 camelia ..rakudo-jvm f5e98b: OUTPUT«1 a␤1 b␤1 c␤2 a␤2 b␤2 c␤3 a␤»
07:19 camelia ..rakudo-moar f5e98b: OUTPUT«1 a␤2 a␤3 a␤»
07:19 moritz computed got^Wnext!
07:19 masak morn's, #perl6!
07:20 moritz \o masak
07:21 FROGGS morning
07:21 masak first class labels! \o/
07:21 masak FROGGS++ # I assume
07:21 FROGGS :o)
07:21 moritz good FROGGS++ :-)
07:21 SamuraiJack joined #perl6
07:21 zakharyas joined #perl6
07:21 masak m: FOREVER: loop { say "step"; last FOREVER }; say "meanwhile, much much later..."
07:21 camelia rakudo-moar f5e98b: OUTPUT«step␤meanwhile, much much later...␤»
07:22 masak \o/
07:22 masak this is awesome
07:22 masak m: FOREVER: loop { say "step"; FOREVER.last }; say "meanwhile, much much later..."
07:22 camelia rakudo-moar f5e98b: OUTPUT«step␤meanwhile, much much later...␤»
07:22 masak whoa.
07:22 masak I will be teaching today, but all the time my brain will go "Rakudo has loop labels... zoinks..."
07:23 masak FROGGS: I blame you :P
07:23 FROGGS g*
07:23 FROGGS err
07:23 FROGGS *g*
07:23 FROGGS g* <-- Bruce Willis smile
07:24 masak ;)
07:27 Ven m: FOREVER: loop { loop { loop { say "step"; FOREVER.last } LEAVE { say "unstep--"; } }; LEAVE { say "unstep"; } }; say "meanwhile, much much later..."
07:27 camelia rakudo-moar f5e98b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/aIzk7rZbGsâ�¤Confusedâ�¤at /tmp/aIzk7rZbGs:1â�¤------> [32moop { loop { say "step"; FOREVER.last } [33mâ��[31mLEAVE { say "unstep--"; } }; LEAVE { say[0mâ�¤    expecting any of:â�¤        metho…»
07:27 Ven m: FOREVER: loop { loop { loop { say "step"; FOREVER.last }; LEAVE { say "unstep--"; } }; LEAVE { say "unstep"; } }; say "meanwhile, much much later..."
07:27 camelia rakudo-moar f5e98b: OUTPUT«step␤unstep--␤unstep␤meanwhile, much much later...␤»
07:28 Ven Yay :-). FROGGS ++
07:29 FROGGS I wonder what I should put into the features matrix... because we cannot goto yet, and we cannot specify return values of a block via Label.last(...)
07:29 FROGGS the feature is just called 'Labeled loops'
07:30 FROGGS and goto is not exactly about that
07:30 FROGGS I guess I add 'goto' as a separate feature?
07:32 FROGGS I would like to put the 'Labeled loops' feature into the state 'implemented', because specifying return values via .last is sort of an add-on
07:32 FROGGS moritz / masak: opinions?
07:32 moritz FROGGS: +1
07:32 FROGGS thanks :o)
07:33 sergot morning o/
07:33 FROGGS morning sergot
07:33 sergot FROGGS++
07:34 FROGGS thank you
07:45 berekuk joined #perl6
07:45 colomon joined #perl6
07:46 dalek features: 71145f6 | (Tobias Leich)++ | features.json:
07:46 dalek features: tick boxes for labels for rakudo and add seperate 'goto'
07:46 dalek features: review: https://github.com/perl6/features/commit/71145f60f3
07:47 donaldh_ joined #perl6
08:00 woolfy1 left #perl6
08:01 dalek rakudo/nom: 900f0ba | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
08:01 dalek rakudo/nom: The first actual use of last LABEL in core?
08:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/900f0babb2
08:03 lizmat sightseeing&
08:04 FROGGS have fun
08:07 zakharyas joined #perl6
08:07 virtualsue joined #perl6
08:13 sqirrel joined #perl6
08:20 chenryn will Perl6 support compile to binary like golang?
08:20 moritz chenryn: it'll probably always need more runtime than go
08:21 moritz chenryn: currently the parrot and moarvm backends compile to bytecode, which can be bundleded together with the VM in a single executable
08:21 moritz (not yet done automatically)
08:22 chenryn I think it's too big after bundle a VM...
08:22 moritz do you know how big the VM is?
08:23 cooper joined #perl6
08:23 moritz $ du -h install/bin/moar
08:23 moritz 24K     install/bin/moar
08:24 chenryn ==, great!
08:24 tadzik1 well, that's excluding libmoar.so :)
08:24 moritz aye, that's another 3.5M
08:24 tadzik1 but a 2d game bundled with assets, MoarVM and the entire rakudo took 2.2 MBs, compressed
08:25 tadzik1 so I don't think it's that bad
08:25 moritz and I guess if you statically compile moarvm and then strip the binary, you could reduce the size even further
08:25 tadzik1 besides, if you were to put all the stuff needed for perl6 in a "binary", this binary would be at least as big anyway :)
08:29 virtualsue disk space is cheap
08:32 sergot m: LAB: LABB: loop { last LAB }
08:32 camelia rakudo-moar 900f0b: ( no output )
08:33 sergot m: LAB: LABB: loop { last LABB }
08:33 camelia rakudo-moar 900f0b: ( no output )
08:33 tadzik r: LAB: Rat
08:34 tadzik ah, I should use m
08:34 camelia rakudo-jvm 900f0b: OUTPUT«(timeout)»
08:34 camelia ..rakudo-{parrot,moar} 900f0b: ( no output )
08:34 tadzik oh, jvm acting funny :)
08:36 fhelmberger joined #perl6
08:39 masak just acting aloof, as usual.
08:40 masak m: L1: L2: loop { last L1 }; say "alive"
08:40 camelia rakudo-moar 900f0b: ( no output )
08:40 masak m: L1: L2: loop { last L2 }; say "alive"
08:40 camelia rakudo-moar 900f0b: OUTPUT«alive␤»
08:40 * masak submits rakudobug
08:40 masak I'm conservative in this case. I don't think there's *any* use for multiple labels on the same loop.
08:40 masak YMMV.
08:41 dakkar joined #perl6
08:41 FROGGS only one label is supported, yes
08:41 tadzik COLOR: COLOUR: loop { }
08:41 FROGGS bah
08:42 sjn_ joined #perl6
08:43 masak tadzik: that's awful :)
08:44 tadzik *tips fedora*
09:00 tadzik heh. I spent like 4 hours chasing $entry->{domain} instead of $entry->{$domain} in Perl 6
09:00 tadzik erm, Perl 5
09:01 moritz tadzik: I was about to say, in perl 6 it's a compile time error (usually)
09:08 tadzik sorry for perl5 again, but I have to leave this gem here:
09:08 tadzik (trepanpl): h breakpoints
09:08 tadzik ** No commands found matching /^brepoints/. Try "help".
09:13 dmol joined #perl6
09:16 moritz m: say Date.new(|'2014-1-23'.split: '-');
09:16 camelia rakudo-moar 900f0b: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Str'␤  in block  at src/gen/m-CORE.setting:892␤  in method BUILDALL at src/gen/m-CORE.setting:875␤  in method bless at src/gen/m-CORE.setting:864␤  in method new at src/gen/m-CORE…»
09:16 moritz that's a bit LTA; should be Cool, IMHO
09:17 dalek Perlito: debc4f6 | (Flavio S. Glock)++ | TODO-perlito5:
09:17 dalek Perlito: Perlito5 - TODO update
09:17 dalek Perlito: review: https://github.com/fglock/Perlito/commit/debc4f6863
09:18 moritz there's a bug report (RT #121926) that requests more lenient date parsing in Date.new
09:18 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121926
09:18 moritz any objects to rejecting that ticket?
09:18 moritz *objections
09:31 masak no objections.
09:31 masak lenient Date parsing is not a feature IMHO.
09:32 masak I can probably even give a rationale from ISO 8601 -- hold on.
09:33 Rikkol joined #perl6
09:33 anaeem1_ joined #perl6
09:34 moritz masak: if so, please add it to the ticket
09:34 moritz (I've now rejected it)
09:34 masak "[MM] indicates a two-digit month of the year, 01 through 12." -- not such a strong rationale, but pointing in that direction.
09:34 masak it doesn't say it *has* to be that way, it just matter-of-factly states that it's two digits.
09:35 * masak adds that to the ticket
09:35 masak uh, no.
09:36 masak apparently cannot add it now.
09:36 masak OTOH, I'm happy with what moritz++ wrote.
09:36 * masak is teaching right now, so has limited time to deal with this
09:38 Rikkol left #perl6
09:44 sergot m: $tomorrow = Date.today + 1; say $tomorrow;
09:44 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rXOWKmsvyWâ�¤Variable '$tomorrow' is not declaredâ�¤at /tmp/rXOWKmsvyW:1â�¤------> [32m$tomorrow[33mâ��[31m = Date.today + 1; say $tomorrow;[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
09:45 sergot m:my $tomorrow = Date.today + 1; say $tomorrow;
09:45 FROGGS space after the m: ?
09:45 sergot m: my $tomorrow = Date.today + 1; say $tomorrow;
09:45 camelia rakudo-moar 900f0b: OUTPUT«2014-05-23␤»
09:47 donaldh_ joined #perl6
09:52 FROGGS "The canonical location for this page is at http://perl6.org/compilers/features and is updated at least hourly."
09:52 FROGGS the last bit is a lie :/
09:55 moritz FROGGS: I've updated it now
09:55 moritz though I don't see why it wouldn't work automatically :(
09:55 FROGGS thanks :o)
10:03 denis_boyun_ joined #perl6
10:03 tadzik hmm. I think I'd like having Debugger::UI::CommandLine as a "first core" module
10:04 FROGGS I sometimes think that panda needs to get in core.... but in theory that is star is for: a compiler + useful stuff
10:05 FROGGS is what*
10:05 tadzik I just think that having a perl6-debug binary that doesn't work is sort of bad :)
10:05 xinming joined #perl6
10:11 breinbaas joined #perl6
10:18 colomon jnthn: parrakudo stage parse on my linux box has gone from 85s to 90s (which I've gotten at least twice now) sometime this week.
10:19 colomon hmm… was 86s yesterday
10:19 colomon and the day before
10:25 kurahaupo joined #perl6
10:26 timotimo did anybody have an opportunity to investigate the gtk-simple weirdness?
10:26 timotimo also, could we get gtk-simple reports to dalek perhaps?
10:28 moritz sure
10:28 timotimo yays
10:28 timotimo i think i should pour more tuits into gtk-simple
10:28 timotimo and others should probably do that, too :)
10:28 timotimo it's a very high-wattage thing
10:28 donaldh_ joined #perl6
10:28 tadzik weirdness?
10:29 timotimo gtk isn't as nice as qt, but it has a C api which is at least bindable at all.
10:29 timotimo tadzik: i'm tapping two different button's clicked slots and the second button causes the first button's tap to be more'd instead of the second button's
10:29 timotimo example code and debug output to be found in the repo.
10:29 timotimo AFK
10:31 sjn_ joined #perl6
10:44 dalek mu: d48dc17 | sergot++ | misc/dalek-push.txt:
10:44 dalek mu: [misc/dalek-push.txt] new configuration procedure
10:44 dalek mu: review: https://github.com/perl6/mu/commit/d48dc17cc7
10:46 eternaleye joined #perl6
10:59 timotimo https://stackoverflow.com/questions/4505381/perl-read-line-by-line/4505773#4505773  -  holy batman wow
10:59 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=4505773
11:19 sergot :D
11:27 masak ah, tchrist++, trolling all the rest of us with Unicode.
11:28 timotimo i like those strange semicolon-lookalikes
11:29 timotimo .u ⁏
11:29 yoleaux U+204F REVERSED SEMICOLON [Po] (⁏)
11:41 FROGGS m: say 10010/3600
11:41 camelia rakudo-moar 900f0b: OUTPUT«2.780556␤»
11:42 FROGGS that is how long a jvm spectest takes without using the eval server
11:43 timotimo wowza.
11:43 timotimo 2.8 times longer, eh?
11:44 FROGGS 2.8hours
11:44 timotimo oh!
11:44 FROGGS :o)
11:44 timotimo and with the evalserver?
11:44 FROGGS less, but then it starts to abort tests from S17 for me
11:44 timotimo ah, yeah
11:44 timotimo i recall that problem >_>
11:44 FROGGS 2.8 hours with only one job at a time btw
11:45 FROGGS that is how the problems look: https://gist.github.com/FROGGS/9453c10577b1b729acf2
11:45 FROGGS dunno what we can do about that
11:46 FROGGS m: my $cons = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $p = $cons.key; say $cons.key.key =:= $p.key
11:46 camelia rakudo-moar 900f0b: OUTPUT«True␤»
11:46 FROGGS p: my $cons = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $p = $cons.key; say $cons.key.key =:= $p.key
11:46 camelia rakudo-parrot 900f0b: OUTPUT«False␤»
11:47 vendethiel joined #perl6
11:47 FROGGS I think I want to bisect this
11:49 timotimo AFK for most of the day &
11:50 FROGGS colomon: it is possible that this is because I added labels...
11:50 FROGGS so the setting is slightly bigger and also loop check that they have to check for labels for every loop
11:53 dalek Perlito: 7018e85 | (Flavio S. Glock)++ | / (4 files):
11:53 dalek Perlito: Perlito5 - parser - "while" special case
11:53 dalek Perlito: review: https://github.com/fglock/Perlito/commit/7018e85671
12:02 FROGGS [Coke]: can you push the latest roast-data please?
12:07 Ven m:my $x = 0 but { method gloubi { say "hello"; } }; $x.gloubi
12:07 Ven m: my $x = 0 but { method gloubi { say "hello"; } }; $x.gloubi
12:07 camelia rakudo-moar 900f0b: OUTPUT«Useless declaration of a has-scoped method in mainline (did you mean 'my method gloubi'?)␤No such method 'gloubi' for invocant of type 'Int+{<anon>}'␤  in block  at /tmp/lcVB8udeUI:1␤␤»
12:07 moritz Ven: should be 'but role {'
12:08 Ven m: my $x = 0 but role { method gloubi { say "hello"; } }; $x.gloubi
12:08 camelia rakudo-moar 900f0b: OUTPUT«hello␤»
12:08 FROGGS nice
12:08 Ven moritz: hehe, :D
12:26 sqirrel joined #perl6
12:41 Woodi hallo :)
12:42 masak I'm pretty sure we as a community hasn't used 'but' to its full potential yet.
12:42 masak haven't*
12:42 Woodi teoretically asking: what $x with role is ? and why ?
12:42 vike joined #perl6
12:43 Woodi some light object ?
12:43 bluescreen10 joined #perl6
12:43 Woodi err, s/light/lightweight/
12:45 tadzik everything is an object :)
12:45 tadzik so you just mixin a role into it
12:46 masak Woodi: it's the same object, but belonging to an automatically generated anonymous subclass.
12:56 skids joined #perl6
13:06 moritz which has that role mixed
13:07 FROGGS jnthn++ # http://www.infoq.com/presentations/invokedynamic
13:08 tadzik "register to download slides" grrr
13:08 Woodi hmm, can I have atributes in that scalar ? ;)
13:10 moritz sure
13:10 FROGGS m: my $x = 0 but role { has $.thingy = 42 }; say $x.thingy
13:10 moritz tadzik: last time I tried to register on infoq, I never got the password confirmation email
13:10 camelia rakudo-moar 900f0b: OUTPUT«42␤»
13:11 FROGGS it does not just look like as if a role was mixed in, it really is
13:12 moritz it *is* a duck!
13:12 tadzik oh, the slides appear next to the video too, good
13:12 FROGGS yeah
13:12 FROGGS I like it too
13:20 zakharyas joined #perl6
13:26 FROGGS[mobile] joined #perl6
13:34 guru joined #perl6
13:37 masak strangely enough, the invokedynamic talk is not up at http://jnthn.net/articles.shtml
13:37 masak jnthn: is that intentional?
13:41 timotimo but that will lose its thingy if you assign to it, no?
13:41 timotimo i think you want to $x.VAR does role ...
13:43 Woodi r: role Properties { has $.property is rw }; my Int $i = 0 but Properties; $i.property = "some info"; say $i.perl; say $i.property;
13:43 camelia rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«0␤some info␤»
13:43 masak m: my $x = Any.new; my $y = $x but role {}; say $x === $y
13:43 camelia rakudo-moar 900f0b: OUTPUT«False␤»
13:43 masak probably that's for the best.
13:46 btyler joined #perl6
13:52 virtualsue is there something akin to tomcat written in perl 6?
13:55 Woodi virtualsue: "Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies." ;)
13:56 virtualsue yes i'm aware of what it is
13:56 Woodi virtualsue: probably not yet :)
13:58 Woodi virtualsue: but actually I have problem with identifing what tomcat is... wiki says it is "container"...
13:58 Woodi + web server
13:58 Woodi we have Bailador, Perl5 Dancer clone...
14:02 thou joined #perl6
14:03 xenoterracide joined #perl6
14:08 virtualsue that's interesting
14:09 Woodi virtualsue: but beware *standard warning*: Perl6 compilers are still under development :)
14:09 virtualsue i'm well aware of that too
14:10 anaeem1_ joined #perl6
14:11 Woodi so far Perl6 is quite good as presentations hijacking language :)
14:14 kaare_ joined #perl6
14:23 grlpx joined #perl6
14:24 timotimo i do not have a proper keyboard with me. can someone test my hypothesis
14:24 FROGGS joined #perl6
14:25 timotimo that you need to (or rather: can) mix inytoto a .VAR and assign to that
14:27 hummeleBop joined #perl6
14:28 grlpx what is perl 6? what's wrong with perl?
14:29 PerlJam grlpx: perl 6 is another language in the perl family of languages.  Nothing is wrong with perl.
14:29 tadzik well, aside from globals in sort(), for instance :D
14:31 grlpx is it still a developing language perl 6? or is it defined?
14:31 PerlJam I wouldn't even say that is "wrong"
14:31 tadzik it's not a dead language, so it's still developing, yes
14:31 PerlJam grlpx: all languages are "still developing".  Perhaps you could narrow down what you mean more precisely?
14:32 zakharyas joined #perl6
14:32 grlpx I mean if it's still a language which can broke compatibility and implement new estetical decisions
14:32 timotimo partially, yes
14:33 FROGGS grlpx: that still happens, but very rarely
14:33 PerlJam grlpx: Backward compatibility has not become a dominating factor in the evolution of Perl6 yet.  :)
14:33 FROGGS more like fine grained tweaks I'd say
14:33 timotimo but we are quite close to fixed with the most common things
14:33 timotimo concurrency features have only recently been fleshed out
14:33 timotimo for example
14:34 timotimo and asynchronous i/o
14:34 grlpx Do you improve something on the "single program multiple data" scenario?
14:35 timotimo the most "core" thing that you will find missing is probably shaped arrays and related features
14:35 timotimo and of course modules that arevready to be installed
14:35 timotimo yes
14:35 timotimo look at hyper operators for example
14:36 timotimo feeds are how we do communicating serial programmers
14:36 PerlJam according to the feature matrix, we're still missing "basic module versioning"   That's kind of important too  :)
14:36 timotimo programs
14:36 timotimo froggs is gard at work on that feature
14:36 timotimo hard
14:36 FROGGS but first compiler release today :o)
14:36 PerlJam yeah, I can't FROGGS++ enough for the stuff he's doing.
14:37 grlpx looking at them, seems interesting
14:41 timotimo first compiler release? ;)
14:41 timotimo grlpx, the perl 6 advent calendar has many good examples
14:41 timotimo about anything perl6 related
14:44 treehug88 joined #perl6
14:45 rurban joined #perl6
14:50 FROGGS[mobile] joined #perl6
14:52 Ven calendar++
14:54 FROGGS m: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key
14:54 camelia rakudo-moar 900f0b: OUTPUT«True␤»
14:54 FROGGS p: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key
14:54 camelia rakudo-parrot 900f0b: OUTPUT«False␤»
14:54 FROGGS j: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key
14:54 camelia rakudo-jvm 900f0b: OUTPUT«False␤»
14:54 FROGGS does that have to be True?
14:55 FROGGS we fail this spectest since a few days
14:55 FROGGS (when Pair.key lost its 'is rw')
15:03 sjohnson joined #perl6
15:05 masak decommute &
15:05 masak FROGGS: I think that test is bogus.
15:05 masak FROGGS: you do assignment -- why should binding equality be true?
15:06 FROGGS masak: I dunno
15:06 FROGGS that's why I am asking :o)
15:06 SamuraiJack joined #perl6
15:06 FROGGS filed a bug about that: https://rt.perl.org/Ticket/Display.html?id=121945
15:06 FROGGS which perhaps shows the problem better
15:09 dalek roast: cafda9b | (Tobias Leich)++ | S12-methods/chaining.t:
15:09 dalek roast: fudge tests about Pair.key identity, RT #121945
15:09 dalek roast: review: https://github.com/perl6/roast/commit/cafda9b733
15:09 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121945
15:11 Adriaaan joined #perl6
15:11 rindolf joined #perl6
15:17 FROGGS jnthn / lizmat: I am thinking about commenting out all S17 tests for the compiler release today
15:19 molaf_ joined #perl6
15:21 PerlJam r: grammar G { rule TOP { |  "foo" <a>?  |  "foo" <b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz");
15:21 camelia rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«「foo」␤␤「foo bar」␤ a => 「bar」␤␤(Any)␤»
15:21 PerlJam Am I crazy or should that last one parse as well?
15:22 FROGGS r: grammar G { rule TOP { |  "foo" <a>?  |  "foo" <b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz");
15:23 camelia rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«「foo」␤␤「foo bar」␤ a => 「bar」␤␤(Any)␤»
15:23 FROGGS I think the branch "foo" <a>? is happy because it matched the "foo", and won't backtrack
15:23 FROGGS m: grammar G { rule TOP { :r |  "foo" <a>?  |  "foo" <b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz");
15:23 camelia rakudo-moar 900f0b: OUTPUT«「foo」␤␤「foo bar」␤ a => 「bar」␤␤(Any)␤»
15:23 FROGGS err
15:23 FROGGS m: grammar G { rule TOP { "foo" [ <a>? | <b>? ]  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz");
15:24 camelia rakudo-moar 900f0b: OUTPUT«「foo」␤␤「foo bar」␤ a => 「bar」␤␤「foo baz」␤ b => 「baz」␤␤»
15:25 anaeem1 joined #perl6
15:25 PerlJam FROGGS: that hypothesis is good except that if the <a>? branch is happy, why didn't the match succeed?
15:26 FROGGS because you called .parse, not .subparse
15:26 FROGGS you get an implicit ^ and $ there
15:26 FROGGS m: grammar G { rule TOP { |  "foo" <a>?  |  "foo" <b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.subparse("foo baz");
15:26 PerlJam ah!  That's what I was forgetting.
15:26 camelia rakudo-moar 900f0b: OUTPUT«「foo」␤␤「foo bar」␤ a => 「bar」␤␤「foo 」␤␤»
15:32 Alula joined #perl6
15:34 btyler joined #perl6
15:35 guru joined #perl6
15:39 timotimo rules dont backtrack iirc
15:39 timotimo but why is ? not greedy?
15:40 TimToady ? means frugal, ! means greedy
15:41 timotimo there is ! in regex??
15:41 timotimo meaning the same as ? except greedy?
15:41 TimToady yes
15:41 TimToady well, as a modifier to another
15:41 timotimo TYYKTMYK
15:41 timotimo ...
15:41 TimToady *! vs *?
15:41 timotimo TMYK
15:42 TimToady but ? by itself is greedy
15:42 TimToady ?? is frugal, ?! is greedy
15:42 TimToady so ? under :r should be greedy
15:44 TimToady do you have an example of bare ? not working under :r?
15:45 TimToady 'course, bare ? is not greedy under :r, but "possessive", or whatever we call it
15:46 FROGGS hi TimToady
15:46 anaeem1_ joined #perl6
15:46 TimToady FROGGS++ Willis
15:46 FROGGS you can now rewrite all rc entries :o)
15:46 TimToady ayup
15:46 FROGGS label all the things! /o/
15:49 FROGGS goto should be fairly easy on moarvm, but it is not like I need that for something, so I leave that open for now
15:49 TimToady for instance, http://rosettacode.org/wiki/Ludic_numbers#Perl_6
15:51 TimToady the conditional after the inner loop is really unnecessary
15:52 anaeem1_ joined #perl6
15:57 timotimo see froggs code above
15:57 timotimo we think it ought to parse the whole thirdvstring even without subparse
15:57 FROGGS ahhh, hmmm
15:58 FROGGS m: grammar G { rule TOP { |  "foo" <a>?  |  "foo" <b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz");
15:58 camelia rakudo-moar 900f0b: OUTPUT«(Any)␤»
15:58 FROGGS m: grammar G { rule TOP { "foo" [ <a>? | <b>? ] }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz");
15:58 camelia rakudo-moar 900f0b: OUTPUT«「foo baz」␤ b => 「baz」␤␤»
15:59 FROGGS no, it makes sense
16:00 timotimo enlighten me please
16:00 TimToady the implicit <.ws> stops LTM
16:00 TimToady after the "foo"
16:00 timotimo oooooh
16:00 FROGGS yes, that :o)
16:00 timotimo that's a nice wat
16:00 FROGGS I sorta know but can't explain
16:01 timotimo so with :r, ? on its own is kind of a ono-op?
16:01 TimToady m: grammar G { rule TOP { |  "foo"\h+<a>?  |  "foo"\h+<b>?  }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz");
16:01 camelia rakudo-moar 900f0b: OUTPUT«「foo baz」␤ b => 「baz」␤␤»
16:01 TimToady those two spaces I changed to \h+ to make them included in LTM
16:02 timotimo aye
16:02 TimToady then LTM works, and incudes <b>, so it calls that subrule first
16:03 timotimo we ought to give people a tool for ides and such that points out exactly which parts will be part of ltm
16:03 FROGGS m: say <a a b b c c d d>.Bag.fmt('%s',',')
16:03 camelia rakudo-moar 900f0b: OUTPUT«a,b,c,d␤»
16:03 FROGGS j: say <a a b b c c d d>.Bag.fmt('%s',',')
16:03 camelia rakudo-jvm 900f0b: OUTPUT«b,a,d,c␤»
16:03 ajr joined #perl6
16:03 FROGGS there are tests that rely on ordering, and fail on jvm (only on jvm)
16:06 timotimo why do they do that?
16:08 FROGGS I dunno
16:09 FROGGS I guess I check it like that:
16:09 FROGGS j: say <a a b b c c d d>.Bag.fmt('%s').lines.sort ~~ <a b c d>
16:09 camelia rakudo-jvm 900f0b: OUTPUT«True␤»
16:09 FROGGS or is there a shorter way?
16:10 timotimo turn them into a set?
16:11 timotimo like .keys.set eqv set <...>
16:11 TimToady sets are also unordered
16:11 * TimToady doesn't know what .lines is doing there
16:12 TimToady there's only one line
16:12 anant joined #perl6
16:13 TimToady p6: say <a a b b c c d d>.Bag.fmt('%s')
16:13 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method fmt in type Bag␤  at /tmp/tmpfile line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤  a…»
16:13 camelia ..rakudo-jvm 900f0b: OUTPUT«b␤a␤d␤c␤»
16:13 camelia ..rakudo-{parrot,moar} 900f0b: OUTPUT«a␤b␤c␤d␤»
16:13 FROGGS m: say <a a b b c c d d>.Bag.fmt('%s').lines
16:13 camelia rakudo-moar 900f0b: OUTPUT«a b c d␤»
16:13 TimToady hmm, why the newlines?
16:14 FROGGS seems to be the default separator
16:14 FROGGS m: say <a a b b c c d d>.Bag.fmt('%s', ',')
16:14 camelia rakudo-moar 900f0b: OUTPUT«a,b,c,d␤»
16:14 TimToady listy things are supposed to use ' ' as the default
16:14 * FROGGS creates a rakudobug
16:15 TimToady unless it's thinking of it as a hash, but then where are the values?
16:15 TimToady p6: say <a a b b c c d d>.Bag
16:15 camelia niecza v24-109-g48a8de3: OUTPUT«bag("a" => 2, "b" => 2, "c" => 2, "d" => 2)␤»
16:16 camelia ..rakudo-{parrot,moar} 900f0b: OUTPUT«bag(a(2), b(2), c(2), d(2))␤»
16:16 camelia ..rakudo-jvm 900f0b: OUTPUT«bag(b(2), a(2), d(2), c(2))␤»
16:16 TimToady p6: say <a a b b c c d d>.Bag.list
16:16 camelia rakudo-{parrot,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«a b c d␤»
16:16 camelia ..rakudo-jvm 900f0b: OUTPUT«b a d c␤»
16:18 liztormato joined #perl6
16:19 liztormato FROGGS: Wrt commenting out S17 tests.  What would that achieve?
16:19 TimToady p6: say list <a a b b c c d d>.Bag
16:19 camelia niecza v24-109-g48a8de3: OUTPUT«bag("a" => 2, "b" => 2, "c" => 2, "d" => 2)␤»
16:19 camelia ..rakudo-{parrot,moar} 900f0b: OUTPUT«bag(a(2), b(2), c(2), d(2))␤»
16:19 camelia ..rakudo-jvm 900f0b: OUTPUT«bag(b(2), a(2), d(2), c(2))␤»
16:19 FROGGS liztormato: that we have clean spectests for the release?
16:20 liztormato FROGGS: Aren't they clean?  I thought I fudged the failing ones?
16:21 liztormato Watch_path may be an exception
16:21 Adriaaan joined #perl6
16:21 FROGGS liztormato: that is how tests look like as of today: https://gist.github.com/FROGGS/35fb4a8a1573f2e732d2
16:22 anant joined #perl6
16:23 anant Is there a builtin that returns the index of the minimum element in a list?
16:24 liztormato The S02 failures seem related to .fmt. Doesn't the jvm have .fmt?
16:24 liztormato Anant: try .min
16:24 liztormato Ah the index
16:25 liztormato Hmmmmm. Maybe we need min-index ?
16:25 btyler joined #perl6
16:26 Psyche^ joined #perl6
16:26 * liztormato czechs further
16:28 anant liztormato: For example in R, there is which.min() and in ruby, we can do a.index(a.min)
16:29 liztormato FROGGS: I'm ok with disabling watchpath tests for release.  The other S17 tests I'm not su sure
16:29 liztormato anant: You can do grep-index on the .min value already
16:32 PerlJam liztormato: though that looks kind of awkward:   @a.grep-index(@a.min(+*))  # find the index of the numerically minimum value
16:34 liztormato Not too different from Ruby it seems
16:35 liztormato Also, why the +*   ?
16:36 liztormato If @a contains numbers, .min should do the right thing
16:36 PerlJam aye.  I guess I was being paranoid or somethign
16:37 PerlJam for instance, if you're reading in a list of numbers from a file, they're all strings until you do something to make them otherwise
16:37 liztormato True
16:39 anant liztormato: Thanks for pointing out grep-index :) Though min and max-index as builtins would be awesome too
16:40 TimToady well, but do you just want the first one, or all of them that match?
16:40 PerlJam the *-index functions all make me want to have some way to do that with just the non-index function.  Like an option to grep that instead of returning the values that match, returns the indexes.  Same for min/max/first/last/etc.
16:40 TimToady keeping things orthogonal means you can pick first vs grep
16:41 SamuraiJack joined #perl6
16:41 PerlJam anant: does ruby's .index return a list of matching indices?
16:42 TimToady of course, if grep is lazy, then first could be defined as .[0], but then it's a bit harder to optimize
16:42 anant PerlJam: first index only
16:42 liztormato Otoh. Its all lazy. So you could just ask for just the first em of a min-index
16:43 liztormato TimToady has a better keyboard
16:44 PerlJam so, I guess the p6 equivalent would be more like  @a.first-index(* == @a.min)
16:44 PerlJam (or the .[0] as TimToady suggested)
16:44 TimToady well, that's debatable; the latest lenovo carbon puts the tilde and backtick between right Alt and right Ctrl
16:45 TimToady and puts Home/End where the capslock should be
16:45 liztormato Still beats an iPhone keyboard
16:45 TimToady well, except capslock is supposed to be control, of course :)
16:46 TimToady the function keys are a capacitive strip that goes away when I suspend, so no function keys after that
16:46 TimToady but that's a Linux problem, I guess
16:47 TimToady well, okay, I'll grant you most phones don't have a great keyboard
16:48 TimToady otoh my lenovo doesn't have Siri...
16:48 liztormato ;)
16:53 TimToady to the extent that we want Pairs to be like Lisp cons cells, I would note that the .car is rw, so it's not clear what the recent change of .key to readonly is worth
16:53 dalek rakudo-star-daily: 4b28297 | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: today (automated commit)
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/4b28297f39
16:53 dalek rakudo-star-daily: aa211df | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: moar moar
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/aa211df45b
16:53 dalek rakudo-star-daily: 5c0a2e5 | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: moar moar
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/5c0a2e5fdd
16:53 dalek rakudo-star-daily: ef07096 | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: moar moar
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/ef07096055
16:53 dalek rakudo-star-daily: 97fc396 | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: moar moar
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/97fc39664e
16:53 dalek rakudo-star-daily: 213d2ad | coke++ | bin/star.sh:
16:53 dalek rakudo-star-daily: moar moar
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/213d2ad62a
16:53 dalek perl6-roast-data: ef6d8e3 | coke++ | / (6 files):
16:53 dalek perl6-roast-data: today (automated commit)
16:53 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ef6d8e3be9
16:53 dalek perl6-roast-data: 993785d | coke++ | / (6 files):
16:53 dalek perl6-roast-data: today (automated commit)
16:53 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/993785d921
16:53 dalek perl6-roast-data: ee365df | coke++ | / (6 files):
16:53 dalek perl6-roast-data: today (automated commit)
16:53 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ee365df110
16:53 [Coke] FROGGS: ^^ Done
16:53 rindolf joined #perl6
16:54 [Coke] ... crap. I autopushed something that I had meant to condense first.
16:54 [Coke] ah well
16:54 liztormato TimToady: If rw on Pair.key is ok, then we need to plug other holes
16:54 TimToady well, at least dalek is still alive
16:55 denis_boyun_ joined #perl6
16:55 liztormato .pairs on a bag allowed you to mess up things
16:56 TimToady the keys of a hash are not supposed to be containers unless you put a container in 'em as an object
16:57 liztormato Which is what sets/bags etc do
16:57 TimToady and if you do, it should be hashing on the object id, not the value
16:58 liztormato It does. But it needs to keep the original object around too
16:58 liztormato So a bag is internally a hash of pairs
16:58 [Coke] regarding #121943 - if we don't want more than one label for line, then that shouldn't compile.
16:58 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121943
17:01 TimToady sounds to me like we want a different type than Pair for bag entries
17:01 TimToady or a Pair variant that has immutable keys
17:01 liztormato Perhaps
17:01 TimToady more like named args where the key is more fixed
17:02 TimToady but really, it sounds like there's some kind of identity foulup within bags to me
17:02 TimToady and use of Pairs sounds a bit like the X of an XY problem
17:02 liztormato Perhaps. I'm only one of the implementers
17:02 TimToady or is it the Y? :)
17:03 liztormato Hash.pairs should allow changing a key?  And thus change the hash?
17:03 FROGGS[mobile] [Coke]: I think so too
17:03 TimToady a bag should be mapping the .WHICH to the count, not the object itself, in some sense
17:04 liztormato But .keys should give objects, no?
17:04 TimToady yes, but an object's identity doesn't change just because you modify its innards
17:05 TimToady m: my @array; say @array.WHICH; push @array, 42; say @array.WHICH
17:05 camelia rakudo-moar 900f0b: OUTPUT«Array|140391097832784␤Array|140391097832784␤»
17:05 liztormato Good point. Hmm
17:06 TimToady it's that identity that should be mapped in a hash or bag that allows objects in keys
17:06 TimToady and using Pair with a rw key introduces another container, is the problem I think
17:07 liztormato I will think about that over dinner&
17:07 TimToady okay
17:07 TimToady the other way to work it is to make a Cons type that works like a Lisp programmer would expect
17:08 * TimToady needs to go wire up a bathroom fan...
17:08 rindolf joined #perl6
17:09 TimToady and I guess a cons type would be a native one of those, once we have native lvalues of some sort
17:10 TimToady but then => can't be used to cons things, if we enforce readonly key on Pair
17:11 TimToady so I'd rather not go that route if we can specialize Pair when we need to
17:11 liztormato_ joined #perl6
17:11 TimToady maybe a Named type for that, by analogy to named args
17:13 timotimo don't have a good keyboard, but the schwartzian transform seems likeba good match for getting the index of the min/max element
17:15 timotimo iirc max and min have an as parameter
17:27 kurahaupo joined #perl6
17:32 anaeem1 joined #perl6
17:35 timotimo a by param
17:37 timotimo well schwartzian is not quite the right term
17:38 timotimo using .kv, comparing with a &by and mapping the value away if it is not needed
17:39 timotimo i am accumulating frustration
17:39 timotimo and my favorite irc channel is so quiet
17:40 colomon o/
17:43 Adriaaaan joined #perl6
17:46 anaeem1 joined #perl6
17:46 Rotwang joined #perl6
17:47 slava joined #perl6
17:48 slava-wr0k hi all
17:48 slava-wr0k jnthn: moarvm is so awesome :D
17:48 [Coke] slava-wr0k: hio
17:48 slava-wr0k hi, [Coke]
17:49 slava-wr0k I am a bit confused with using or in regex between two token, I have a token 'name' and a token 'ipv4', is the regex <name> | <ipv4> correct? also, where do I read about the differences between rules, tokens, regexes. I am looking at S05, but can't find the section
17:52 vendethiel slava-wr0k: see http://faq.perl6.org/
17:52 vendethiel "What's the difference between token and rule ?"
17:53 slava-wr0k ty
17:53 FROGGS / <name> | <ipv4> / is a valid regex, in case name and ipv4 also also regex rules
17:58 vendethiel (faq should probably have clickable headers)
17:59 slava-wr0k FROGGS: any idea if I can do that inside of another token?
17:59 slava-wr0k as in: token host { <name> | <ipv4> }
17:59 vendethiel you can
18:00 FROGGS yes, you can do: token ipv4 { \d+ % '.' }
18:01 FROGGS more like: token ipv4 { [\d+]+ % '.' }
18:03 timotimo or proto token host and then token host:ipv4 and token host:name
18:03 FROGGS true
18:03 timotimo depends on your use case
18:04 slava-wr0k timotimo: can multiple proto's be defined in a single grammar?
18:04 FROGGS then you could just pop an ipv6 in later, and it will parse :o)
18:04 guru joined #perl6
18:04 FROGGS slava-wr0k: one proto per short-name
18:04 slava-wr0k short name is the one before :sym?
18:04 raiph joined #perl6
18:04 FROGGS yes
18:04 slava-wr0k cool, ty
18:05 slava-wr0k going to play with this more :)
18:05 FROGGS have fun :o)
18:05 slava-wr0k so, it seems that moarvm supports more features than rakudo/parrot
18:05 timotimo yes
18:05 FROGGS yeah, that is right
18:06 timotimo jvm has concurrency, which parrot lacks
18:06 slava-wr0k moarvm appears to have some concurrency as well
18:06 timotimo moar has the awesome unicode database, which jvm lacks
18:06 slava-wr0k yeah
18:06 timotimo that is correct
18:06 timotimo it may be less stable
18:07 timotimo because we did not have the chance to test concurrency extensively with moar
18:07 slava-wr0k so it seems to me that moarvm is going to be the "system scripting" oriented vm
18:07 timotimo but on jvm people have been testing and using stuff for years and years
18:07 timotimo yes, since it has such good start up time and memory usage
18:08 timotimo and it is going to have a jit compiler of its own this year
18:09 timotimo this year, a lot of performance improvements have happened for all backends but most work is visible in moar
18:11 colomon vendethiel: there's a FAQ for "What's the difference between token and rule ?" now?  That's awesome.  I've been at this, what, six, seven years now and I still routinely get them mixed up.
18:13 vendethiel hehe :)
18:15 moritz http://faq.perl6.org/#token
18:19 slava-wr0k assertions are awesome :D
18:19 anaeem1__ joined #perl6
18:20 * jnthn gets home safely from Poland/Czech trip
18:21 jnthn slava-wr0k: Glad you like it. There's plenty more awesome to come :)
18:25 timotimo oh jnthn
18:26 timotimo can you have a look at my gtk-simple example?
18:26 timotimo it shows weird behavior with supplies
18:26 jnthn timotimo: I know about that. It's because closure cloning doesn't work out too well with nativecall yet.
18:26 timotimo clicking the second button causes the first buttons supply to more
18:27 timotimo ah!
18:27 timotimo how can we work around that?
18:27 jnthn 'cus it caches the call stuff too aggerssively
18:27 jnthn Well, we should just fix it...
18:27 timotimo never cache ever :)
18:27 jnthn It turns out that actually makes things worse.
18:27 itz joined #perl6
18:27 jnthn For our particular case, anyway.
18:28 jnthn 'cus then the closure gets GC'd by the time C calls it, iirc
18:29 btyler speaking of the poland/Czech trip, does anyone know if there are videos available from either workshop? I know someone mentioned that plpw videos would be up soon (tm), but I'm not sure where to keep an eye out for them
18:29 timotimo i did not know it was something we could just fix
18:30 timotimo it sounded like a terribly tricky guts issue
18:30 timotimo filip sergot on twitter should be a good source on that info
18:30 sqirrel joined #perl6
18:31 timotimo and i will point out the links on the p6weekly
18:33 itz maybe not new but https://www.youtube.com/channel/UCAsxQEJp-ov1qEDNjvLfjCA
18:34 btyler great, thanks timo. also, I saw you mention in the logs that p6weekly doesn't have the traffic you'd like -- I think it helps disproportionately to what the raw traffic numbers might show, just in terms of there being an easy place to link to for talking about p6 progress that isn't an irclog
18:35 zakharyas joined #perl6
18:37 btyler itz: oh, cool! I hadn't seen the nlpw ones.
18:37 timotimo thankbyou btyler
18:40 timotimo only do few videos up so far?
18:40 timotimo like, five?
18:41 timotimo is that being uploaded as we speak?
18:41 FROGGS wow, that fails like awesome: perl6-j t/spec/S03-operators/set.rakudo.jvm - java.lang.VerifyError: Expecting a stack map frame
18:41 FROGGS and then like a gazillien lines of dumplings
18:42 spider-mario joined #perl6
18:43 timotimo yikes
18:45 jnthn FROGGS: Just realized...release day...you're probably blocking on me cutting the MoarVM monthly, I guess?
18:46 FROGGS jnthn: sort of... I am still testing/fixing and fudging, besides collection more changelog entries
18:46 FROGGS collecting*
18:47 jnthn OK. Will work on the Moar release.
18:47 FROGGS thank you :o)
18:48 FROGGS hmmm, a test from S05-mass also explodes on jvm...
18:48 FROGGS Location:
18:48 FROGGS 190C2A58A5E8D736666709D2B3E28BB221E03BEC.qb_1$f3(I[Ljava/lang/Object;)I @59766: nop
18:49 jnthn ugh
18:49 FROGGS yeah...
18:49 shalom1024 joined #perl6
18:49 FROGGS I'm trying to golf that down now
18:54 timotimo jnthn, wouldba nativecall change be enough to fix gtk-simple with closure? it seems like no to me
18:56 dalek roast: efa39c5 | (Tobias Leich)++ | S02-types/ (6 files):
18:56 dalek roast: explicitly sort otherwise unordered results
18:56 dalek roast: review: https://github.com/perl6/roast/commit/efa39c5182
18:59 fhelmberger joined #perl6
18:59 jnthn timotimo: Depends; one path we could take to fixing it just needs MoarVM changes
19:02 FROGGS damn, the jvm bug is a heisenbug :/
19:08 ivanshmakov joined #perl6
19:08 FROGGS hmmm, it does not seem to fail on [Coke]++'s box
19:10 dwarring joined #perl6
19:10 ivanshmakov joined #perl6
19:11 jeffreykegler joined #perl6
19:13 dalek faq: 4420810 | thundergnat++ | answers.md:
19:13 dalek faq: Updated empty type gist example to current
19:13 dalek faq: review: https://github.com/perl6/faq/commit/44208100c2
19:16 arnsholt joined #perl6
19:16 timotimo but youbalreadybcut the release
19:16 timotimo our rather tagged it
19:16 sjn joined #perl6
19:16 timotimo or did you only change the version file?
19:18 FROGGS timotimo: not yet tagged as it seems
19:20 FROGGS I have no idea what to do about that jvm bug :/
19:20 timotimo maybe it can happen :)
19:22 jnthn FROGGS: Different JVM version on [Coke]'s box, maybe?
19:22 jnthn FROGGS: http://www.moarvm.org/releases/MoarVM-2014.05.tar.gz
19:22 FROGGS that is likely
19:24 PerlJam um ...does Grammar::Debugger need updating for some recentish change?  I now get "Cannot modify an immutable Bool" when I try to use it.
19:24 FROGGS thanks for the tarball, it builds on my box, which means that the MANIFEST is correct
19:26 FROGGS PerlJam: do you get a line number? perhaps with --ll-exception?
19:27 jeffreykegler Hi!  I have an interest in the history of parsing, and wanted to ask 3 questions about the history of Perl parsing.
19:27 PerlJam https://gist.github.com/perlpilot/8e1cb7bdf337df604ada
19:27 jeffreykegler First, to my knowledge, Perl 5 was the most elaborate and ambitious use of LALR parsing every made.  I consider it the high point of the Age of
19:27 jeffreykegler Right Parsing.  Does anyone know of someone taking LALR even further?
19:28 jeffreykegler (This would make being the most ambitious implementer of LALR ever is another in the long list of Larry's achievements, and one that's not unimportant.)
19:28 jeffreykegler Second, I read into the choice *not* to use LALR for Perl 6, a judgement about the merits of LALR, but I've never come across anything in the record about this decision.
19:29 jeffreykegler Third, assumming that my reading, that LALR was given up on, is correct, which of its problems played the biggest role?
19:30 jeffreykegler In particular, what role did LALR's horrific development-time and runtime error reporting play?
19:30 jeffreykegler And what role did observations about the Perl 5 life-cycle and maintenance cycle play?
19:30 FROGGS PerlJam: I think that happens here:
19:30 FROGGS j: my class DebuggedGrammarHOW is Mu is Metamodel::GrammarHOW { has $!auto-continue = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test()
19:30 camelia rakudo-jvm 900f0b: OUTPUT«Cannot modify an immutable value␤  in method test at /tmp/twJvNkKvoU:1␤  in block  at /tmp/twJvNkKvoU:1␤␤»
19:31 jeffreykegler Thanks!
19:31 FROGGS j: my class DebuggedGrammarHOW is Mu is Metamodel::GrammarHOW { has $!auto-continue is rw = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test()
19:31 camelia rakudo-jvm 900f0b: OUTPUT«useless use of 'is rw' on $!auto-continue␤Cannot modify an immutable value␤  in method test at /tmp/BZiS6H_3Qo:1␤  in block  at /tmp/BZiS6H_3Qo:1␤␤»
19:32 FROGGS ohh
19:32 FROGGS j: my class DebuggedGrammarHOW { has $!auto-continue = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test()
19:32 camelia rakudo-jvm 900f0b: ( no output )
19:33 cognominal jeffreykegler:  As far as parsing is involved, Perl 5 is not complex. The dragons are in the hand made lexer.
19:37 vendethiel https://github.com/perl6/doc/pull/18
19:38 vendethiel <= should I just merge these kind of PRs ? or do you guys prefer I don't touch ?
19:38 dalek doc: 96d78a4 | (Steve Mynott)++ | lib/Str.pod:
19:38 dalek doc: add missing double quote
19:38 dalek doc: review: https://github.com/perl6/doc/commit/96d78a4b38
19:38 dalek doc: 5723876 | (Konrad Borowski)++ | lib/Str.pod:
19:38 dalek doc: Merge pull request #18 from stmuk/master
19:38 dalek doc:
19:38 dalek doc: add missing double quote to pod example
19:38 dalek doc: review: https://github.com/perl6/doc/commit/5723876715
19:39 jeffreykegler cognomial: my claim the the Perl 5 parser is a complex LALR parser is relative to other LALR parsers.  If you look at the grammar and compare it to other attempts to use LALR, I think you'll characterize it as complex.
19:39 xfix vendethiel, well, forgiveness > permission.
19:39 vendethiel meh
19:39 jeffreykegler cognomial: Particularly if you've had the experience of trying to get even a simple grammar working with yacc, you'll find the Perl 5 LALR grammar stunningly ambitious.
19:40 vendethiel rules have meaning
19:40 xfix vendethiel, well, it was a simple syntax error.
19:40 vendethiel I know it was
19:40 vendethiel but I know some people would rather not see "non-core" contributors merge PR - I can comprehend that
19:40 FROGGS vendethiel: if you can judge on your own that the PR is all right, the merge :o)
19:41 FROGGS then*
19:41 vendethiel alrighty
19:41 FROGGS if you are unsure in either way, then don't touch it
19:41 FROGGS m: sub foo(Int:U $x) { }; foo(42)
19:41 camelia rakudo-moar 900f0b: OUTPUT«Parameter '$x' requires a type object, but an object instance was passed␤  in sub foo at /tmp/xFpunIZkPK:1␤  in block  at /tmp/xFpunIZkPK:1␤␤»
19:41 FROGGS j: sub foo(Int:U $x) { }; foo(42)ß
19:41 camelia rakudo-jvm 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/cRBkx2SrkZâ�¤Two terms in a rowâ�¤at /tmp/cRBkx2SrkZ:1â�¤------> [32msub foo(Int:U $x) { }; foo(42)[33mâ��[31mß[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        inf…»
19:41 FROGGS j: sub foo(Int:U $x) { }; foo(42)
19:42 camelia rakudo-jvm 900f0b: ( no output )
19:42 FROGGS I thought we fixed that for jvm?
19:42 xfix The changed part of documentation doesn't say anything about syntax error being intentional. Therefore, I think that could be quickly merged.
19:42 xfix Also, there is no problem with merging pull requests, no matter how much you contribute to Perl 6.
19:43 xfix If it looks fine, merge.
19:43 itz why is the modifier :g at the end of the Str.subst whereas the similar reg exp modifiers at the start?
19:43 xfix itz, because `:g` is symbol literal.
19:44 jnthn itz: In subst it's just a regular argument
19:44 jnthn itz: You can put it earlier if you like
19:44 xfix Also.
19:44 xfix rn: say "abcb".subst(:g, "b", "d")
19:44 camelia rakudo-{parrot,jvm,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«adcd␤»
19:44 xfix : means keyword parameter here, so it doesn't matter where `:g` is.
19:44 itz oh I see .. I just had a typo
19:45 itz ty
19:45 xfix s/// is part of syntax, `:g` is keyword parameter (which means the same thing as g => True).
19:46 molaf joined #perl6
19:47 FROGGS lol, QAST::ParamTypeCheck is NYI for jvm
19:47 cognominal jeffreykegler, certainly. Perl 6 syntax needed a new scheme to be parsed.  The engine is a mix of recursive descent parser and NFAs. It is written in Perl 6.  Perl 6 contains integrated sublanguages (called slangs) that are tightly weaved together. That mean the concept of separating lexing and parsing was not much relevant anymore. So the designer have picked known technology, adapted them the Perl 6 context, but created a unified sy
19:47 cognominal ntax.
19:47 xfix The repositories in perl6 don't have to be perfectly clean, with exception for nqp (for which there is a separate group). There is a reason why it's easy to get perl6 repositories access.
19:47 xfix Even if you do a small mistake, it can be easily reverted.
19:48 FROGGS because it is community ware
19:48 cognominal As a mere user, I am amazed by the power of the specification, and its implementation.
19:49 xfix Consider perl6 repositories to be a wiki of sorts. It's very easy to get write access to them.
19:49 xfix This is intentional.
19:50 Igrsrolqak joined #perl6
19:50 dalek roast: 7745496 | (Tobias Leich)++ | S17-supply/interval.t:
19:50 dalek roast: fudge test that needs working param type checks
19:50 dalek roast: review: https://github.com/perl6/roast/commit/77454964f2
19:51 Sqirrel joined #perl6
19:52 xfix Of course, it's nice to discuss with the community for bigger changes.
19:53 dalek roast: d8ba4a8 | (Tobias Leich)++ | S17-supply/m (2 files):
19:53 dalek roast: fudge test that needs working param type checks
19:53 dalek roast: review: https://github.com/perl6/roast/commit/d8ba4a87d2
19:53 denis_boyun joined #perl6
19:53 dalek roast: c37a304 | (Tobias Leich)++ | S17-supply/minmax.t:
19:53 dalek roast: fudge test that needs working param type checks
19:53 dalek roast: review: https://github.com/perl6/roast/commit/c37a3041f1
19:54 jeffreykegler joined #perl6
19:55 Igrsrolqak left #perl6
19:55 jeffreykegler congnomial: Thanks.  I have looked at the Perl 6 parser.  My questions were more directed at discovering *why* LALR was rejected in favor of left parsing.
19:56 jeffreykegler The record does talk about how cool the new scheme is, and maybe that is the only reason ...
19:57 cognominal jeffreykegler,  although the dynamic character of Perl 6 makes a C based compiler imposibble.
19:57 jeffreykegler But I wonder if there also wasn't a realization that LALR simply could not be taken another step further.
19:57 xfix jeffreykegler, it's harder to make good error messages with LALR for example.
19:57 xfix Also, LALR doesn't work that well with dynamically changing grammars.
19:58 Vendethiel- joined #perl6
19:58 jeffreykegler And much of the reason that the Perl 5 lexer is a mess is that new stuff could not be added to the LALR parser, so the lexer has to do a lot of mini-parses locally.
19:58 xfix rn: sub infix:<!> { $^a + $^b * 2 }; say 3 ! 4;
19:58 itz Invalid opcode executed (corrupt bytecode stream?) opcode 11776
19:58 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0m��Negation metaoperator not followed by valid infix at /tmp/tmpfile line 1:�------> [32msub infix:<!> { $^a + $^b * 2 }; say 3 ![33m�[31m 4;[0m��Parse failed��»
19:58 camelia ..rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Negation metaoperator not followed by valid infixâ�¤at /tmp/tmpfile:1â�¤------> [32msub infix:<!> { $^a + $^b * 2 }; say 3 ![33mâ��[31m 4;[0mâ�¤    expecting any of:â�¤   …»
19:58 xfix rn: sub infix:<!!> { $^a + $^b * 2 }; say 3 !! 4;
19:58 camelia rakudo-{parrot,jvm,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«11␤»
19:58 xfix Good luck parsing something like this with LALR.
20:01 xfix Recompiling entire grammar just to add new operator is not an option, by the way.
20:02 jeffreykegler Dynamic extension of the grammar could clearly be another reason for the switch -- it's tricky for anything but a left parser.
20:03 jeffreykegler My interest is historic but also practical --
20:04 jeffreykegler there are still folks out there recommending LALR for certain purposes.
20:04 telex joined #perl6
20:05 jeffreykegler LALR was totally dominant in the literature for perhaps two decades, to the degree that if you took a parsing course, it was the only thing you were taught at one point.
20:06 jeffreykegler Now it's reached the point where most new language designers don't seem to even consider it.\
20:07 jeffreykegler But for those who've not caught up, and think that serious parsing == LALR parsing, as was thought a few decades ago ...
20:07 [Coke] FROGGS: java version "1.7.0_55"
20:07 [Coke] Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
20:07 [Coke] Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
20:08 dalek roast: 1c6b396 | (Tobias Leich)++ | S17-supply/ (2 files):
20:08 dalek roast: mark flapping tests as todo
20:08 dalek roast: review: https://github.com/perl6/roast/commit/1c6b396523
20:08 cognominal jeffreykegler, LALR is inflexible but very fast so that was a good option when processors were slow.
20:08 jeffreykegler I like to point out the trend among LALR's greatest practitioners, Larry, I believe, being one of them, based on the Perl 5 parser.
20:09 FROGGS java -version
20:09 FROGGS java version "1.7.0_55"
20:09 FROGGS OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1)
20:09 FROGGS OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
20:09 FROGGS [Coke]: so, I am as dumb as before :o)
20:09 jeffreykegler The other examples I use at the GCC compilers, which switched away from LALR about 10 years ago.
20:10 jeffreykegler And Ken Thompson, whose golang is designed to be left-parseable (though some go compilers do use LALR, I hear.)
20:10 slava-wr0k what am I doing wrong? http://pastebin.com/RRzr2Jfp
20:10 slava-wr0k if I match against ipv4, the grammar matches, if I use host, it doesn't
20:12 jeffreykegler So the turn from LALR is not just among a discontented faction, but has been joined by LALR's most prominent and successful users ...
20:12 jeffreykegler Larry being one of them.
20:14 jnthn slava-wr0k: Not sure it's a problem here, but TOP looks like it wants to be a token here
20:15 jeffreykegler cognomial: yes, and arguments about speed did play a big role in making LALR dominant over past decades, but ...
20:15 jeffreykegler note that the GCC compiler people care a lot about speed, and greater speed ...
20:16 jeffreykegler is actually one of the central motives behind goland.
20:16 slava-wr0k jnthn: changing TOP to token doesn't change the work/no-work status :(
20:16 jeffreykegler * goland -> golang
20:16 cognominal jeffreykegler, in the functional world, they seem to like parsers based on combinators
20:17 jeffreykegler Yes, I've noticed.
20:17 jnthn slava-wr0k: I suspected it wouldn't. :( Did you try it under the debugger?
20:17 slava-wr0k not yet :P
20:17 jeffreykegler You could in a way call the Perl 6 strategy a combinator strategy, because it does try to mix operator precedence subparses ...
20:17 jeffreykegler with left parsing.
20:18 slava-wr0k jnthn: looks like it's an issue calling the ipv4 token from host:sym<ipv4>
20:18 cognominal jeffreykegler, I don't think combinators  would pan out for Perl6 where context is everywhere.
20:18 FROGGS slava-wr0k: I think the <host> token dosnt get called
20:19 dalek perl6-roast-data: 74fcfff | coke++ | / (6 files):
20:19 dalek perl6-roast-data: today (automated commit)
20:19 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/74fcfffcd0
20:19 jeffreykegler Frankly, parsing is a good example of a problem where the functional approach just does not work.
20:19 FROGGS slava-wr0k: because when you move ipv4's logic into it, it still does not work
20:19 jeffreykegler I am not saying there's not a lot to be gained from more use of functional programming ...
20:21 jeffreykegler But parsing is a great example of a problem that looks like it should decompose in a functional way, but turns out to require context frequently.
20:21 slava-wr0k this is weird, but the host token does get called: http://pastebin.com/vpkU1xLK
20:21 cognominal jeffreykegler, depends on what you parse.
20:22 Vendethiel- "functional" doesn't mean "without context" :)
20:22 btyler joined #perl6
20:23 jeffreykegler Vendethiel: As I understand it, much of the promise of the functional approach lies in optimizations which are not possible in methods which depend on context.
20:24 Vendethiel- jeffreykegler: no, not really. you're just asked to explicitly carry the context
20:24 jeffreykegler Vendethiel: which means you know which methods do not use context and can take advantage of that.
20:25 cognominal eventually you get all the context in a big blob  :(
20:27 jeffreykegler The word functional IIRC sometimes means "purely functional" and sometimes means "heavily driven by the functional point of view".
20:28 FROGGS slava-wr0k: put a {} after the capture in token octet
20:28 Vendethiel- well, what does "functional" mean, then :) ?
20:29 FROGGS slava-wr0k: this helps rakudo to compute the match object, so that $0 is actually filled
20:30 FROGGS (and it terminates LTM)
20:30 slava-wr0k FROGGS: you mean <?{ 0 <= $0 <= 255 }> {} ?
20:30 jeffreykegler Vendethiel: re http://irclog.perlgeek.de/perl6/2014-05-22#i_8762115 -- that may be the last word :-)
20:31 FROGGS slava-wr0k: no, between the (...) and <?...
20:31 Vendethiel- jeffreykegler: why should that be ?
20:31 jeffreykegler Oh, just saying that it'
20:32 jeffreykegler s true, indeed that the word functional means different things depending on who is using it and in what context.
20:32 Vendethiel- well, referential transparency is probably a good start
20:33 Vendethiel- but you can have referential transparency with context
20:34 Vendethiel- (see Reader, Writer, and obviously State)
20:35 slava-wr0k FROGGS: yup, that was it :D thank you
20:36 FROGGS \o/
20:36 slava-wr0k FROGGS: is this considered a bug?
20:36 jeffreykegler My experience has been that in dealing with the parsing problem, you wind up with a lot of important things stuffed into context.
20:36 FROGGS yes, {} should not be needed to get a proper match object
20:36 slava-wr0k btw, this is on moarvm (dunno if it matters at this point or not)
20:36 FROGGS but that one is not easy to fix sadly
20:36 jnthn Not easy to fix?
20:37 FROGGS this happens on all backends as far as I know
20:37 slava-wr0k I'll just note it in my code, not a bigie IMO, but wondering if it's something that is already filed
20:37 jnthn In NQP we may hesitate for performance reasons, given many assertions needn't it.
20:37 jeffreykegler and to the point where if you trying to think within a functional paradigm, there are diminishing returns.
20:37 jnthn In Rakudo we can fix it
20:37 FROGGS jnthn: ohh, interesting
20:37 jnthn It should be a tweak in the appropriate action method I think
20:37 jnthn Same way we make it work for {...}
20:37 jnthn Just emit the thing to update $/ first.
20:37 FROGGS hmmmm
20:38 jnthn I'd look at it, but gotta do some emergency talk writing.
20:38 * jnthn hopes this is the last talk he'll have to write until he does YAPC::EU ones, so he can dig back into coding soon :)
20:39 FROGGS jnthn: method codeblock looks good though
20:40 FROGGS jnthn: that would be a long break of writing talks, no? :o)
20:41 Vendethiel- masak: WRT line-based stuff
20:41 Vendethiel- do you think it's better to actually have a first pass for indented stuff, then a second one for actual content parsing ?
20:43 guru joined #perl6
20:43 dalek nqp: d4395c6 | (Tobias Leich)++ | VERSION:
20:43 dalek nqp: bump VERSION to 2014.05
20:43 dalek nqp: review: https://github.com/perl6/nqp/commit/d4395c65db
20:44 timotimo there is already a two pass parsing module for python-like input
20:44 jnthn FROGGS: Couple of months :P
20:44 spintronic joined #perl6
20:44 jnthn FROGGS: I need to figure out what to talk about at YAPC::EU yet... :)
20:44 FROGGS jnthn: yeah, that was my feeling also *g*
20:44 FROGGS depends on what someone can implement until then :P
20:45 slava-wr0k jnthn: automatic parallelism of junctions?
20:45 timotimo knowing you, it will be about some exciting feature that was missing so far
20:45 timotimo and suddenly it's there
20:45 slava-wr0k actually, jnthn can moarvm do native calls to C libs yet?
20:45 timotimo no pressure :)
20:46 timotimo nativecall is implemented already
20:47 timotimo for hyper operators we reallybwant compact arrays of known dimensions and use simd instructions in the vm
20:47 * Vendethiel- is afraid he'll have to paste masak++'s text::indented :(
20:47 dalek nqp: 8af9902 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
20:47 dalek nqp: bump MoarVM revision to 2014.05
20:47 dalek nqp: review: https://github.com/perl6/nqp/commit/8af9902028
20:47 timotimo rather than threading out to multiple interpreter threads
20:48 timotimo except for things that we can not turn into simple simd operations like >>.Str or something
20:48 jnthn slava-wr0k: Yeah, nativecall works as well as on any other backend, afaik
20:48 slava-wr0k jnthn: I owe you many beers :)
20:48 timotimo all backends havebthe closure cloning problem?
20:49 jnthn slava-wr0k: And is probably faster then on Parrot, though that's based on knowing how the two work rather than measurement... :)
20:49 Vendethiel- "undeclared routine : does". welp
20:49 jnthn timotimo: I strongly suspect so.
20:49 Vendethiel- oh, I need also
20:49 Vendethiel- m: class A {}; class B; also does A;
20:49 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ZrtNaYQFwjâ�¤Too late for semicolon form of class definitionâ�¤at /tmp/ZrtNaYQFwj:1â�¤------> [32mclass A {}; class B; [33mâ��[31malso does A;[0mâ�¤    expecting any of:â�¤        statement list…»
20:49 Vendethiel- m: class B; also does Positional;
20:49 camelia rakudo-moar 900f0b: ( no output )
20:50 Vendethiel- m: grammarB; also does Positional;
20:50 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/5v1jwlWXeo�Cannot call 'trait_mod:<does>'; none of these signatures match:�:(Mu:U $doee, Mu:U $role)�at /tmp/5v1jwlWXeo:1�------> �»
20:51 Vendethiel- "Text::Indented is not composable"
20:52 jnthn Vendethiel-: Did you does a class?
20:52 Vendethiel- no, a grammar
20:52 Vendethiel- but the idea is the same :-)
20:52 jnthn "is" for inheritance...
20:53 Vendethiel- well, I'd have liked to be able to compose grammar, but I guess is does the job too :)
20:54 jnthn Well, you can always put rules in a role
20:54 jnthn And compose them into some other grammar
20:54 jnthn We do that in the Perl 6 grammar
20:54 Vendethiel- yeah, definitely.
20:58 Vendethiel- m: https://gist.github.com/Nami-Doc/8856f534457e7d86de16
20:58 camelia rakudo-moar 900f0b: OUTPUT«gist not found»
20:58 Vendethiel- why.
20:58 Vendethiel- m: https://gist.githubusercontent.com/Nami-Doc/8856f534457e7d86de16/raw/422b543388bec4b29b90c9537b724e06441afc6c/gistfile1.txt
20:58 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ty1Vjogn8Zâ�¤Two terms in a rowâ�¤at /tmp/Ty1Vjogn8Z:1â�¤------> [32mhttps[33mâ��[31m://gist.githubusercontent.com/Nami-Doc/8[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfix…»
20:58 Vendethiel- m: https://gist.github.com/Nami-Doc/8856f534457e7d86de16 #PLS
20:58 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/mnHTiitCuqâ�¤Two terms in a rowâ�¤at /tmp/mnHTiitCuq:1â�¤------> [32mhttps[33mâ��[31m://gist.github.com/Nami-Doc/8856f534457e[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfix…»
21:00 Vendethiel- i don't like you either, camelia
21:02 SevenWolf joined #perl6
21:04 xenoterracide_ joined #perl6
21:05 Vendethiel- duhu, what ? I'm getting strange stuff when printing a Match : http://i.imgur.com/L4mQdZJ.png
21:05 Vendethiel- how, is that "those" quote ?
21:05 Vendethiel- m: say "a" ~~ (my regex { 'a' })
21:05 camelia rakudo-moar 900f0b: OUTPUT«「a」␤␤»
21:06 Sqirrel joined #perl6
21:10 FROGGS Vendethiel-: these are meant top be corner quotes... but, well, you font... :/
21:10 FROGGS your*
21:10 Vendethiel- FROGGS: cmd.exe*
21:10 FROGGS I've seen that
21:11 FROGGS we have code that decide about emitting color codes or not... perhaps we should do the same for corner quotes
21:11 FROGGS for everyone to test: http://froggs.de/perl6/nqp-2014.05.tar.gz
21:12 Vendethiel- FROGGS: cmd.exe supports colors
21:13 jnthn Corner brackets for out for me, but I'm running ConEmu...
21:13 FROGGS Vendethiel-: you've seen colored error messages from rakudo?
21:13 Vendethiel- FROGGS: no
21:13 Vendethiel- but I've seem some from other stuff :)
21:13 jnthn FROGGS: ConEmu can certainly re-interpret ANSI color codes...
21:13 jnthn FROGGS: Which is how I get them in errors
21:13 FROGGS yeah, I had colors once after I installed git or so
21:14 jnthn Git cheats though :P
21:14 Vendethiel- why ?
21:14 jnthn It's actually invoking sh at some points along the way
21:14 Vendethiel- haha
21:14 jnthn I figure then some wrapper is doing a mapping along the way
21:14 Vendethiel- m: class Node { ...}; Node.new;
21:14 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/z6PIZiow3oâ�¤The following packages were stubbed but not defined:â�¤    Nodeâ�¤at /tmp/z6PIZiow3o:1â�¤------> [32mclass Node { ...}; Node.new;[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤      â€¦Â»
21:15 Vendethiel- m: class Node { ...}; class NotNode is Node {}; NotNode.new;
21:15 camelia rakudo-moar 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GKkhxr8V5Zâ�¤The following packages were stubbed but not defined:â�¤    Nodeâ�¤at /tmp/GKkhxr8V5Z:1â�¤------> [32m; class NotNode is Node {}; NotNode.new;[33mâ��[31m<EOL>[0mâ�¤    expecting any …»
21:16 Sqirrel joined #perl6
21:17 dayangkun joined #perl6
21:20 dalek rakudo/nom: 8bda08e | (Tobias Leich)++ | docs/ChangeLog:
21:20 dalek rakudo/nom: add two more changelog entries
21:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8bda08e4ed
21:20 FROGGS >>> last call for rakudo changelog entries <<<
21:24 Vendethiel- aaaah I've got no idea what I'm doing >_>
21:24 FROGGS here is a list of commit titles covered by the release: https://gist.github.com/FROGGS/7c32b757c1472578e733
21:31 anant joined #perl6
21:32 Vendethiel- m: say (Array[Int].new(5)).list.perl
21:32 camelia rakudo-moar 900f0b: OUTPUT«Array[Int].new(5)␤»
21:36 anant r: for ^^^^^^^^^^^3 X ^^^^^^^^^^^^2 -> $a, $b { say $a, $b }
21:37 camelia rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«00␤01␤10␤11␤20␤21␤»
21:37 anant Is this expected behavior?
21:38 flussence r: say 1..3..3
21:38 camelia rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Operators '..' and '..' are non-associative and require parenthesisâ�¤at /tmp/tmpfile:1â�¤------> [32msay 1..3.[33mâ��[31m.3[0mâ�¤    expecting any of:â�¤        postfix…»
21:38 FROGGS m: say ^^^^^^^^^^^3, ^^^^^^^^^^^^2
21:38 camelia rakudo-moar 900f0b: OUTPUT«0..^30..^2␤»
21:38 flussence r: say 1..(3..3); say (1..3)..3;
21:38 camelia rakudo-moar 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges␤  in method new at src/gen/m-CORE.setting:7387␤  in sub infix:<..> at src/gen/m-CORE.setting:7562␤  in block  at /tmp/tmpfile:1␤␤»
21:38 camelia ..rakudo-jvm 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges␤  in method new at gen/jvm/CORE.setting:7328␤  in sub infix:<..> at gen/jvm/CORE.setting:7503␤  in block  at /tmp/tmpfile:1␤␤»
21:38 camelia ..rakudo-parrot 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges␤  in method new at gen/parrot/CORE.setting:7334␤  in method new at gen/parrot/CORE.setting:7326␤  in sub infix:<..> at gen/parrot/CORE.setting:7509␤  in block  at /tmp/tmpfile:1␤␤»
21:38 FROGGS anant: looks like, yes
21:39 anant FROGGS: oh!
21:40 flussence m: say ^4 XZXZXZXZXZXZXZXZ ^3; #reminds me of this
21:40 camelia rakudo-moar 900f0b: OUTPUT«0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 3 0 3 1 3 2␤»
21:41 anant I'm surprised this is allowed
21:42 timotimo why would we forbid that?
21:42 PerlJam m: my $a = ^3; say ^$a;
21:42 camelia rakudo-moar 900f0b: OUTPUT«0..^3␤»
21:43 timotimo jnthn: the last argument to g_signal_connect_wd is the user data; so maybe i could have a single supply that connects to all buttons and i return supplies from "clicked" that .grep for the right user data in the shared supply?
21:44 anant timotimo: I thought a meta-operator only works on an ordinary operator, not on another meta-operator (reading http://perl6advent.wordpress.com/2010/12/06/the-x-and-z-metaoperators/)
21:44 jnthn timotimo: That is also a possibility
21:45 timotimo anant: a meta-operator is an ordinary operator :)
21:45 jnthn timotimo: Though might be better just to fix the closure stuff, no...
21:45 timotimo jnthn: have no idea where to look for that.
21:45 jnthn nativecall.c :P
21:45 jnthn Especially the callback caching stuff
21:45 anant timotimo: oh!
21:46 timotimo actually. the second-to-last argument is the user data, which is OpaquePointer AKA null pointer each time we use it so far
21:46 dalek rakudo/nom: 5ad1eaf | (Tobias Leich)++ | docs/announce/2014.05.md:
21:46 dalek rakudo/nom: added announcement for 2014.05
21:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5ad1eaf79d
21:46 FROGGS please review -------^
21:46 timotimo anant: wouldn't be any use if a meta'd operator wasn't something you could metaop again
21:46 timotimo and if you can metaop a metaop'd op, you have to be able to metaop a metaop'd metaop'd op
21:47 anant timotimo: ah okay
21:47 FROGGS hehe
21:48 timotimo ah, so the callback cache currently only inspects the cuid of something
21:48 jnthn timotimo: ~Right.
21:49 BenGoldberg joined #perl6
21:49 dalek roast: 3d9a9dd | (Tobias Leich)++ | S03-smartmatch/signature-signature.t:
21:49 dalek roast: temporary comment out single test
21:49 dalek roast: review: https://github.com/perl6/roast/commit/3d9a9dd410
21:49 timotimo which op do i look at to figure out what closure cloning does? takeclosure?
21:51 jnthn yeah
21:51 jnthn But really it's just making a different MVMCode
21:51 jnthn That share the underlying MVMStaticFrame
21:52 timotimo not quite sure how to disambiguate in this case.
21:52 timotimo i can hardly note the address of the MVMCode
21:52 jnthn Well, the cache'll need changing I guess...
21:52 jnthn Right
21:52 timotimo looking at MVMCode.c right now
21:52 timotimo and frame.c
21:52 jnthn Well, we could have cuid mapped not to one cache entry
21:52 jnthn But instead to a list of them
21:52 jnthn So a cache lookup seeks cuid match AND then hunts for matching code object
21:52 timotimo the cache will be something the GC has to know about, then
21:53 jnthn I think it maybe already does...
21:53 jnthn It must, I guess
21:53 timotimo and at that point the address could be compared?
21:53 jnthn 'cus it keeps a code object reference...
21:53 jnthn Right, 'cus it'd be up to date
21:53 timotimo that'll also make sure callbacks that go to C land don't get gc'd
21:53 jnthn indeed
21:53 jnthn That's good and bad :)
21:53 jnthn Good for Gtk, anyways. ;)
21:53 timotimo yes, ownership handling is tough
21:54 timotimo i suppose nativecall will want an "unregister callback" op or something
21:54 timotimo and you'll have to carry a reference to it around
21:54 timotimo that seems ugly ugly ugly
21:54 dalek rakudo/nom: d48629d | (Tobias Leich)++ | docs/release_guide.pod:
21:54 dalek rakudo/nom: update release dates
21:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d48629d4be
21:54 timotimo but what C does is completely invisible to us
21:54 jnthn Welcome to C :P
21:55 jnthn Simple language. So simple it doesn't come with a memory model. :P
21:56 dalek rakudo/nom: 8481d90 | (Tobias Leich)++ | tools/build/NQP_REVISION:
21:56 dalek rakudo/nom: [release] bump NQP revision
21:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8481d90e29
21:57 timotimo jnthn: got some code i could cargocult for a hash of lists?
21:57 silug joined #perl6
21:57 dalek rakudo/nom: 85bcd7a | (Tobias Leich)++ | VERSION:
21:57 dalek rakudo/nom: [release] bump VERSION
21:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/85bcd7a774
21:58 jnthn timotimo: Nope, sorry
21:58 jnthn timotimo: Occurs to me we could do a linked list scheme though
21:58 jnthn Of MVMNativeCallback
21:58 timotimo that was my first thought, too
21:58 timotimo since we won't be removing any as of yet
21:59 jnthn Linked lists support deletion :P
21:59 timotimo er. yeah.
21:59 jnthn Hm, I think actually I'd:
21:59 timotimo "I'd (and you'll)" :)
22:00 jnthn 1) In MVMNativeCallback remove the hash thing, and add a ->next
22:00 jnthn 2) Create a MVMNativeCallbackCacheHead, that has the hash thing, and a ->callback_head pointer to the head of the list
22:00 jnthn And then update the cache to use the latter
22:00 jnthn Just a bit clear data structure wise.
22:00 jnthn *cleaner
22:01 timotimo -> #moarvm
22:01 jnthn sure :)
22:16 lizmat joined #perl6
22:19 dalek roast: ee6df08 | (Tobias Leich)++ | S17-supply/start.t:
22:19 dalek roast: mark another test as flapping
22:19 dalek roast: review: https://github.com/perl6/roast/commit/ee6df08125
22:19 eMBee joined #perl6
22:28 FROGGS jnthn: can you put the moarvm tarball on moarvm.org?
22:28 donaldh_ joined #perl6
22:33 Sqirrel joined #perl6
22:34 skids joined #perl6
22:34 jnthn I linekd it earlier
22:34 jnthn Just didn't update the web page yet
22:35 jnthn http://www.moarvm.org/releases/MoarVM-2014.05.tar.gz
22:35 jnthn Will probably get to that tomorrow, I should rest now...
22:37 FROGGS jnthn: gnight :o)
22:38 jnthn 'night, #perl6
22:38 flussence o/
22:38 woolfy joined #perl6
22:46 timotimo tadzik: any idea why the terminal would be sitting still and not using much cpu after outputting:
22:46 timotimo ==> Reinstalling Term::ANSIColor Debugger::UI::CommandLine NativeCall ufo
22:46 timotimo in the rebootstrap process?
22:48 timotimo masak: wtb ufo commitbit
22:57 flussence I've caused something weird with threads, but I'm not in any hurry to get it fixed... I'll just leave it here: https://gist.github.com/flussence/c1f782ea8616611d75c9
23:00 fhelmberger joined #perl6
23:00 rurban joined #perl6
23:09 rurban joined #perl6
23:11 raiph joined #perl6
23:20 timotimo oh, that's cute
23:22 timotimo i'm having a frustrate with pointers
23:43 timotimo i has a bug fixed!
23:59 dalek gtk-simple: e21417a | (Timo Paulssen)++ | / (2 files):
23:59 dalek gtk-simple: no longer need these debugging messages
23:59 dalek gtk-simple:
23:59 dalek gtk-simple: this was a bug in nativecall on moarvm. it used to
23:59 dalek gtk-simple: dispatch a callback based on the cuid alone, ignoring
23:59 dalek gtk-simple: that multiple closure-clones of the same cuid can
23:59 dalek gtk-simple: exist.
23:59 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/e21417a971

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

Perl 6 | Reference Documentation | Rakudo