Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-16

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 dayangkun joined #perl6
00:13 klaas-janstol joined #perl6
00:15 Mouq m: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar # LTA
00:15 camelia rakudo-moar b982bd: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤  in block  at /tmp/Q5w3lThXLF:1␤␤»
00:25 dalek rakudo/HyperWat: b0b24c9 | Mouq++ | src/core/traits.pm:
00:25 dalek rakudo/HyperWat: Add $.attr handles * and $attr handles ** to spec
00:25 dalek rakudo/HyperWat:
00:25 dalek rakudo/HyperWat: 'handles *' should only delegate if the $.attr can do the method.
00:25 dalek rakudo/HyperWat: 'handles **' should always try to delegate to $.attr. This allows for
00:25 dalek rakudo/HyperWat: something like:
00:25 dalek rakudo/HyperWat:
00:25 dalek rakudo/HyperWat:     class Bar { method baz { 42 } }
00:25 dalek rakudo/HyperWat:     class Foo {
00:25 dalek rakudo/HyperWat:         has Bar $.bar handles *;
00:25 dalek rakudo/HyperWat:         has @.bax handles **;
00:25 dalek rakudo/HyperWat:     }
00:25 dalek rakudo/HyperWat:
00:25 dalek rakudo/HyperWat: So that Foo.baz will be delegated to $.bar, but anything else will be
00:25 dalek rakudo/HyperWat: delegated to @.bax
00:25 dalek rakudo/HyperWat: review: https://github.com/rakudo/rakudo/commit/b0b24c9957
00:25 klaas-janstol joined #perl6
00:26 Mouq I'm going to run spectest once more, then merging with nom
00:26 Mouq There's really not much more to do with ** until we have shaped arrays/hashes, IMO :/ then there'll be plenty to do with it
00:28 TimToady indeed! Mouq++
00:28 TimToady Mouk** in fact
00:31 Mouq :9
00:33 bjz_ joined #perl6
00:33 Ben_Goldberg joined #perl6
00:38 cono guys, if I did some changes in nqp/MoarVM/src, what should I run to rebuild rakudo with my changes?
00:41 Mouq sometimes you can just run 'make install' in the nqp/MoarVM directory and it'll work
00:43 Mouq If that doesn't work, however, you might have to run 'perl Configure.pl ...' and then 'make install' in each of rakudo/nqp/MoarVM, rakudo/nqp, and then rakudo
00:44 xenoterracide joined #perl6
00:44 cono Mouq: it will install in rakudo folder? not to the system wide?
00:45 cono I've deleted install/bin/{moar,nqp-m} and ran Configure.pl --gen-moar
00:47 Mouq The problem with running --gen-moar is that it'll overwrite your changes... running 'make install' in nqp/MoarVM should do what you want, though if it breaks something your perl6 might be broken
00:47 Mouq You might want to ask in #moarvm though
00:48 dalek rakudo/nom: 412920f | Mouq++ | src/ (5 files):
00:48 dalek rakudo/nom: Add HyperWhatever, move NYIs
00:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/412920f998
00:48 dalek rakudo/nom: fbae5fd | Mouq++ | src/core/ (4 files):
00:48 dalek rakudo/nom: Merge branch 'nom' into HyperWat
00:48 TimToady I often just do a . config.status in the top directory, and that *usually* does what I want
00:48 TimToady and doesn't risk losing your --prefix
00:48 dalek joined #perl6
00:49 TimToady an intermediate step is 'make clean; make install' at each level
00:49 cono got it. thanks :)
00:49 TimToady but the build system is certainly not handling all the deps it oughta
00:51 Mouq .oO( make dwim )
00:51 TimToady at least it the top-level . config.status doesn't throw away your nom and moar branch like it used to
00:51 TimToady *at the
00:51 TimToady used to send nqp headless all the time
00:52 TimToady in fact, when I wanted to enable jit yesterday, I just edited my config.status instead of rerunning Configure directly
01:10 nbrown_ joined #perl6
01:19 dalek specs: 7ddad32 | (Stéphane Payrard)++ | S99-glossary.pod:
01:19 dalek specs: too many changes in glossary
01:19 dalek specs:
01:19 dalek specs: too bad the github edit tool does not allow me to preview the diffs. Or am I missing something?
01:19 dalek specs: review: https://github.com/perl6/specs/commit/7ddad32a95
01:22 iarna joined #perl6
01:28 FROGGS__ joined #perl6
01:37 BenGoldberg joined #perl6
01:44 klapperl joined #perl6
02:05 Mouq j: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar
02:05 camelia rakudo-jvm b0b24c: OUTPUT«(timeout)»
02:06 Mouq p: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar
02:06 camelia rakudo-parrot b0b24c: OUTPUT«No such method 'bar' for invocant of type 'Foo'␤  in block  at /tmp/7paoCssoCW:1␤␤»
02:06 Mouq Yeah, it's a Moar bug
02:07 peter_z_ joined #perl6
02:17 BenGoldberg r: my $f = class { }; $f.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); $f.new.bar;
02:17 camelia rakudo-moar b0b24c: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤  in block  at /tmp/tmpfile:1␤␤»
02:17 camelia ..rakudo-{parrot,jvm} b0b24c: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤  in block  at /tmp/tmpfile:1␤␤»
02:18 xenoterracide joined #perl6
02:18 BenGoldberg And now, it's two moar bugs.
02:19 BenGoldberg r: my $f = class { }; $f.new.bar;
02:19 camelia rakudo-{parrot,jvm,moar} b0b24c: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤  in block  at /tmp/tmpfile:1␤␤»
02:21 diakopter yay, Null REPR
02:24 TimToady m: my $i = 1; while $i < 155000 { ++$i }; say 'not jitted'
02:24 camelia rakudo-moar b0b24c: OUTPUT«not jitted␤»
02:24 rurban1 joined #perl6
02:24 TimToady we have a reliable test for JIT now :P
02:25 Mouq Yeah. Moar needs to check if the return value from .HOW.find_method if null, it never does. I'm not sure how to make it do so..
02:25 Mouq 6model/6model.c L 98 or so, btw
02:26 Mouq Should just be able to copy the code for throwing the exception from L 70
02:29 Mouq Alternatively, find_method could throw the exception itself, but I'm not sure if there are adverse ramifications for that...
02:38 Mouq TimToady: So (1, (2,3), (4,(5,6))).tree(*) should become LoL.new(1, LoL.new(2,3), LoL.new(4, LoL.new(5,6))) ? or is it supposed to be .item instead of LoL?
02:51 noganex joined #perl6
02:54 dalek specs: b3e639e | (Stéphane Payrard)++ | S99-glossary.pod:
02:54 dalek specs: more definitions
02:54 dalek specs: review: https://github.com/perl6/specs/commit/b3e639e263
02:56 dalek specs: 2389f4e | (Stéphane Payrard)++ | S99-glossary.pod:
02:56 dalek specs: closed a L<>
02:56 dalek specs: review: https://github.com/perl6/specs/commit/2389f4e753
03:01 dalek specs: beced3e | (Stéphane Payrard)++ | S99-glossary.pod:
03:01 dalek specs: Update S99-glossary.pod
03:01 dalek specs: review: https://github.com/perl6/specs/commit/beced3e3ad
03:06 Sqirrel joined #perl6
03:13 BenGoldberg joined #perl6
03:13 colomon joined #perl6
03:13 BooK joined #perl6
03:13 MilkmanDan joined #perl6
03:13 eternaleye joined #perl6
03:13 lue joined #perl6
03:13 ChoHag joined #perl6
03:13 baest joined #perl6
03:13 daxim joined #perl6
03:13 sjn joined #perl6
03:13 muraiki joined #perl6
03:13 robinsmidsrod joined #perl6
03:13 ingy joined #perl6
03:13 retupmoca joined #perl6
03:13 xenoterracide joined #perl6
03:13 klapperl joined #perl6
03:13 FROGGS__ joined #perl6
03:13 sergot joined #perl6
03:13 xragnar joined #perl6
03:13 firnsy joined #perl6
03:13 mattp_ joined #perl6
03:13 ashleydev joined #perl6
03:13 anocelot joined #perl6
03:13 nhayashi joined #perl6
03:13 avuserow joined #perl6
03:13 TimToady joined #perl6
03:13 awwaiid joined #perl6
03:13 ilogger2 joined #perl6
03:13 ClarusCogitatio joined #perl6
03:13 bowtie_ joined #perl6
03:13 thilp joined #perl6
03:15 xragnar_ joined #perl6
03:15 dalek specs: 7ce46f1 | (Stéphane Payrard)++ | S99-glossary.pod:
03:15 dalek specs: glossary: slang
03:15 dalek specs: review: https://github.com/perl6/specs/commit/7ce46f1aca
03:26 rindolf joined #perl6
03:29 diakopter cognome: pinciipled
03:30 cognome yea I will correct my many typos tomorrow. good night.
03:30 diakopter ok, I don't know what it should be
03:31 TimToady good night
03:32 cognome * principled
03:36 diakopter I suspect you mean "Slangs are the principal way to ... " but I'm curious that there might be a meaning for principled there
03:36 xenoterracide joined #perl6
03:36 TimToady yes, it means something quite different from that
03:37 TimToady it's the opposite of "unprincipled"
03:37 TimToady a regular mechanism, not an irregular mechanism
03:39 diakopter as in "the regulatory principal confused the principled grammarian with a Slang slang"?
03:40 diakopter hm, maybe should eat something today other than ice cream
03:40 TimToady despite their name, slangs are an official language extension mechanism
03:42 TimToady One can easily see why a French person would conclude that this conundrum needs to be explained, at least to the other French. :)
03:43 diakopter dialect is a bit closer, or maybe colloquialism, or even jargon, but those aren't as cute as slang
03:43 TimToady well, and it's also short for "sublanguage" :)
03:45 diakopter the subtlest of subtext is written in sublanguage, but not by subhumans
03:46 TimToady don't forget to eat subthing
03:46 diakopter masak: marco jargon(Slang $$s) { $$s.asploded }
03:47 diakopter .oO( can all knowledge be framed as an inside joke? )
03:48 TimToady God only knows.
03:53 dalek roast/S26-WHY: 7825f80 | (Rob Hoelz)++ | S26-documentation/why- (3 files):
03:53 dalek roast/S26-WHY: Add doc tests for constants
03:53 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/7825f8087b
04:16 xinming_ joined #perl6
04:30 iarna joined #perl6
04:30 Mouq TimToady: I did some work on .tree but would rather you play around with it, if you have time, since I'm not really sure what its exact semantics are supposed to be: https://gist.github.com/Mouq/36aa0035aa3e06d3e3c9
04:36 ren1us joined #perl6
04:42 TimToady casual inspection indicates that this is an improvement :)
04:44 TimToady but we need to come up with a literal syntax for LoLs, so we use up all the LoL.new() electrons printing them out
04:44 TimToady *don't use up
04:45 TimToady we could claim [;;], and require people to write [()] for an array from a comprehension
04:46 TimToady much to be said for that approach...
04:47 TimToady except that a LoL is really more like $(;;), and then it conflicts with (;;)
04:48 Mouq m: sub foo(*@a) {say @a.WHAT}; foo <bar baz>
04:48 camelia rakudo-moar b0b24c: OUTPUT«(Array)␤»
04:48 Mouq m: sub foo(**@a) {say @a.WHAT}; foo <bar baz>
04:48 camelia rakudo-moar b0b24c: OUTPUT«(LoL)␤»
04:48 Mouq ^^
04:49 Mouq I think [;;] looks special-er than (;;)
04:49 Mouq *$(;;)
04:51 TimToady I am willing to consider that using () for list comprehensions is a mistake
04:51 TimToady and that a LoL should be (;;)
04:53 lue If Parcels were supposed to be mostly invisible anyway, I'd say it'd make more sense to take from the parcel syntax a bit, and thus use (;;) .   :)
04:54 TimToady or that we disallow multiple statements inside (), and you can still write a list comprehension, but each dimension is its own statement
04:56 TimToady so you couldn't write (my $x; $x++ + $_ for @foo) and such
04:58 TimToady we'd require do {} for such shenanigans
05:01 lue {} would be more intuitive than () in any case :)  "oh, bare code doesn't work. Let's try braces!"
05:02 TimToady well, there's always {}()
05:03 gfldex joined #perl6
05:08 TimToady that would allow us to say either my @array = (list; list; list); or my @array := [list; list; list];
05:11 Mouq &infix:<;>
05:11 Mouq :P
05:11 Mouq std: (1,,2)
05:11 camelia std 81e0d07: OUTPUT«[31m===[0mSORRY![31m===[0m�Preceding context expects a term, but found infix , instead at /tmp/by_Rk_u6zM line 1:�------> [32m(1,[33m�[31m,2)[0m�Parse failed�FAILED 00:01 125m�»
05:11 Mouq std: (1;;2)
05:11 camelia std 81e0d07: OUTPUT«ok 00:01 123m␤»
05:11 Mouq std: [1;;2]
05:11 camelia std 81e0d07: OUTPUT«ok 00:01 124m␤»
05:12 TimToady basically only blocks would allow ; to mean the sequential side-effect monad if we made this change
05:13 TimToady even .{} would be semilists
05:16 Mouq Yeah, the more I think about it, the more it seems like an icky hack
05:17 Mouq Need more ASCII
05:17 TimToady well, everything is an icky hack at the moment
05:18 Mouq m: sub infix:<,,> (**@l) { @l }; say (1 ,, 2 ,, 3).perl
05:18 camelia rakudo-moar b0b24c: OUTPUT«LoL.new(LoL.new(1, 2).item, 3)␤»
05:18 Mouq Aww :P
05:18 Mouq m: sub infix:<,,> is chaining (**@l) { @l }; say (1 ,, 2 ,, 3).perl
05:18 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/gHOyKXM0mEâ�¤Missing blockâ�¤at /tmp/gHOyKXM0mE:1â�¤------> [32msub infix:<,,> is chaining [33mâ��[31m(**@l) { @l }; say (1 ,, 2 ,, 3).perl[0mâ�¤    expecting any of:â�¤        colon pairâ�¤    â€¦Â»
05:19 TimToady equiv(&infix:<Z>) maybe
05:19 Mouq m: sub infix:<,,> is equiv(&infix:<Z>) (**@l) { @l }; say (1 ,, 2 ,, 3).perl
05:19 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/nv16tPzoiuâ�¤Missing blockâ�¤at /tmp/nv16tPzoiu:1â�¤------> [32msub infix:<,,> is equiv(&infix:<Z>) [33mâ��[31m(**@l) { @l }; say (1 ,, 2 ,, 3).perl[0mâ�¤    expecting any of:â�¤        postfix…»
05:19 Mouq Oh, I'm putting it in the wrong spot
05:19 Mouq m: sub infix:<,,> (**@l) is equiv(&infix:<Z>) { @l }; say (1 ,, 2 ,, 3).perl
05:19 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/W9xyh79ocW�Routine given to equiv does not appear to be an operator�at /tmp/W9xyh79ocW:1�------> �»
05:20 TimToady bug
05:21 Mouq m: sub infix:<,,> (*@l) { @l.lol }; say (1 ,, 2 ,, 3).perl # well anyway
05:21 camelia rakudo-moar b0b24c: OUTPUT«LoL.new(ListIter.new())␤»
05:23 TimToady we need a semi-eager context that evaluates the first 4 or 5 elements of a lazy list
05:24 TimToady "gist" context :)
05:24 Mouq Anything looser than &[,] "does not appear to be an operator"
05:29 kurahaupo joined #perl6
05:52 aoseki joined #perl6
06:02 iarna joined #perl6
06:06 kaare_ joined #perl6
06:11 TimToady m: foo: say "here"; goto foo;
06:11 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/szKN3kLOxUâ�¤Undeclared routine:â�¤    goto used at line 1â�¤â�¤Â»
06:11 TimToady segfaults under jit
06:12 diakopter m: loop { start { die } }
06:12 camelia rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140061769201408␤»
06:12 diakopter m: loop { start { die } }
06:12 camelia rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140489453991680␤»
06:13 TimToady oh, mine only segfaults in the repl
06:14 TimToady actually, it just segfaults on the label in the repl :/
06:14 diakopter m: f:\
06:14 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/gwXhIoLdNrâ�¤Two terms in a rowâ�¤at /tmp/gwXhIoLdNr:1â�¤------> [32mf[33mâ��[31m:\[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix o…»
06:14 diakopter m: f:
06:14 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/xmv3oIuuRdâ�¤Two terms in a rowâ�¤at /tmp/xmv3oIuuRd:1â�¤------> [32mf[33mâ��[31m:[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix or…»
06:15 TimToady m: f:
06:15 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/hMvGtWPTopâ�¤Two terms in a rowâ�¤at /tmp/hMvGtWPTop:1â�¤------> [32mf[33mâ��[31m:[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix or…»
06:15 TimToady m: f: ;
06:15 camelia rakudo-moar b0b24c: ( no output )
06:19 diakopter m: ENTER ENTER ENTER LEAVE ENTER LEAVE ENTER LEAVE say 4
06:19 camelia rakudo-moar b0b24c: OUTPUT«4␤»
06:23 diakopter m: start { say 4 }
06:23 camelia rakudo-moar b0b24c: OUTPUT«4␤»
06:23 diakopter m: start { start { say 4 } }
06:23 camelia rakudo-moar b0b24c: ( no output )
06:24 TimToady m: await start { start { say 4 } }
06:24 camelia rakudo-moar b0b24c: ( no output )
06:24 TimToady m: await start { await start { say 4 } }
06:24 camelia rakudo-moar b0b24c: OUTPUT«4␤»
06:24 TimToady m: start { await start { say 4 } }
06:24 camelia rakudo-moar b0b24c: ( no output )
06:26 TimToady m: say result start { result start { 4 } }
06:26 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GU4QF63sTIâ�¤Undeclared routine:â�¤    result used at line 1â�¤â�¤Â»
06:26 diakopter m: await await { start { start { say 6 } } }
06:26 camelia rakudo-moar b0b24c: OUTPUT«(timeout)»
06:28 TimToady m: sub result ($x) { $x.result }; say result start { result start { 4 } }
06:28 camelia rakudo-moar b0b24c: OUTPUT«4␤»
06:29 TimToady m: sub result ($x) { $x.result }; say result start { result start { sleep 2; 4 } }
06:29 camelia rakudo-moar b0b24c: OUTPUT«4␤»
06:29 diakopter m: await LAST start { say 6 }
06:29 camelia rakudo-moar b0b24c: ( no output )
06:29 diakopter p: await LAST start { say 6 }
06:29 camelia rakudo-parrot b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/51e_DyXItTâ�¤Undeclared routines:â�¤    await used at line 1â�¤    start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?â�¤â�¤Â»
06:32 TimToady m: say await start { 4 }, start { 2 }
06:32 camelia rakudo-moar b0b24c: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in sub start at src/gen/m-CORE.setting:18659␤  in block  at /tmp/IMe1iYWu2l:1␤␤»
06:33 diakopter m: await { lazy { start { say 4 } } }
06:33 camelia rakudo-moar b0b24c: ( no output )
06:33 TimToady m: say await start({ 4 }), start { 2 }
06:33 camelia rakudo-moar b0b24c: OUTPUT«4 2␤»
06:36 TimToady start is supposed to be a statement prefix, not a listop
06:38 dalek std: ee1ef48 | TimToady++ | STD.pm6:
06:38 dalek std: s/async/start/ in statement prefixes
06:38 dalek std: review: https://github.com/perl6/std/commit/ee1ef4861b
06:39 TimToady see also S04:1434
06:39 synopsebot Link: http://perlcabal.org/syn/S04.html#line_1434
06:39 darutoko joined #perl6
06:40 xinming joined #perl6
06:40 Mouq So I added the rest of the missing precedence info to precendence.pm, and it makes stage parse hang. Discecting the cause may take a while...
06:40 TimToady er, have the appropriate amount of fun...
06:41 Mouq :9
06:41 Mouq I'll try
06:41 mr-foobar joined #perl6
06:42 diakopter m: { CATCH { say 44; CATCH { say 33 }; die 55 }; die 66 }
06:43 camelia rakudo-moar b0b24c: OUTPUT«44␤33␤55␤  in block  at /tmp/3pCGNjribn:1␤  in block  at /tmp/3pCGNjribn:1␤␤»
06:45 Mouq Ah, I was missing a semicolon
06:46 TimToady m: { CATCH { say 44; CATCH { say 33; default {} }; die 55 }; die 66 }
06:46 camelia rakudo-moar b0b24c: OUTPUT«44␤33␤»
06:46 TimToady m: { CATCH { say 44; default {} CATCH { say 33; default {} }; die 55 }; die 66 }
06:46 camelia rakudo-moar b0b24c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ONPspyL66aâ�¤Missing semicolon.â�¤at /tmp/ONPspyL66a:1â�¤------> [32m{ CATCH { say 44; default {} [33mâ��[31mCATCH { say 33; default {} }; die 55 }; [0mâ�¤    expecting any of:â�¤        stateme…»
06:47 TimToady m: { CATCH { say 44; default {}; CATCH { say 33; default {} }; die 55 }; die 66 }
06:47 camelia rakudo-moar b0b24c: OUTPUT«44␤»
06:47 dalek rakudo/nom: 9947667 | Mouq++ | src/core/precedence.pm:
06:47 dalek rakudo/nom: Add more ops to precedence.pm
06:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9947667c97
06:48 thou joined #perl6
06:53 hurry joined #perl6
07:01 next_ joined #perl6
07:06 dalek rakudo/nom: daf9612 | Mouq++ | src/core/ (2 files):
07:06 dalek rakudo/nom: Make .tree somewhat more to spec
07:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/daf9612995
07:06 dalek rakudo/nom: 2f42311 | Mouq++ | src/core/LoL.pm:
07:06 dalek rakudo/nom: Use simpler .perl for LoL
07:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2f4231159c
07:10 dalek nqp: 9b526d1 | duff++ | src/HLL/sprintf.nqp:
07:10 dalek nqp: better sprintf formatting for floats
07:10 dalek nqp:
07:10 dalek nqp: When outputing a float to some number of decimal places, some
07:10 dalek nqp: calculations are done with native numbers and others with bigints. This
07:10 dalek nqp: results in odd formatting once intermediate calculations generate a
07:10 dalek nqp: number that's too big to fit in a num.
07:10 dalek nqp:
07:10 dalek nqp: This commit reworks the stringify-to-precision() routine to treat the
07:10 dalek nqp: number as a string and then use only bigints for the individual parts.
07:10 dalek nqp:
07:10 dalek nqp: Fixes RT #120232
07:10 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120232
07:10 dalek nqp: review: https://github.com/perl6/nqp/commit/9b526d1470
07:10 dalek nqp: a9cf677 | duff++ | src/HLL/sprintf.nqp:
07:10 dalek nqp: Only output trailing dot if there are also trailing digits
07:10 dalek nqp: review: https://github.com/perl6/nqp/commit/a9cf677ae7
07:10 dalek nqp: e806b34 | duff++ | src/HLL/sprintf.nqp:
07:10 dalek nqp: Decimal expand numbers given in scientific notation
07:10 dalek nqp:
07:11 dalek nqp: C<sprintf()> outputs strange numbers, sometimes with 2 radix points or
07:11 dalek nqp: extra stuff on the end, when given a number in scientific notation to
07:11 dalek nqp: format. So, prior to formatting, expand the number into the appropriate
07:11 dalek nqp: decimal representation.
07:11 dalek nqp: review: https://github.com/perl6/nqp/commit/e806b34a03
07:15 Mouq PerlJam++ :D
07:20 timotimo aye!
07:20 timotimo and good morning
07:25 bowtie_ joined #perl6
07:34 denis_boyun joined #perl6
07:34 tinyToday joined #perl6
08:01 dalek nqp: c6c02af | duff++ | t/hll/01-language.t:
08:01 dalek nqp: skip t/hll/01-language since it's highly parrot specific right now
08:01 dalek nqp: review: https://github.com/perl6/nqp/commit/c6c02afa49
08:01 dalek nqp: 340eaeb | duff++ | t/hll/06-sprintf.t:
08:01 dalek nqp: un-todo some tests; plan the correct number of tests
08:01 dalek nqp: review: https://github.com/perl6/nqp/commit/340eaeb816
08:01 dalek nqp: 0055bf5 | duff++ | tools/build/Makefile- (2 files):
08:01 dalek nqp: Add t/hll tests to moar and jvm backends
08:01 dalek nqp:
08:01 dalek nqp: Most of t/hll is skipped anyway right now, but there are some bits that
08:01 dalek nqp: can run on all the backends, so we should run them.
08:01 dalek nqp: review: https://github.com/perl6/nqp/commit/0055bf5be4
08:03 cooper joined #perl6
08:03 cooper joined #perl6
08:12 molaf joined #perl6
08:16 dalek rakudo/nom: a63b1ba | Mouq++ | src/core/Any.pm:
08:16 dalek rakudo/nom: .tree logic fix
08:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a63b1ba8ae
08:17 dalek roast: 332eb67 | Mouq++ | S02-lists/tree.t:
08:17 dalek roast: Fix .tree tests
08:17 dalek roast: review: https://github.com/perl6/roast/commit/332eb67b17
08:19 chenryn joined #perl6
08:22 dalek rakudo/nom: 5bb3a03 | duff++ | src/core/Any.pm:
08:22 dalek rakudo/nom: I think this fixes RT #122028
08:22 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122028
08:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5bb3a03cbf
08:25 Mouq joined #perl6
08:29 lizmat t/spec/S12-subset/subtypes.t hangs with the latest pull
08:30 dmol joined #perl6
08:35 * Mouq disagrees...
08:35 Mouq Oh, but my nqp is behind yet
08:35 ChoHag That grammar didn't work.
08:35 ChoHag Oh never mind I was printing [0]
08:36 ChoHag This is why programming doesn't work inthe morning...
08:36 thou joined #perl6
08:36 Mouq lizmat: What's your -v?
08:37 lizmat This is perl6 version 2014.07-193-g5bb3a03 built on MoarVM version 2014.07-388-ge953112
08:38 Mouq same...
08:38 lizmat m: use Test; subset AE of Int where { $_ % 2 == 0 }; my AE $x = 2; dies_ok { $x++ }   # seems to not get past the dies_ok
08:38 camelia rakudo-moar 2f4231: OUTPUT«ok 1 - ␤»
08:40 lizmat oddly enough, if I skip the block *before* the block that hangs, we don't have a problem  :-(
08:41 masak good antenoon, #perl6
08:41 lizmat masak o/
08:41 Mouq lizmat: maybe you need to make clean?
08:41 lizmat I'll try
08:43 tinyToday joined #perl6
08:47 lizmat nope: complete rebuild (with install dir zapped): still the same
08:49 lizmat golfing now
08:54 ChoHag Why does \N match where . doesn't?
08:55 masak ChoHag: do you have a concrete example?
08:55 ChoHag Given this: rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ };
08:56 ChoHag This works: token log { 2014\N* }
08:56 ChoHag This doesn't: token log { 2014.* }
08:56 masak could you show that, on the p6eval, with some input?
08:57 ChoHag The p6eval being camelia?
08:57 ChoHag Ein moment.
08:57 masak oh, right. yes.
08:57 masak camelia used to be named p6eval :)
08:57 lizmat Mouq: I had a local change that caused the hanging
08:57 lizmat but the change is really minimal
08:58 lizmat after the try block in dies_ok, I had "say $! if $!"
08:58 Mouq lizmat: Obviously not *that* minimal :9
08:58 ChoHag What's the method to a Grammar to parse a string?
08:59 moritz .parse
08:59 lizmat oddly enough, if I change it to "diag $! if $!" there is no problem
08:59 lizmat wouldn't be surprised if I'm tickling a crossing the streams between S*OUT and $*ERR bug there
09:01 ChoHag m: grammar GoodAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014\N* }; }; say GoodAntiBullshitDetector.parse("bad line\n2014: good line\n");
09:01 camelia rakudo-moar 2f4231: OUTPUT«「bad line␤2014: good line␤」␤ line => 「bad line」␤  bullshit => 「bad line」␤ line => 「2014: good line」␤  log => 「2014: good line」␤␤»
09:01 ChoHag m: grammar BadAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014.* }; }; say BadAntiBullshitDetector.parse("bad line\n2014: good line\n");
09:01 camelia rakudo-moar 2f4231: OUTPUT«「bad line␤2014: good line␤」␤ line => 「bad line」␤  bullshit => 「bad line」␤ line => 「2014: good line」␤  bullshit => 「2014: good line」␤␤»
09:01 ChoHag That plays merry havoc with my terminal :(
09:01 dalek roast: a813440 | (Elizabeth Mattijsen)++ | S02-lists/tree.t:
09:01 dalek roast: Fix test count
09:01 dalek roast: review: https://github.com/perl6/roast/commit/a813440b1d
09:03 masak I can read it just fine.
09:03 ChoHag I could too until I moved irssi to freebsd.
09:03 ChoHag It's some locale thing I think.
09:03 ChoHag Locales are weird enough in Linux where people care.
09:03 masak aye.
09:04 ChoHag I'm just learning to love ctrl-l.
09:04 huf the l stands for love!
09:05 ChoHag ctrl-love? That sounds rather psychotic.
09:05 masak m: say so "foo\nbar\n" ~~ /bar $$/
09:05 camelia rakudo-moar 2f4231: OUTPUT«True␤»
09:06 masak m: say so "foo\nbar" ~~ /bar $$/
09:06 camelia rakudo-moar 2f4231: OUTPUT«True␤»
09:06 masak hm.
09:06 masak I *thought* that would end up being the problem. apparently not.
09:06 ChoHag It's probably down to the sigspace magic, but I really have no clue about grammars.
09:07 lizmat Mouq: your fix to push seems to break things:
09:07 lizmat $ 6 'my %h; push %h<a>,42'
09:07 lizmat Cannot call 'push'; none of these signatures match:
09:07 lizmat :(Any:U \SELF: *@values, *%_)
09:07 ChoHag P5 regex have filled my brain.
09:07 masak ChoHag: shouldn't be any sigspace involved; you're using `token`, not `rule`
09:07 ChoHag Oh.
09:07 ChoHag See?
09:07 ChoHag No clue.
09:07 masak :)
09:07 moritz m: say so "foo\nbar" ~~ /foo $$ bar /
09:07 camelia rakudo-moar 2f4231: OUTPUT«False␤»
09:07 ChoHag I was swapping them around to see what happened.
09:07 Mouq lizmat: Errr, PerlJam's fix?
09:07 moritz that's because nothing is eating the \n
09:07 masak oh, oh! right.
09:07 Rotwang joined #perl6
09:07 masak that one trips me up every so often.
09:08 moritz $$ is a zero-width assertion
09:08 masak right.
09:08 lizmat oops, actually duff++ 's fix, I think
09:08 masak PerlJam++
09:08 moritz maybe we should have token nl { \n? $$ }
09:08 lizmat https://github.com/rakudo/rakudo/commit/5bb3a03cbf
09:09 moritz duff is PerlJam :-)
09:09 lizmat ah, ok
09:09 lizmat and perlpilot on github,  :-)
09:11 lizmat testing a fix
09:11 ChoHag Bah.
09:11 ChoHag This hacking thing was so much easier before I grew up and got responsibilities.
09:11 ChoHag I have to go shopping.
09:12 masak hah, I thought you meant responsibilities towards a client. :)
09:12 ChoHag No. Real responsibilities.
09:12 ChoHag Children like food, you see.
09:12 masak so I've heard.
09:13 lizmat .oO( masak will find that out before too long as well :-)
09:13 ChoHag Clients can go hang themselves on Saturday.
09:13 ChoHag Or pay me far more than I'm worth.
09:13 klaas-janstol joined #perl6
09:15 masak lizmat: the surprise involved in finding out the answer to "do children like food?" is projected to be: very small. :P
09:17 dalek rakudo/nom: d0bf8a2 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
09:17 dalek rakudo/nom: Better fix for #122028
09:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d0bf8a2457
09:17 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122028
09:18 dalek roast: 5c4e3ee | (Elizabeth Mattijsen)++ | S09-typed-arrays/arrays.t:
09:18 dalek roast: Unfudge now passing test, PerlJam++
09:18 dalek roast: review: https://github.com/perl6/roast/commit/5c4e3ee63e
09:23 Mouq Here's a question: why are grammars and actions so disconnected? They currently rely on this $*ACTIONS mechanism which doesn't (in the code I've seen) change unless in unison with a change in the grammar
09:24 lizmat because you might want to use the same grammar with different actions
09:24 lizmat this is what perl6-debug is based on, e.g. afaik
09:24 Mouq I think that if there is a need to change the actions of a grammar, it's an esoteric enough thing to warrenting using the metamodel
09:24 Mouq lizmat: Hm. I think I stand by my last statement
09:24 masak Mouq: if you prefer to have some actions always fire, you can (a) write them inline in the grammar, or (b) wire things up so that some actions class is chosen by default.
09:25 masak actually, I should blog about that.
09:25 masak that ought to be a short-and-sweet but useful blog post.
09:28 Mouq Cool :)
09:30 masak (not sure I'll get to it today, though. in the meantime, suffice the above.)
09:30 moritz using totally different actions is indeed a rather rare thing; but subclassing an action class (or mixing things in) might become very comon
09:31 Mouq I don't think the grammar and actions should be the same thing, just that they should be able to be tied together better. grammar Foo has actions(Foo::Actions) {}
09:32 masak interesting idea, to put it in a trait.
09:32 masak that should fly; if someone makes a proof-of-concept, I'll put that in the blog post.
09:35 pmurias joined #perl6
09:35 pmurias what would be a good way to expose the ability to call javascript call from nqp?
09:39 pmurias something like eval('console.log("Hello World")')
09:40 masak is the question interesting because the compiler has to intercept this call and do something unusual with it?
09:44 Mouq Can functions be imported and exported from pure JS?
09:45 Mouq Err, I'm not sure 'import' is the right word for Javascript, but be inherited from an outside scope?
09:48 dalek nqp-js: f7590c4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
09:48 dalek nqp-js: Refactor adding infix ops.
09:48 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/f7590c4cd3
09:49 pmurias masak: it's mostly a user interface question, is there some existing nqp convention etc.
09:50 masak oh.
09:50 masak no idea, then.
09:50 pmurias masak: there would need to be some mapping between different calling conventions
09:50 timotimo "nativecall" is taken, so you should call it ... uglycall? terriblecall? disgustingcall? :)
09:50 masak hey, what's this anti-JS vibe I get? :)
09:51 masak you're talking about the substrate programming medium of the 21st century!
09:51 masak mock it at yer own peril!
09:51 timotimo :D
09:52 * pmurias likes js much more than pir
09:52 masak oh man, PIR.
09:53 masak the preciseness of Perl combined with the succinctness of assembly language!
09:58 ventica joined #perl6
09:59 dalek nqp-js: 467e54c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
09:59 dalek nqp-js: Implement nqp ops: iseq_n, isne_n, iseq_s, isne_s, eqaddr.
09:59 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/467e54c3e9
10:01 FROGGS[mobile] joined #perl6
10:03 denis_boyun joined #perl6
10:09 denis_boyun joined #perl6
10:09 pmurias what's the prefered form in nqp? nqp::push(@foo,1) or @foo.push(1) ?
10:11 spider-mario joined #perl6
10:12 pmurias nqp-m: my @foo; @foo.push(1)
10:12 camelia nqp-moarvm: ( no output )
10:12 pmurias nqp-m: my @foo; @foo.push(1); say @foo[0]
10:12 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say @foo[0"␤   at gen/moar/stage2/NQPHLL.nqp:369  (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913  (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
10:12 pmurias nqp-m: my @foo; @foo.push(1); say(@foo[0])
10:12 camelia nqp-moarvm: OUTPUT«1␤»
10:13 denis_boyun joined #perl6
10:13 zakharyas joined #perl6
10:15 denis_boyun joined #perl6
10:24 thou joined #perl6
10:25 dalek nqp-js: ee28142 | (Pawel Murias)++ | src/vm/js/ (2 files):
10:25 dalek nqp-js: Pass test 10.
10:25 dalek nqp-js:
10:25 dalek nqp-js: Add nqp::numify, nqp::stringify, nqp::list, and the ability to coerce strings to num.
10:25 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/ee281428a8
10:29 lizmat m: my $a = 42; $a = q# 32 #; say $a # huh?
10:29 camelia rakudo-moar 5bb3a0: ( no output )
10:30 masak oh, interesting.
10:30 lizmat m: my $a = 42; $a = q# 32 #; say $a
10:30 camelia rakudo-moar 5bb3a0: ( no output )
10:30 masak which rule wins, (a) the one that says you can use any character as quote delimiter
10:30 lizmat well, # is supposed to be specifically barred
10:30 masak or (b) the one that says comments are whitespace, and thus don't count?
10:31 masak m: say q{ "OH HAI" }
10:31 camelia rakudo-moar 5bb3a0: OUTPUT« "OH HAI" ␤»
10:31 lizmat found this in t/spec/S02-lexical-conventions/comments.t
10:31 masak m: say q foo ;
10:31 camelia rakudo-moar 5bb3a0: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/syVQq_ciMlâ�¤Alphanumeric character is not allowed as a delimiterâ�¤at /tmp/syVQq_ciMl:1â�¤------> [32msay q [33mâ��[31mfoo ;[0mâ�¤    expecting any of:â�¤        argument listâ�¤        prefix …»
10:31 lizmat an eval_dies_ok test that is dying for the wrong reason
10:32 lizmat I'll mark them as todo...
10:32 jnthn std: my $a = 42; $a = q# 32 #; say $a
10:32 camelia std ee1ef48: OUTPUT«[31m===[0mSORRY![31m===[0m�No delimiter found at /tmp/iYZC6aG1MB line 1 (EOF):�------> [32mmy $a = 42; $a = q# 32 #; say $a[33m�[31m<EOL>[0m�Parse failed�FAILED 00:01 125m�»
10:32 masak testing unspecified failure is a very bad idea.
10:32 masak I'd say (b) feels like the winner.
10:32 masak but I say it somewhat reluctantly.
10:33 masak is there any other character special-cased such that (a) wins?
10:33 jnthn STD seems to expect (b), as another data point.
10:33 masak right.
10:33 lizmat no idea, I'm just working on replacing "(eval_|)dies_ok" tests with "throws_like" tests
10:35 psch S02:3920 is one more data point, fwiw
10:35 synopsebot Link: http://perlcabal.org/syn/S02.html#line_3920
10:36 masak lizmat++ # changing bad things to things that are not as bad
10:36 psch plus the obligatory second thing i say: hi #perl6
10:36 masak psch! \o/
10:36 masak psch: that reference seems to talk about twigils; seems unrelated.
10:37 jnthn o/ psch
10:37 psch oh
10:37 psch yes
10:37 psch that's probably my local specs out of date
10:37 psch thus grep giving me the wrong line number
10:37 * masak .oO( pro tip: ... )
10:38 masak :P
10:38 moritz http://hpmor.com/chapter/102 \o/
10:38 psch http://perlcabal.org/syn/S02.html#Delimiters_of_quoting_forms
10:39 psch end of that paragraph
10:39 psch is what i wanted to point to :)
10:39 masak "Nor may a # character be used as the delimiter since it is always taken as whitespace (specifically, as a comment)."
10:39 masak just found it :)
10:39 masak OK, so STD has it right.
10:39 masak lizmat: does that mean the test is wrong?
10:40 lizmat the test was passing when it shouldn't have
10:40 lizmat it's now failing with a TODO
10:40 psch well, STD sorries, rakudo doesn't
10:40 psch for # specifically
10:40 masak oh, troo.
10:40 masak is that worth a RT ticket, summarizing the thing?
10:40 psch the TODO lizmat+
10:41 psch the TODO lizmat++ supposedly put in is correct
10:41 psch in my understanding :)
10:41 lizmat I've marked is as NYI
10:41 masak well, a rakudobug might translate to someone grabbing it as a low-hanging fruit thingy...
10:43 masak moritz: I'm sorry? wasn't 102 posted on July 25?
10:43 masak moritz: or are you rejoicing about its mere existence?
10:46 ventica2 joined #perl6
10:50 kurahaupo joined #perl6
10:51 mr-foobar joined #perl6
10:56 moritz masak: I missed it back then
10:56 masak ah.
10:56 masak in that case, enjoy. :)
10:59 * moritz enjoyed
11:06 masak ...perhaps some http://www.reddit.com/r/hpmor for dessert? :)
11:09 timotimo joined #perl6
11:33 bjz joined #perl6
11:38 psch m: my $x = fail "foo"; say "alive"; # why does this print "alive" with -e?
11:38 camelia rakudo-moar d0bf8a: OUTPUT«Unhandled exception: foo␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13059  (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)…»
11:40 psch "it's assigned and doesn't get evaluated" seems a bit too hand-wavey to me, as an explanation
11:41 psch but maybe camelia throwing it is an artifact of what camelia does
11:42 psch as in, it shouldn't be thrown because it's just sitting in it's container and not evaluated, but camelia throws it because of [i'm not sure what goes here, something about scope and exiting?]
11:51 lizmat m: { my $x = fail "foo" }; say "alive";
11:51 camelia rakudo-moar d0bf8a: OUTPUT«Unhandled exception: foo␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13059  (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)…»
11:51 sergot o/
11:51 yoleaux 14 Aug 2014 23:40Z <psch> sergot: i've added a very basic error-printing to your OpenSSL module and the error message seems to points at something upstream (3rd file in https://gist.github.com/peschwa/c60c1c06a96781418d27; upstream discussion http://www.mail-archive.com/openssl-dev@openssl.org/msg32009.html)
11:51 yoleaux 14 Aug 2014 23:40Z <psch> sergot: i'm not sure that's actually the problem though; the discussion mentions AES-NI, which at least one of the machines i encounter that error doesn't support
11:52 lizmat m: sub { my $x = fail "foo" }(); say "alive";
11:52 camelia rakudo-moar d0bf8a: OUTPUT«foo␤  in block  at /tmp/_ricdU_n8k:1␤␤»
11:52 sergot psch++ thanks for your help
11:52 psch m: sub { my $x = fail "foo"; 1 }(); say "alive"
11:52 camelia rakudo-moar d0bf8a: OUTPUT«foo␤  in block  at /tmp/aYZK9cqt2o:1␤␤»
11:52 psch sergot: your welcome :)
11:53 sergot I will get into this tomorrow, ok? :)
11:53 psch sure, no rush
11:53 sergot or... I willtry to do this today :)
11:53 lizmat m: sub a { $^a * 10; }; say a (2) + 1; say a(2) + 1
11:53 camelia rakudo-moar d0bf8a: OUTPUT«30␤21␤»
11:54 lizmat m: sub a { $^a * 10; }; say a (2); say a (2) + 1; say a(2) + 1  # feels to me this is going to trip up some people
11:54 camelia rakudo-moar d0bf8a: OUTPUT«20␤30␤21␤»
11:54 psch sergot: i'll be around at least 2-3 hours to test patches, if you need me to
11:55 sergot thanks a lot :)
11:57 psch lizmat: fwiw, for me the warning about "you can't parens after 'if'" makes it rather clear to me
11:57 psch where "after" means "without whitespace"
11:58 lizmat but this is more about the precedence of () as an invoker, wrt to other operators
11:59 psch i also wouldn't want to warn for cases like "sum(1..10) / 10" with "did you want to call sum (1..10) / 10?" because i feel that'd be almost mandatory to silence for some styles of writing
12:00 psch the if-case i mentioned is just how i got "when the parens touches to the left it contains all params"
12:00 psch it's somewhat of my mnemonic, i guess
12:00 lizmat but it would be the other way around:
12:02 lizmat m: sub sum (*@a) { [+] @a }; say sum (1..5); say sum (1..5) / 10; say sum(1..5) / 10
12:02 camelia rakudo-moar d0bf8a: OUTPUT«15␤0.5␤1.5␤»
12:03 FROGGS psch: is there already an github issue for the openssl problem?
12:03 lizmat the case with 'sum () / 10' is probably *not* doing what you want
12:03 lizmat so maybe a warning would be in place for those cases?
12:03 psch lizmat: right, warning for the other case makes sense.  it's really the inverse case of what if complains about
12:04 lizmat std: sub sum (*@a) { [+] @a }; say sum (1..5) / 10;
12:04 camelia std ee1ef48: OUTPUT«ok 00:01 131m␤»
12:04 lizmat std thinks it's ok anyway
12:04 psch FROGGS: on their github? i honestly didn't check.  i found a debian ticket which states the error shouldn't occur on debian because they package 1.0e instead of 1.0d and 1.0d should be the one affected, but i'm using debian and have 1.0e and get the error
12:05 FROGGS psch: no, sergot's github
12:05 psch fwiw, it only happens with sergot++'s module, not with sslclient or what it was called.
12:05 FROGGS psch: so we do not loose track of the info you've collected
12:05 psch FROGGS: yeah, that's a good idea, i'll open it
12:05 FROGGS psch++
12:06 psch not sure if i should put it to IO::Socket::SSL or OpenSSL - i guess the latter because even though i used the former, it's the latter that (probably) exhibits the problem
12:09 FROGGS hmmmm
12:09 FROGGS probably, yeah
12:10 psch also, minor correction: the versions involved are 1.0.1d and e, respectively :)
12:13 thou joined #perl6
12:15 psch sergot: should i PR the very-basic err-bindings i wrote to get the stringy error message or are you ok with applying the diff in the gist manually (if you want the code)?
12:16 sergot a PR would be nice psch++
12:16 psch alright, i'll finish the issue and add a comment referencing the PR after opening that
12:21 psch hm, i must've missed this one when i search before https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742152
12:25 Sqirrel joined #perl6
12:26 sergot thanks psch++
12:34 psch sergot++: all done, PRs for both modules as well
12:34 psch sergot: i'm rather confident it is a problem upstream, which implementation can configure themselves to go around
12:35 psch this comes from 1) the debian bug mentioning python 2) your module breaking and 3) the cli-tool for ssl working
12:35 sergot hope we can fix it easily
12:37 pmurias does nqp::getcomp('JavaScript') seem a resonable way of exposing javascript access in nqp-js?
12:47 cognome joined #perl6
12:48 telex joined #perl6
12:48 psch pmurias: fwiu, nqp::getcomp gets you compilers written in nqp.  nqp-j accesses (and implements) java classes via nqp::jvminterop
12:49 psch pmurias: i'm not sure if that's a hard and fast rule or a weak convention though.
12:50 timotimo wow, my benchmark run just finished
12:52 pmurias nqp::jvmiterop is not tested anywhere :/
12:53 timotimo http://t.h8.lv/p6bench/2014-08-16-longterm_rakudo-moar.html
12:55 ggoebel1111119 joined #perl6
12:56 lizmat so, from the first 2 graphs, rakudo.moar has gotten slower ?
12:58 lizmat otherwise, pretty amazing differences between 2014.06 and 2014.07
12:58 lizmat wonder what 2014.08 will bring!
13:00 timotimo that's weird.
13:00 lizmat the first 2 ?  yes, that seems weird to me to
13:01 jnthn Those mean startup time got worse
13:01 lizmat especially the frequence 4 or 5 per second ?
13:01 timotimo could be more additions to the setting for example
13:01 lizmat ah, that could be...  :-)
13:01 lizmat should be better in 2014.08
13:01 timotimo a bit
13:01 lizmat (fixes in @*INC setup and such)
13:03 timotimo i'll run nqp benchmarks for the same versions, too
13:07 lizmat timotimo: couldn't we make the granulatity of the zero benchmark better?
13:07 timotimo no clue, honestly
13:08 timotimo i already set "enough-time=10"
13:08 lizmat value * 1000 on the vertical axes ?  and show startup time, rather than frequence ?
13:08 timotimo japhb: ^
13:08 timotimo wait, did japhb say he wanted to be alerted by the bot or does he backlog?
13:09 lizmat errands&
13:10 dalek nqp-js: 9e04ca4 | (Pawel Murias)++ | src/vm/js/ (2 files):
13:10 dalek nqp-js: Implement nqp::sub_n, nqp::isinvokable, nqp::takeclosure
13:10 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/9e04ca42be
13:10 dalek nqp-js: 46ad7cd | (Pawel Murias)++ | src/vm/js/ (2 files):
13:10 dalek nqp-js: Implement nqp::isinvokable, subs now can return values.
13:10 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/46ad7cde58
13:10 dalek nqp-js: 65650e5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:10 dalek nqp-js: Implement nqp::null.
13:10 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/65650e555a
13:10 dalek nqp-js: d4d8e56 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
13:10 dalek nqp-js: Add passing test 16 to run_tests
13:10 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/d4d8e56c2d
13:15 Pleiades` joined #perl6
13:16 ChoHag joined #perl6
13:17 ChoHag m: "foo" ~~ /o/
13:17 camelia rakudo-moar d0bf8a: ( no output )
13:17 ChoHag Bah.
13:17 ChoHag Where's the weird unicode when you need it?
13:18 ChoHag m: grammar GoodAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014\N* }; }; say GoodAntiBullshitDetector.parse("bad line\n2014: good line\n");
13:18 camelia rakudo-moar d0bf8a: OUTPUT«「bad line␤2014: good line␤」␤ line => 「bad line」␤  bullshit => 「bad line」␤ line => 「2014: good line」␤  log => 「2014: good line」␤␤»
13:18 timotimo m: say "did you mean this on? ->"
13:18 camelia rakudo-moar d0bf8a: OUTPUT«did you mean this on? ->␤»
13:19 ChoHag Bloody thing still doesn't work.
13:19 ChoHag Another try then no more spam.
13:22 ChoHag joined #perl6
13:22 ChoHag m: say "something stupid"
13:22 camelia rakudo-moar d0bf8a: OUTPUT«something stupid␤»
13:22 ChoHag Hmm.
13:22 ChoHag Well it *seems* happier.
13:23 ChoHag tmux uses the same environment for every new session as was extant when the first session was started.
13:24 ChoHag It's kind of shit, but they think it's The Right Way.
13:24 ChoHag But now my locale settings are set.
13:25 ChoHag m: grammar { rule TOP { (abc) (foo) (def) } }.parse("wtf? abcfoodefghi")
13:25 camelia rakudo-moar d0bf8a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/kxmKiC1spnâ�¤Two terms in a rowâ�¤at /tmp/kxmKiC1spn:1â�¤------> [32mammar { rule TOP { (abc) (foo) (def) } }[33mâ��[31m.parse("wtf? abcfoodefghi")[0mâ�¤    expecting any of:â�¤        statement…»
13:25 geekosaur it's more "pretty much the only thing they can do"
13:25 ChoHag Nope.
13:26 ChoHag 'tmux new-session' starts a whole new process with a whole new environment. That new environment is then thrown away and the shell which new-session eventually opens uses the old environment.
13:27 dalek nqp-js: 43b73dd | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:27 dalek nqp-js: Implement nqp::mul_n, nqp::div_n, handle floating point literals
13:27 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/43b73dd4f4
13:27 dalek nqp-js: 7a685f1 | (Pawel Murias)++ | TODO:
13:27 dalek nqp-js: Add a low hanging fruit task to TODO.
13:27 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/7a685f18da
13:46 dalek nqp-js: 4ecfc8c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:46 dalek nqp-js: Implement a bunch of nqp string ops.
13:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/4ecfc8cb1e
14:01 thou joined #perl6
14:06 prevost joined #perl6
14:08 rurban1 joined #perl6
14:13 pmurias what should nqp::say when running inside a browser?
14:13 pmurias s/when/do when/
14:17 lizmat wouldn't that be the equivalent of writing to the DOM ?
14:19 pmurias making it call document.write is one choice
14:19 pmurias it could also call console.log
14:19 lizmat I would see that more as what "note" would do, aka writing to $*ERR
14:21 pmurias there is also console.info, console.error etc.
14:21 pmurias but writing to the dom is rarely used
14:23 lizmat so if you would want to generate HTML from Perl6 in a browser, what would you do?
14:23 lizmat some Plack approach maybe ?
14:24 timotimo running a plack application in perl6-to-js'd code inside the browser seems weird :)
14:25 lizmat why?  Feels natural to me, and would allow harnassing a lot of middleware potentially
14:26 lizmat you could see it as a running proxy
14:26 Juerd If you wanted to generate html with a lot of say(), you'd need to buffer.
14:26 Juerd Because once written to the DOM, the browser will fix errors, which includes closing open tags.
14:27 lizmat hence the Plack idea
14:27 Juerd Yes, that would be much better than document.write() stuff.
14:27 lizmat I could totally see a click / mouseover / whatever generate an event in a Supply
14:28 lizmat in fact, tracing mouse movements is one of the reasons we have Supply.rotot
14:28 lizmat *rotor
14:28 lizmat .oO( why can't I just type rotot :-)
14:28 timotimo well, plack and stuff are kind of like "the browser has requested this new URL:" and plack goes ahead and gives a new page to the browser
14:29 lizmat yup, only now that happens within the browser
14:29 timotimo whereas in-browser javascript would be killed and replaced if you give the browser a new url to load
14:29 Juerd timotimo: Unless that (semi)URL begins with a #
14:29 timotimo oh, rightf, there's that, too
14:29 timotimo that's what angular.js does i believe
14:29 pmurias yes
14:29 * pmurias likes angular.js
14:29 Juerd timotimo: I use this with jQuery. <a href="#/some/other/page">...</a> and then a jQuery plugin that acts on those.
14:31 pmurias food&
14:31 timotimo ircing is a bit painful on this sluggish ssh connection >_<
14:32 lizmat afk&
14:33 pmurias the big problem with making nqp::say call console.log, is what is nqp::print supposed to do
14:34 Juerd timotimo: Get mosh :)
14:34 Juerd pmurias: Buffer things and call say when \n is reached :)
14:35 Juerd Wrong way around perhaps, but with an output mechanism that doesn't do partial lines, it may make sense
14:37 akaseki joined #perl6
14:38 treehug88 joined #perl6
14:42 zakharyas joined #perl6
14:42 timotimo Juerd: i don't own the machine my irc  client is on
15:16 [Coke] PerlJam++ #productive day!
15:31 rindolf joined #perl6
15:32 masak nwc10: http://lucumr.pocoo.org/2014/8/16/the-python-i-would-like-to-see/ -- https://news.ycombinator.com/item?id=8186008
15:32 masak it's interesting to read someone's wishlist about Python.
15:32 TimToady how much of it are doing/missing?
15:33 TimToady or not-a-bugging?
15:33 masak let's see...
15:33 masak slots -- shouldn't do it that way.
15:33 masak pyobject -- should do it better.
15:33 masak interpreter -- should redesign it.
15:33 TimToady seems a bit vague...
15:34 masak I'm summarizing, but yes, the post is short on details.
15:34 masak vtables -- not really sure what he wants here.
15:34 TimToady C++, perhaps
15:35 masak HN calls the post on being a rant without a well-defined solution.
15:35 masak though even a rant can lead somewhere good sometimes.
15:35 TimToady like about ⅓ of the Psalms :)
15:36 masak heh :)
15:37 nwc10 masak: thanks. Will read at some point after small terrorist mealtime
15:39 guru joined #perl6
15:41 * masak .oO( "[small terrorist] mealtime" or "small [terrorist mealtime]"? assuming former, with "small terrorist" bound as affectionate moniker for offspring )
15:41 klaas-janstol joined #perl6
15:44 nwc10 the latter. it's based on a comment made by someone else's mother about "not negotiating with terrorists"
15:44 nwc10 in particular in this context, I think it was hungry irrational terrorists that are in denial about being hungry
15:45 TimToady mine were more like small anarchists, except when they were being small lawyers
15:45 masak that's a cute combination :)
15:45 TimToady you think that's cute today!
15:45 TimToady well, lawyers are almost like adults...
15:46 TimToady so we encouraged it some
15:46 masak I think I would welcome the lawyers, too.
15:47 TimToady one wishes to ignite the spark of rationality, even in so ignominious a form :)
15:47 masak haha
15:47 * masak .oO( Harry Potter and the Terrorist Mealtime Incident )
15:47 moritz children are very good at pompoting fairness, especially when it works for them :-)
15:49 rurban1 joined #perl6
15:49 thou joined #perl6
15:49 masak well, fairness seems an important concept in general, but in raising kids especially.
15:49 masak I speak only from second-hand experience here, but that's how it seems to me.
15:50 nwc10 although right now the smaller one appears to be more interested in cables
15:50 nwc10 network, power, who cares? :-)
15:50 TimToady well basically, if you want your kids to turn out sane, you have to let them argue you into things successfully, every now and then, that you would not otherwise have agreed to
15:51 nwc10 masak: consistency is also important. At least, all the adults need to stick to the same rules, and not contradict each other, even if they are privately seething about someone else's decision
15:51 TimToady but a lot of parents never get it through their thick heads that it's ever a good thing to lose to your kid
15:51 TimToady I'd call that more of a "united front"
15:51 TimToady but consistency is overrated
15:52 TimToady different kids have different needs, and sometimes the fairest thing is to be unfair
15:52 nwc10 yes, your description is better/more accurate
15:52 TimToady but a reflex of "What did your mother say about that?" is a good one
15:53 * masak scribbles frantically
15:53 TimToady at least half your kids will learn how to play you off against each other, if you let 'em :)
15:54 TimToady if you want your kids to have a large vocabulary, go ahead and use the big words, then explain it in simpler words
15:54 TimToady Glo and I did a lot of such explaining for each other
15:55 masak oh, that one I knew already. my parents always used big words with me, and I loved it.
15:56 TimToady it's okay to show your kids you're angry occasionally, or they'll think you don't actually care
15:56 masak "the department of ecclesiastics" is one long compound word in Swedish. my father used to ask me to repeat it, to see how far I got through it.
15:56 TimToady in a controlled sort of way, of course
15:56 masak sure.
15:57 ChoHag $daughter has learned extremely fast by, imo, not being coddled by me.
15:57 TimToady funny how clerics like those long words: antidisestablishmentarianism
15:58 ChoHag Her life so far has been *just* hard enough that she's forced to grow constantly.
15:58 ChoHag Seems to be working extremely well.
15:58 masak TimToady: I guess that's English's "famous long compound".
15:58 TimToady yeah, it's the Official Longest Word :)
15:59 ChoHag She is not shielded from real life, just protected frmo it.
15:59 BenGoldberg joined #perl6
15:59 TimToady ChoHag: neverthess, we all find some way to inflict a certain amount of dysfunction on our kids
16:00 TimToady *theless
16:00 ChoHag It's only fair.
16:00 * TimToady snerks.
16:01 masak at least it's our dysfunction, and nobody else's.
16:01 j4jackj joined #perl6
16:01 TimToady well, you hope
16:01 masak right.
16:01 masak guess that shouldn't be an end in itself, either.
16:02 * BenGoldberg thought that disfunction was infliced by kids upon parents.
16:02 BenGoldberg s/infliced/inflicted/; #can't spell before coffee
16:02 TimToady it's really an impossible task, because you will simultaneously be overprotective and underprotective
16:03 TimToady but mostly, you have to treat them like people, not like experimental animals
16:03 BenGoldberg That sounds like advice you'd give to BBC's Sherlock ;)
16:05 TimToady no, I'd tell him to not reproduce :)
16:06 TimToady well, not unless he fosters them out to John and Mary
16:07 BenGoldberg As a fanfiction addict, I've read a couple of stories where he adopts :)
16:10 TimToady well, to get things back on topic, it's amazing how similar raising kids is to designing a computer language :)
16:10 TimToady maximum freedom within the constraints, and all that
16:11 TimToady encouragement of downstream creativity
16:11 TimToady hoping you'll be supported in your old age :)
16:11 BenGoldberg And highly variable time until completion, for some definition of completion :)
16:11 masak TimToady: haha
16:13 masak TimToady: as I grow ever closer to becoming a parent, I'm struck by how much of my parents' parenting consisted of explaining how to be a good parent. to me, that vibes both with your "downstream creativity" thing, and with Alan Kay's explanation of objects as being "small computers", each one no less powerful than the whole machine.
16:16 diakopter Father Carl
16:18 timotimo on a totally unrelated note: do we have proper support for udp sockets? like recvfrom and such?
16:18 jnthn Don't think so
16:19 TimToady Do think not
16:19 timotimo :\
16:20 jnthn Would make another nice MHF project :)
16:20 TimToady we're gonna have to put MHF in the glossary soon...
16:21 jnthn At least that's an LHF :P
16:23 pmurias MHF?
16:23 TimToady see LHF
16:24 pmurias medium hanging fruit?
16:24 TimToady or mid, or medial, or some such
16:24 jnthn Or Mild Headache Felt
16:24 jnthn :)
16:24 TimToady that would be Low Headache Felt though
16:24 dalek nqp-js: 30bd2d2 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
16:24 dalek nqp-js: Implement cmp_n,cmp_s,cmp_i.
16:25 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/30bd2d2f73
16:25 dalek nqp-js: 7e591f0 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
16:25 dalek nqp-js: Add more coersion to and from $T_BOOL.
16:25 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/7e591f039e
16:25 dalek nqp-js: 37b9db3 | (Pawel Murias)++ | / (7 files):
16:25 dalek nqp-js: Add a simple example of running the compiled js in the browser.
16:25 dalek nqp-js:
16:25 dalek nqp-js: nqp::say will call console.log when running in the browser.
16:25 dalek nqp-js: Create a simple loader for webpack, which compiles nqp code to js.
16:25 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/37b9db34cb
16:26 pmurias nqp-js has now webpack support ;)
16:26 * TimToady is thinking of reserving ; inside of circumfix [] and () for now, until we decide how monadically contextual to make it
16:27 TimToady if ; is going to be sequence points inside blocks, but dimensional separators inside subscripts, it's not clear yet where the one leave off and the other begins
16:29 TimToady or if there are other uses for ; in context
16:29 TimToady note also the loop (my $i = 1; $i < 100; $i++) usage, where it's essentially just three different thunks to be applied at different times
16:31 TimToady one can even view a block as a series of thunks separated by ; that we just happen to call in order
16:31 TimToady though I wouldn't suggest implementing it that way :)
16:31 jnthn Was gonna say... :P
16:32 * TimToady is getting a feeling for when the kids are about to panic :)
16:38 TimToady I think that if we change [;;] and (;;) to be lollipopish, we carry over the policy that a bare block in such a sequence is executed immediately, just as it is in a more statement sequence, if it's the only thing in a pseudostatement
16:38 TimToady need a better term for one of the pieces of a semilist...
16:38 pmurias masak: when running on the browser side what would you like nqp::say to do?
16:39 TimToady so, for example, [my $x; $_ * $x++ for @foo] would not be good, but [{my $x; $_ * $x++ for @foo}] would be how you'd embed multiple statements as a pseudostatement in a possibly dimensional []
16:40 TimToady it's either that or force people to write do {}, but that's kinda ugly
16:40 TimToady so I think immediate blocks can work for one of the dimensions of a [;;] or (;;) lol
16:41 jnthn TimToady: We want ; to be a dimension separator, and so treating it as statement sep like today is a problem, iiuc?
16:42 TimToady in [] and (), yes, and it seems we could tweak it the other way without too much bother
16:42 TimToady and ; is not heavily used inside [] or () yet
16:42 TimToady a deprecation cycle might be in order though
16:42 jnthn It doesn't break the common single-statement case of list comprehension?
16:42 TimToady no
16:43 TimToady you don't get a lol unless there is a ;
16:43 TimToady and basically [;;] becomes itemized lol, (;;) parcelized
16:43 jnthn *nod*
16:44 jnthn Makes sense, and consistent with subscript meaning of it too
16:44 TimToady and we can probably warn longterm if we see a my decl as the left list
16:45 TimToady a cursory glance did not see any use of that kind of semicolon in our corpus
16:45 hoelzro morning #perl6
16:45 TimToady I think there may be one or two uses of it on RC
16:45 TimToady o/
16:47 jnthn o/ hoelzro
16:48 dalek roast/S26-WHY: 487434b | (Rob Hoelz)++ | S26-documentation/why- (3 files):
16:48 dalek roast/S26-WHY: Skip constants in S26 tests for now
16:48 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/487434b1c7
16:48 dalek roast/S26-WHY: b56a35b | (Rob Hoelz)++ | S26-documentation/why- (3 files):
16:48 dalek roast/S26-WHY: Add tests for S26 decl comments on variables
16:48 dalek roast/S26-WHY:
16:48 dalek roast/S26-WHY: They're NYI for now, and marked as such.  They should probably
16:48 dalek roast/S26-WHY: be tested for each scope type (my, our, state, temp) and container
16:48 dalek roast/S26-WHY: type ($ @ % &)
16:48 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/b56a35bb0f
16:48 dalek roast/S26-WHY: 9fdb1e4 | (Rob Hoelz)++ | S26-TODO.md:
16:48 dalek roast/S26-WHY: Mark constants/variable decl comments as NYI in the TOOD
16:48 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/9fdb1e4640
16:48 hoelzro ahoy TimToady, jnthn
16:53 japhb timotimo: I see a highlight from you.  So that I don't have to backlog a whole bunch, can you point me to the start of the section I need to think about?
16:53 masak pmurias: I *think* I'd expect $*OUT and $*ERR to be tied to console.log (or the moral equivalent on browsers that don't have it).
16:54 masak pmurias: or, flipping the question around, I'd expect to have some way to reach console.log, and if I didn't know what it was, `say` would probably be the first thing I tried.
16:54 * TimToady is trying to think of a better term than "pseudostatement" under the monadic view: sublist, semistate, statelet, semithunk, clause, action, generator, computation, effect, statement, oh wait...
16:55 timotimo japhb: lizmat wanted more precise data for the first benchmarks, zero and hello
16:55 TimToady maybe we should call the semiquavers :)
16:56 TimToady *them
16:56 TimToady and a lololol would have hemisemidemiquavers
16:57 klaas-janstol joined #perl6
16:58 raydiak good morning, #perl6 o/
16:58 japhb timotimo: Yes, I prefer bot ping, since I can't keep up with the backlog for this channel *and* write Perl 6 code.  Since it's one or the other, actually writing code wins.  :-)
16:58 timotimo japhb: OK :)
16:58 jnthn decision++
16:58 TimToady we can't have that sort of productivity around here! :P
16:59 japhb lizmat: I had been trying to maintain the invariant that higher on the graphs is always better.  If I go with time instead of write,
16:59 japhb *rate
16:59 japhb then lower is better, which seemed possibly confusing.
16:59 chenryn joined #perl6
16:59 timotimo btw: http://t.h8.lv/p6bench/2014-08-16-longterm_rakudo-moar.html
16:59 TimToady invert the graph?
17:00 japhb That said, if all bar charts go one way, and all plots the other, at least that would be a rule I could state plainly.  Still seems off though.
17:00 japhb TimToady: Yeah, I considered that thought.
17:00 timotimo phoronix always has a little triangle pointing in the direction that is "better"
17:00 timotimo and i seem to recall there is also text saying what the graph has and which direction is better
17:01 TimToady doubtless they have a patent on it :)
17:02 japhb timotimo: re: the longterm plots, it is *so* nice to see how much faster 2014.07 is.  Too bad that's almost entirely on microbenchmarks.  :-(
17:03 timotimo yes
17:03 japhb TimToady: Is phoronix known for that sort of thing?
17:03 * TimToady has no idea
17:04 timotimo don't think so
17:04 TimToady it was more of a comment on the sad state of patent law
17:04 japhb true enough
17:05 jnap joined #perl6
17:05 TimToady I think the microbenchmarks tend to stay in cache, whereas real code doesn't (yet)
17:06 guru joined #perl6
17:06 TimToady a large part of the list refactor is going to be to figure out how much we can be eager by default
17:06 timotimo oh? huh.
17:08 TimToady or at least batchy
17:10 pmurias japhb: are any of the plot not a microbenchmark?
17:11 TimToady the rc-* ones are larger
17:15 TimToady interesting that the only place we've had a bit of slowdown is in native 2d indices
17:15 TimToady well, and maybe a hair on 9-billion-names
17:28 japhb TimToady: I believe the loop correctness fixes came after the 2014.07 release, so having nom on there as well would show any regressions since then.
17:29 japhb pmurias: Yeah, TimToady is right.  Also json parsing.
17:30 japhb pmurias: We really need more benchmarks.  If you'd like to add some, I'd be happy to give you a commit bit.  :-)
17:30 timotimo are there benchmarks we can throw out at some point? %)
17:31 japhb timotimo: Maybe.  For now, I'm still seeing optimization work benefitting from the microbenchmarks
17:31 timotimo OK :)
17:32 japhb (I do actually try to pay attention to how it's getting used.  :-)
17:33 pmurias japhb: currently I'm working on getting my rewriten nqp-js to run the existing ones
17:34 timotimo :)
17:35 anaeem1 joined #perl6
17:36 zakharyas joined #perl6
17:38 thou joined #perl6
17:39 anaeem1 joined #perl6
17:41 japhb pmurias: Awesome.  :-)
17:41 timotimo huh, nqp-js is getting a rewrite?
17:42 japhb timotimo: Something for your next p6weekly.  :-)
17:44 FROGGS[mobile] timotimo: btw, the Perl 6 version of v5 passes nearly 10% of the tests the nqp version passes (about 8000)
17:44 FROGGS[mobile] steadily growing
17:45 timotimo 10% of how many %? :)
17:45 timotimo that doesn't sound so encouraging :D
17:45 FROGGS[mobile] well, now there are only minor issues...
17:46 cooper- joined #perl6
17:46 FROGGS[mobile] like a nqp::p6bool here and a .list there...
17:47 FROGGS[mobile] porting EXPR really was pain, and that is past :o)
17:47 timotimo OK :)
17:48 pmurias timotimo: I'm making nqp-js emit much better code, emit sourcemaps, removing old hacks (and adding new ones ;)
17:51 dalek roast/S26-WHY: a02da85 | (Rob Hoelz)++ | S26-documentation/why-trailing.t:
17:51 dalek roast/S26-WHY: Add a multi-line decl test for trailing docs
17:51 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/a02da85f7d
17:51 timotimo OK :)
17:54 pmurias for example the old code was ignoring $*WANT and just casting all the types at runtime
17:59 anaeem1_ joined #perl6
17:59 hoelzro there's no specification for getting the candidates of a role group, is there?
17:59 hoelzro ex. role Boxer {} ; Boxer.HOW # ParametricRoleGroupHOW
18:00 hoelzro but I would like the ParametricRoleHOW that represents Boxer[]
18:10 jnthn hoelzro: You can introspect the group iirc
18:11 jnthn hmm
18:11 BenGoldberg m: (role Boxer {}).HOW.say;
18:11 camelia rakudo-moar d0bf8a: OUTPUT«Perl6::Metamodel::ParametricRoleHOW.new()␤»
18:11 jnthn no, we're missing an introspection method for that. D'oh.
18:12 hoelzro yeah, I didn't see one =/
18:12 hoelzro I'll mark the role WHY tests as TODO, then
18:12 jnthn Well, we can add one easy enough
18:13 hoelzro true
18:13 jnthn method possibilities($obj) { nqp::clone(@!possibilities) }
18:13 jnthn May want a nicer name
18:13 hoelzro I'm trying to avoid other changes to Rakudo for the S26 stuff
18:13 jnthn .oO( groupies :) )
18:13 hoelzro heh
18:13 hoelzro trying to come up with something that I can merge in
18:13 jnthn Well, then put the above in master and merge :)
18:13 hoelzro heh
18:14 hoelzro when's 2014.08 supposed to go out?
18:14 jnthn I think it should be there anyway.
18:14 jnthn Thu
18:14 hoelzro heh
18:14 hoelzro one day too late!
18:14 hoelzro I'm going to a project night on Thursday my TZ
18:14 hoelzro and I was hoping to finish the S26 work then and there
18:14 * hoelzro knocks on wood
18:15 hoelzro jnthn: what about candidates? (ala multis)
18:15 jnthn hoelzro: That could work well given that's how it works anyway
18:16 anaeem1 joined #perl6
18:16 jnthn Should probably rename other bits in there to candidates too
18:16 jnthn Though if you don't want to take that detour just add it as candidates and I can pick off the rename at some point
18:17 hoelzro I could just do it right now =)
18:17 hoelzro on nom
18:17 hoelzro I'll run a quick spectest with current nom, so I can see if I break anything =)
18:18 pmurias jnthn: :$want can be undefined in the as_* methods in the QAST::Compiler
18:18 pmurias jnthn: when should it be the case?
18:19 jnthn pmurias: When the calling thing doesn't have a context that it'd prefer
18:19 jnthn pmurias: For example, if ... { }. The ... could be any kind of value; the code we generate will handle what we get, but we don't mind which it is.
18:21 pmurias are there a lot of such places? I think I might attempt to make :$want mandatory in the javascript QAST::Compiler
18:22 pmurias for the if ... {} I have a special boolean thing context
18:23 jnthn Heh, I'd been pondering a boolean context thingy in the Moar one too :)
18:23 jnthn I'm not all that sure how often it is, but I suspect that isn't the only case.
18:23 pmurias I use the boolean context so that I can have if (foo == 123) {...} instead of if ((foo == 123) ? 1 : 0) {...}
18:23 kaare__ joined #perl6
18:23 jnthn *nod*
18:23 jnthn Yeah, it makes sense.
18:24 jnthn I want it for p6bool elimination...
18:24 jnthn I guess the easiest way to see how common it is, would just be to instrument QASTCompilerMAST and see what kinds of nodes show up when it's undefined
18:28 dalek nqp-js: 828a4c5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
18:28 dalek nqp-js: More progress towards running test 59.
18:28 dalek nqp-js:
18:28 dalek nqp-js: Handle QAST::Var's with positional scopes, implement nqp::elems, nqp::split.
18:28 dalek nqp-js: Make the use of :$want in as_js mandatory.
18:28 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/828a4c58dc
18:35 molaf_ joined #perl6
18:35 dalek nqp-js: 55bdb9a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
18:35 dalek nqp-js: Implement nqp::ceil_n, nqp::floor_n, nqp::abs_n.
18:35 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/55bdb9a994
18:37 hoelzro $multi.candidates isn't spec'd, is it?
18:37 hoelzro I'm just wondering if I should add the new ParametricRoleGroupHOW.candidates method to the spec
18:41 hoelzro grr
18:41 hoelzro it doesn't seem like this will be as easy as I'd hoped
18:41 hoelzro No such method 'candidates' for invocant of type 'Perl6::Metamodel::ClassHOW'
18:41 * hoelzro forgot about the punning that happens
18:42 hoelzro I had this problem with WHY too
18:42 hoelzro and I was wondering if WHERE should avoid the pun too
18:47 hoelzro I thought about adding WHY/WHERE to the RolePunning exceptions method, but I'm not sure if that would be a good idea
18:47 hoelzro HOW should probably avoid the pun
18:48 hoelzro actually, all of those kooky methods should
18:48 hoelzro </braindump>
18:48 hoelzro shower &
18:50 FROGGS perl6-m -Ilib -e 'use v5; $a = 42; sub foo { say $a; my $a = 21; say $a }; foo()'
18:50 FROGGS 42
18:50 FROGGS 21
18:50 FROGGS \o/
18:50 FROGGS who wants some scary Perl 5? :D
18:51 BenGoldberg Sure, why not?
19:00 dalek nqp-js: cf3f7f1 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
19:00 dalek nqp-js: Remove debugging statements.
19:00 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/cf3f7f1298
19:00 dalek nqp-js: 1ea1882 | (Pawel Murias)++ | src/vm/js/ (2 files):
19:00 dalek nqp-js: Implement nqp::islist and boolification of list.
19:00 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/1ea1882582
19:01 psch scary Perl 5 \o/ FROGGS++
19:10 hoelzro how does Boxer.HOW.candidates(Boxer) differ from Boxer.^candidates?
19:11 timotimo doesn't
19:12 timotimo $foo.^foobar is short for $foo.HOW.foobar($foo)
19:17 Colby` joined #perl6
19:18 hoelzro hmm
19:18 hoelzro well, the former works for my new method
19:18 hoelzro but the latter doesn't o_O
19:19 timotimo does your method take the instance as first argument?
19:19 hoelzro mhmm
19:26 thou joined #perl6
19:37 iarna joined #perl6
19:46 hoelzro does $obj.^meth desugar directly into $obj.HOW.meth($obj)?
19:47 jnthn No, sadly
19:47 hoelzro hmm
19:47 jnthn Into .dispatch:<^>
19:47 jnthn I don't really like that much
19:47 hoelzro well, I could make the test do $role.HOW.candidates($role) for now
19:47 jnthn I mean, it was expedient to make it work that way...
19:48 jnthn Yeah, I'd do that for now.
19:48 hoelzro jnthn: do you have any ideas about the punning stuff I was talking about above?
19:48 jnthn The accidental role punning .^ causes is a bug...
19:48 jnthn I *think* that covers what you were asking?
19:49 ventica joined #perl6
19:50 ClarusCogitatio_ joined #perl6
19:50 cooper joined #perl6
19:50 bowtie_ joined #perl6
19:50 klapperl joined #perl6
19:50 FROGGS joined #perl6
19:50 sergot joined #perl6
19:50 firnsy joined #perl6
19:50 mattp_ joined #perl6
19:50 ashleydev joined #perl6
19:50 anocelot joined #perl6
19:50 nhayashi joined #perl6
19:50 avuserow joined #perl6
19:50 TimToady joined #perl6
19:50 awwaiid joined #perl6
19:50 ilogger2 joined #perl6
19:50 thilp joined #perl6
19:51 23LAA80NI joined #perl6
19:51 hoelzro jnthn: well, that
19:51 timotimo japhb: are you still attentive?
19:51 nhayashi joined #perl6
19:51 hoelzro along with WHY and WHERE
19:51 hoelzro I find it odd that they pun
19:52 timotimo .tell japhb it'd be kinda cool to have a way to tell perl6-bench to run all tests exactly once at a somewhat high workload number, so that i can collect a huge jit log or spesh logs or something
19:52 yoleaux timotimo: I'll pass your message to japhb.
19:53 BenGoldberg joined #perl6
19:53 Rotwang joined #perl6
19:53 xragnar joined #perl6
19:53 BooK joined #perl6
19:53 eternaleye joined #perl6
19:53 lue joined #perl6
19:53 baest joined #perl6
19:53 japhb timotimo: I'm here now
19:53 klaas-janstol joined #perl6
19:53 mr-foobar joined #perl6
19:53 xinming joined #perl6
19:53 colomon joined #perl6
19:53 MilkmanDan joined #perl6
19:53 daxim joined #perl6
19:53 sjn joined #perl6
19:53 muraiki joined #perl6
19:53 robinsmidsrod joined #perl6
19:53 ingy joined #perl6
19:53 retupmoca joined #perl6
19:53 yoleaux 19:52Z <timotimo> japhb: it'd be kinda cool to have a way to tell perl6-bench to run all tests exactly once at a somewhat high workload number, so that i can collect a huge jit log or spesh logs or something
19:54 japhb Oh now that's an interesting idea.
19:54 timotimo i'm using --runs=1 now, but that's not good enough, the log file is closing in on 2gb :)
19:54 telex joined #perl6
19:54 timotimo and most of it will just be duplicated data
19:54 japhb Add a github request for that.  (I still haven't had the tuits to clean up the TODO, as I'm currently deep in something else.)
19:55 japhb nodnod
19:57 psch m: sub foo($a, $) { }; say &foo.signature.params>>.name # uhh...
19:57 camelia rakudo-moar d0bf8a: OUTPUT«(signal )»
19:58 jnthn ugh
19:58 jnthn Looks like some unhandled null
19:58 psch m: sub foo($a, $b) { }; say &foo.signature.params>>.name
19:58 camelia rakudo-moar d0bf8a: OUTPUT«$a $b␤»
19:59 psch jnthn: that's linked to #69492 as well i think
19:59 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=69492
19:59 psch or rather, a consequence of it
19:59 psch not the issue directly, but the name of any anon param breaks
20:00 BenGoldberg Speaking of anon-things breaking:
20:01 BenGoldberg r: my $f = class { }; $f.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); $f.new.bar;
20:01 ClarusCogitatio joined #perl6
20:01 camelia rakudo-moar d0bf8a: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤  in block  at /tmp/tmpfile:1␤␤»
20:01 camelia ..rakudo-{parrot,jvm} d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤  in block  at /tmp/tmpfile:1␤␤»
20:02 timotimo japhb: is there a better trick to getting the number of runs per test down?
20:02 timotimo --enough-time=0.1?
20:06 timotimo .o(though, is that enough to kick off spesh and the jit
20:07 araujo joined #perl6
20:13 * psch sleeps &
20:14 FROGGS gnight psch
20:15 rindolf joined #perl6
20:16 j4jackj joined #perl6
20:17 FROGGS r: my $f = class { }; $f.^add_fallback(-> $obj, $name { True },-> $obj, $name { -> $ { say "doesn't matter" } }); $f.new.bar;
20:17 camelia rakudo-{parrot,moar} d0bf8a: OUTPUT«doesn't matter␤»
20:17 camelia ..rakudo-jvm d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤  in block  at /tmp/tmpfile:1␤␤»
20:17 timotimo http://www.reddit.com/r/perl6/comments/2cozob/week_31_rakudos_speedram_performance_improves_at/cjs4rpv - links to my benchmarks
20:17 cibs joined #perl6
20:20 jnthn FROGGS: Got a fix for that in Moar locally
20:21 jnthn Also for the psch segv
20:22 FROGGS hmmmm, that sounds like I should retest JSON::RPC after your patches...
20:29 jnthn bah, I forgot a return, which made weird bugs, so retesting...
20:32 pmurias joined #perl6
20:35 dalek rakudo/nom: 95da918 | jnthn++ | src/core/Parameter.pm:
20:35 dalek rakudo/nom: Missing null check on param name introspection.
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95da91859c
20:41 haroldwu joined #perl6
20:47 pmurias if I create a branch localy, how do I push it to my github repo?
20:48 FROGGS pmurias: does origin point to your repo?
20:49 FROGGS if not:
20:49 FROGGS git remote add pmurias <url to your repo>
20:50 FROGGS git push pmurias <branch name>
20:51 dalek nqp-js/gh-pages: 122e491 | (Pawel Murias)++ | index.html:
20:51 dalek nqp-js/gh-pages: Initial homepage.
20:51 dalek nqp-js/gh-pages: review: https://github.com/pmurias/nqp-js/commit/122e491a1d
20:56 dalek nqp-js/gh-pages: 9ff6657 | (Pawel Murias)++ | / (2 files):
20:56 dalek nqp-js/gh-pages: Put an interactive example on the homepage.
20:56 dalek nqp-js/gh-pages: review: https://github.com/pmurias/nqp-js/commit/9ff6657aa2
20:57 pmurias do we have anything to turn nqp code into syntax highlighted html?
20:57 diakopter nqp-js?
20:57 diakopter (kidding.)
20:58 diakopter http://pmurias.github.io/nqp-js/ <- is this right?
20:58 dalek nqp-js/gh-pages: 0657204 | (Pawel Murias)++ | / (2 files):
20:58 dalek nqp-js/gh-pages: Link to the nqp code for the example.
20:58 dalek nqp-js/gh-pages: review: https://github.com/pmurias/nqp-js/commit/0657204a34
20:59 Possum joined #perl6
21:01 dalek nqp-js/gh-pages: ad5457f | (Pawel Murias)++ | index.html:
21:01 dalek nqp-js/gh-pages: Put the link to the example code in a better place.
21:01 dalek nqp-js/gh-pages: review: https://github.com/pmurias/nqp-js/commit/ad5457f1e5
21:02 pmurias diakopter: yes that's the correct url
21:02 pmurias diakopter: it should allow you to draw black and white circles
21:03 FROGGS pmurias: it works on my box
21:04 FROGGS (firefox)
21:11 pmurias it's not really a proper homepages yet, just a way to share a simple example
21:13 pmurias diakopter: you were asking what nqp-js is or if that page was working correctly?
21:13 FROGGS I think he made a joke that nqp-js could be used for syntax highlighting :o)
21:14 thou joined #perl6
21:15 japhb timotimo: Saw your highlight.  Are you asking to see fewer steps in the scaling (so fewer total runs)?
21:17 jnthn pmurias: ooh, cool :)
21:17 timotimo japhb: no, just have fewer executions of the perl6-m binary
21:17 * japhb has been considering an option to bump the starting scale up a few steps, for machines that are fast enough that the first few runs are always going to be in the noise
21:17 timotimo because each will generate pretty much the same jit log for start-up
21:18 japhb Well, we can reduce the number of runs per scale
21:18 japhb (From 2 to 1, IIRC)
21:19 timotimo right, i set --runs=1
21:19 timotimo but it'd also be nice to have a run that starts at a higher scale, so that the "body" of the benchmark actually gets considered hot enough for jitting
21:19 timotimo otherwise we'll just see jit stuff for startup, but none for the actual benchmark in question
21:20 japhb Right, that's what I was talking about a couple minutes ago.
21:21 timotimo oh
21:22 Mouq joined #perl6
21:22 japhb I was basically thinking you could say your system was, say, 10x faster than the "average" computer, you could say that, and it would alter the starting scale appropriately, which would cut off all the runs that aren't long enough to have measurable post-JIT time.
21:23 timotimo pmurias: i have to tell my chrome to "load unsafe script" to make that work
21:28 masak could that be a same-origin policy thing?
21:28 timotimo maybe
21:32 pmurias does chrome say anything else?
21:34 dalek nqp-js/gh-pages: 35025bc | (Pawel Murias)++ | index.html:
21:34 dalek nqp-js/gh-pages: Remove http:// prefix from cdn url.
21:34 dalek nqp-js/gh-pages: review: https://github.com/pmurias/nqp-js/commit/35025bc44c
21:35 pmurias timotimo: does the problem persist?
21:37 timotimo now it works just fine
21:47 Possum joined #perl6
21:49 rurban1 joined #perl6
21:54 mr-foobar joined #perl6
22:02 rurban2 joined #perl6
22:03 dalek roast: 1d0923d | (Rob Hoelz)++ | S14-roles/parameterized-basic.t:
22:03 dalek roast: Add test for new candidates method on ParametricRoleGroupHOW
22:03 dalek roast: review: https://github.com/perl6/roast/commit/1d0923db80
22:03 dalek rakudo/nom: 198f51b | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
22:03 dalek rakudo/nom: Rename possibilities to candidates for role group candidates
22:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/198f51be79
22:03 dalek rakudo/nom: 9e475e2 | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
22:03 dalek rakudo/nom: Add candidates method to ParametricRoleGroupHOW
22:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9e475e2cfc
22:10 rurban1 joined #perl6
22:22 rurban2 joined #perl6
22:28 hoelzro I'm guessing the reason that the role is punned is because dispatch:<.^> is a method call?
22:29 jnthn Yes
22:31 Psyche^_ joined #perl6
22:35 rurban1 joined #perl6
22:55 j4jackj "punned"
22:55 j4jackj i didn't know this was a thing
22:55 j4jackj o.o
22:55 masak for some reason, here in Perl 6 land, "punned" almost always means "the role pretends it's a class".
22:55 masak out in the wider world, it just means "this type pretends to be that type".
22:57 masak e.g. type punning is what makes `if @things { ... }` not complain that it got an array, not a bool.
22:58 jnthn The role and the class that composes exactly that role and inherits from Any *are* different types.
22:58 ventica2 joined #perl6
22:59 masak not contesting that, at all.
22:59 masak just saying we've taken to using the term in a very restricted context.
23:00 jnthn True; I guess 'cus we don't tend to think of the other case as anything unusual :)
23:01 masak I find I use role->class punning in exactly one use case: when I want both the parametricity of roles, and instantiation of classes.
23:01 masak if classes were parametric, or if roles could be instantiated, I'd happily use that ;)
23:02 thou joined #perl6
23:04 masak 'night, #perl6
23:11 Akagi201_ joined #perl6
23:18 japhb Using r-j, I'm finding something a bit wierd.  I have a file Clusters.pm that has nothing but static lists (constant @LIST_A is export = ...) of server clusters in it, some of which are derived by grep/map from earlier lists (constant @LIST_B is export = @LIST_A.grep({ .type ~~ BAR}) )
23:19 japhb If I 'use Clusters;' from my main app, and try to search one of the later lists ( @LIST_B.first({ ... }) ), I get a crashy crash of various sorts.  If at the end of Cluster.pm, I 'say @LIST_B.perl', then (aside from the noise at app startup), it works.
23:20 japhb So ... I'm guessing a serialization and/or eagerness problem, but I'm not sure where to look from here.
23:20 jnthn japhb: On r-j only?
23:20 jnthn Yes, I'd guess one of those two also.
23:20 japhb That's the only one I've tried, I was doing some heavy threading work.
23:20 japhb Want me to try with r-m?
23:21 jnthn Well, I'm guessing it goes boom early-ish...
23:21 jnthn Does putting .eager on your constant decls also help?
23:21 TimToady does = eager grep help?
23:22 jnthn I know that our list internals don't handle two threads trying to reify very gracefully.
23:22 japhb The architecture is that MAIN() starts a couple threads that go off and spawn a bunch more tasks that do the actual work.  The crash is usually after the main threads have been started, while the subtasks are trying to do their work.
23:22 jnthn I've not done a lot about it 'cus dealing with that was one of the pmichaud++ list refactor jobs anyway; I remember talking about that a bit.
23:22 japhb OK, I'll but eagers in the Clusters.pm definitions
23:23 Mouq m: my @a; @a[2;3] = 42; say @a.perl # Doesn't autoviv :|
23:23 camelia rakudo-moar 9e475e: OUTPUT«Array.new()␤»
23:24 japhb Yeah, works perfectly if Clusters.pm contains 'constant @LIST_B is export = eager @LIST_A.grep: ...'
23:25 japhb I thought list assignment (as opposed to bind) was supposed to be eager?  Or is constant definition always binding?
23:26 TimToady Mouq: I'm trying to figure out where [;;] currently sinks the first n-1 entries from a semilist, and failing...
23:26 jnthn Always binding at the moment.
23:26 japhb Is that spec, or just implementation?
23:26 TimToady it's spec
23:26 japhb Oh, hmmm.  I'll have to keep that in mind.
23:26 TimToady pseudoassignment depends on the declarator
23:27 TimToady pseudoassignment to 'has' and 'state' have their own idiosyncracies
23:27 Mouq TimToady: does this help? https://github.com/rakudo/rakudo/commit/1d2bb6206a39e58f133afccecdf3292b820d2fd7
23:28 japhb TimToady: So is the intent that I should do 'constant @FOO = eager @BAR.grep' or is that where I should be changing to e.g. 'our @FOO = @BAR.grep'?
23:28 TimToady I saw that part, but that should just leave the semilist as a semilist; I don't see where the sink annotations happen
23:28 TimToady m: [42; 43]
23:28 camelia rakudo-moar 9e475e: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
23:29 TimToady but that's parsed with semilist, and doesn't do the processing that statementlist does
23:29 TimToady maybe I can trace it back from the warning end
23:30 jnthn I believe the warning is spat out in src/Perl6/Optimizer
23:31 Mouq https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Optimizer.nqp#L1155
23:31 TimToady Mouq: I dunno if you read the backlog, but I'm definitely intending to shove [;;] and (;;) in the direction of lol
23:31 TimToady and trying to decide if we need a deprecation first
23:31 Mouq TimToady: zip(@a;@b;@c) too?
23:32 TimToady hopefully we get that too
23:32 TimToady though named args are weird
23:32 Mouq ew...
23:32 TimToady zip(@a;@b;@c) :carefully
23:32 TimToady I guess that would work...
23:33 Mouq maybe they can float to the top somehow?
23:33 TimToady or just steal them from the sublists
23:34 kst joined #perl6
23:35 * TimToady now imagines an S operator that sinks its self side and returns its right
23:35 TimToady as a variant on the S metaoperator
23:36 TimToady but then I notice that semicolon also begins with s
23:36 TimToady which is a weird coincidence
23:36 jnthn Ain't that what ; does in semilists now? ;)
23:36 TimToady yes, be we wanna steal it
23:36 TimToady *but
23:37 TimToady so S would a list infix precedence ; or so :)
23:37 TimToady or we could use $ and confuse the Haskellers completely :)
23:37 jnthn I've no idea how this would look, but if we're pondering an operator that does what ; does today, maybe it's the other thing that wants another syntax. But ; is the natural thing for multi-dim, so...hmm :)
23:37 TimToady yeah, ; is the right sze
23:37 TimToady *i
23:38 TimToady I looked for something else, but nothing looked decent
23:40 fling joined #perl6
23:40 TimToady and sunk statements are so non-FP in the first place...
23:41 TimToady if we added S, I'd just tell everyone it's the C comma operator, I suppose
23:42 TimToady arguably it should be C then...
23:42 TimToady but then the fortran programmers will expect a comment
23:43 TimToady and we already have an S metaop specced for sequential, if NYI
23:43 TimToady it would just default to C comma operator instead of the Perl comma operator
23:44 silug joined #perl6
23:46 TimToady Mouq: you don't happen to recall what blew up when you tried to LoLify semilist, do you?
23:47 Mouq TimToady: No, sorry. Is it proving to be harder than a drop-in change?
23:49 BenGoldberg joined #perl6
23:50 TimToady haven't tried yet, still scoping it out to try to understand
23:50 TimToady which is hard for a geezer like me :)
23:51 TimToady Not all of my stupidity is feigned.  :)
23:53 Mouq TimToady: Surrre ;) I'm too dumb myself for scoping things out -- I just bang my head against it until it works. Like this pod-table branch which, it seems, requires a lot of head-banging
23:54 TimToady yes, being stubborn helps compensate :)
23:56 Mouq m: sub infix:<,,> (**@l) is looser(&[,]) { lol |@l.map({$_ ~~ LoL ?? .flat !! $_}) }; say (1 ,, 2 ,, 3, 4).perl
23:56 camelia rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))␤»
23:57 jnthn m: sub infix:<,,> (**@l) is looser(&[,]) is assoc('list') { lol |@l.map({$_ ~~ LoL?? .flat !! $_}) }; say (1 ,, 2 ,, 3, 4).perl
23:57 camelia rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))␤»
23:58 jnthn m: sub infix:<,,> (**@l) is looser(&[,]) is assoc('list') { @l }; say (1 ,, 2 ,, 3, 4).perl
23:58 camelia rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))␤»
23:58 Mouq jnthn++
23:58 iarna joined #perl6
23:59 lue I like the look of the double comma, in a way.

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

Perl 6 | Reference Documentation | Rakudo