»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 Ven left, dayangkun joined 00:13 klaas-janstol joined
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:16 klaas-janstol left 00:17 dayangkun left 00:20 iarna left 00:21 ajr_ left
dalek kudo/HyperWat: b0b24c9 | Mouq++ | src/core/traits.pm:
Add $.attr handles * and $attr handles ** to spec

  'handles *' should only delegate if the $.attr can do the method.
  'handles **' should always try to delegate to $.attr. This allows for
something like:
   class Bar { method baz { 42 } }
   class Foo {
   has Bar $.bar handles *;
   has @.bax handles **;
   }
So that Foo.baz will be delegated to $.bar, but anything else will be delegated to @.bax
00:25
00:25 klaas-janstol joined
Mouq I'm going to run spectest once more, then merging with nom 00:26
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
TimToady indeed! Mouq++ 00:28
Mouk** in fact
Mouq :9 00:31
00:33 klaas-janstol left, bjz_ joined, Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg, bjz left 00:36 kurahaupo left
cono guys, if I did some changes in nqp/MoarVM/src, what should I run to rebuild rakudo with my changes? 00:38
Mouq sometimes you can just run 'make install' in the nqp/MoarVM directory and it'll work 00:41
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:43
00:44 ventica left, xenoterracide joined
cono Mouq: it will install in rakudo folder? not to the system wide? 00:44
I've deleted install/bin/{moar,nqp-m} and ran Configure.pl --gen-moar 00:45
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
You might want to ask in #moarvm though
dalek kudo/nom: 412920f | Mouq++ | src/ (5 files):
Add HyperWhatever, move NYIs
00:48
rakudo/nom: fbae5fd | Mouq++ | src/core/ (4 files):
rakudo/nom: Merge branch 'nom' into HyperWat
00:48 dalek left
TimToady I often just do a . config.status in the top directory, and that *usually* does what I want 00:48
and doesn't risk losing your --prefix
00:48 dalek joined, ChanServ sets mode: +v dalek
TimToady an intermediate step is 'make clean; make install' at each level 00:49
cono got it. thanks :)
TimToady but the build system is certainly not handling all the deps it oughta
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
*at the
used to send nqp headless all the time
in fact, when I wanted to enable jit yesterday, I just edited my config.status instead of rerunning Configure directly 00:52
01:11 nbrown_ joined 01:15 nbrown_ left
dalek ecs: 7ddad32 | (Stéphane Payrard)++ | S99-glossary.pod:
too many changes in glossary

too bad the github edit tool does not allow me to preview the diffs. Or am I missing something?
01:19
01:22 iarna joined 01:28 FROGGS__ joined 01:29 Sqirrel left 01:31 FROGGS_ left 01:34 BenGoldberg left 01:37 BenGoldberg joined 01:44 klapperl joined 01:47 klapperl_ left 01:59 ssutch left
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)»
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␤␤»
Mouq Yeah, it's a Moar bug
02:07 peter_z_ joined 02:11 xenoterracide left
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␤␤»
..rakudo-{parrot,jvm} b0b24c: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤ in block at /tmp/tmpfile:1␤␤»
02:18 xenoterracide joined
BenGoldberg And now, it's two moar bugs. 02:18
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␤␤»
diakopter yay, Null REPR 02:21
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
TimToady we have a reliable test for JIT now :P 02:24
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
6model/6model.c L 98 or so, btw
Should just be able to copy the code for throwing the exception from L 70 02:26
02:46 BenGoldberg left, BooK left, eternaleye left, lue left, baest left, aindilis left, telex left, xinming left, huf left, bjz_ left, ggoebel1111119 left, rjbs left, clkaoud left, revdiablo left, pmichaud left, kst left, stux|RC left, Gothmog_ left, broquaint left, eiro left, _sri left, Celelibi left, smash left, timotimo left, ribasushi left, brother left, ggherdov left, sivoais left, salv0 left, krunen left, takesako left, vike left, Akagi201 left, yeltzooo left, clkao left, mtj left, mtj_- left, oetiker left, Alula_ left, immortal left, mr-foobar left, japhb left, haroldwu left, ponbiki left, amkrankruleuen left, djanatyn left, ilbot3 left, DarthGandalf left, synopsebot left, pecastro left, coffeeyy_ left, cooper__ left, Woodi left, rhr left, bcode left, Juerd left, Tene left, dylanwh left, lestrrat left, cotto left, Exodist left, lee_ left, Mouq left, dalek left, ivanshmakov| left, Psyche^ left, rurban1 left, en left, PZt left, mls left, cosimo_ left, Bucciarati left, pochi left, rurban left, cooper left, betterworld left, PerlJam left, xfix left, ivan`` left, yogan left, moritz left, camelia left, cxreg left, sorear left, tokuhirom left, pnu left, lizmat left, simcop2387 left, arnsholt left, mhasch left, Ulti left, carlin left, tadzik left, [Coke] left, epochbell left, apejens left, raydiak left, Util left, iarna left, cibs left, [Sno] left, thou left, noganex_ left, akaseki left, Vlavv left, Khisanth left, woolfy left, sjohnson left, psch left, fling left, Pleiades` left, integral_ left, isacloud____ left, flussence left, yakudzo left, kshannon left, erdic left, xiaomiao left, jlaire left, felher left, charsbar__ left, Maddingue left, nebuchadnezzar left, BinGOs left, mst left, masak left, geekosaur left, Grrrr left, nwc10 left, jtpalmer_ left, diakopter left, tony-o left, jnthn left, hoelzro left, itz left, cognome left, PotatoGim left, araujo left, btyler_ left, SHODAN left, mathw left, [particle]1 left, sftp left, avar left, eMBee left, wtw left, Possum left, labster left, hugme left, yoleaux left, jercos left, cono left, c1sung left, sunnavy left, bloonix_ left, go|dfish left, nickpatc1 left, Rounin left, atta left, felipe left, Timbus left, risou left, peter_z_ left, colomon left, MilkmanDan left, ChoHag left, daxim left, sjn left, muraiki left, robinsmidsrod left, ingy left, retupmoca left 03:13 BenGoldberg joined, colomon joined, BooK joined, MilkmanDan joined, eternaleye joined, lue joined, ChoHag joined, baest joined, daxim joined, sjn joined, muraiki joined, robinsmidsrod joined, ingy joined, retupmoca joined, noganex joined, rurban1 joined, iarna joined, dalek joined, bjz_ joined, ivanshmakov| joined, Psyche^ joined, en joined, aindilis joined, Mouq joined, ggoebel1111119 joined, [Sno] joined, telex joined, itz joined, thou joined, _sri joined, cognome joined, PotatoGim joined, Akagi201 joined, Alula_ joined, psch joined, xinming joined, immortal joined, huf joined, araujo joined, PZt joined, amkrankruleuen joined, mr-foobar joined, fling joined, lizmat joined, simcop2387 joined, Celelibi joined, smash joined, djanatyn joined, btyler_ joined, japhb joined, ilbot3 joined, DarthGandalf joined, Pleiades` joined, rjbs joined, timotimo joined, ribasushi joined, brother joined, SHODAN joined, integral_ joined, isacloud____ joined, akaseki joined, asimov.freenode.net sets mode: +v dalek, yeltzooo joined, Vlavv joined, ggherdov joined, flussence joined, mathw joined, mls joined, yakudzo joined, kshannon joined, synopsebot joined, pecastro joined, coffeeyy_ joined, [particle]1 joined, sftp joined, sivoais joined, cosimo_ joined, salv0 joined, Khisanth joined, Bucciarati joined, pochi joined, rurban joined, clkaoud joined, clkao joined, cooper__ joined, revdiablo joined, pmichaud joined, Woodi joined, cono joined, woolfy joined, avar joined, eMBee joined, cibs joined, wtw joined, haroldwu joined, Possum joined, kst joined, cooper joined, betterworld joined, erdic joined, mtj joined, mtj_- joined, stux|RC joined, rhr joined, arnsholt joined, Gothmog_ joined, broquaint joined, PerlJam joined, labster joined, oetiker joined, mhasch joined, hugme joined, krunen joined, yoleaux joined, Ulti joined, xfix joined, ivan`` joined, eiro joined, ponbiki joined, jercos joined, takesako joined, c1sung joined, carlin joined, bcode joined, tadzik joined, xiaomiao joined, sunnavy joined, jlaire joined, yogan joined, vike joined, felher joined, [Coke] joined, epochbell joined, bloonix_ joined, go|dfish joined, charsbar__ joined, nickpatc1 joined, Maddingue joined, apejens joined, Util joined, Rounin joined, atta joined, sjohnson joined, raydiak joined, Juerd joined, lee_ joined, Exodist joined, cotto joined, lestrrat joined, dylanwh joined, Tene joined, felipe joined, Timbus joined, risou joined, pnu joined, asimov.freenode.net sets mode: +vv hugme yoleaux, tokuhirom joined, sorear joined, cxreg joined, camelia joined, moritz joined, hoelzro joined, jnthn joined, tony-o joined, jtpalmer_ joined, nwc10 joined, diakopter joined, Grrrr joined, geekosaur joined, mst joined, masak joined, BinGOs joined, nebuchadnezzar joined, asimov.freenode.net sets mode: +v camelia 03:14 Sqirrel joined 03:15 xragnar_ joined, xragnar is now known as Guest23002, Guest23002 left, xragnar_ is now known as xragnar
dalek ecs: 7ce46f1 | (Stéphane Payrard)++ | S99-glossary.pod:
glossary: slang
03:15
03:26 rindolf joined
diakopter cognome: pinciipled 03:29
cognome yea I will correct my many typos tomorrow. good night. 03:30
diakopter ok, I don't know what it should be
TimToady good night 03:31
cognome * principled 03:32
03:34 xenoterracide left
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
03:36 xenoterracide joined
TimToady yes, it means something quite different from that 03:36
it's the opposite of "unprincipled" 03:37
a regular mechanism, not an irregular mechanism
diakopter as in "the regulatory principal confused the principled grammarian with a Slang slang"? 03:39
hm, maybe should eat something today other than ice cream 03:40
TimToady despite their name, slangs are an official language extension mechanism
One can easily see why a French person would conclude that this conundrum needs to be explained, at least to the other French. :) 03:42
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:44
diakopter the subtlest of subtext is written in sublanguage, but not by subhumans 03:45
TimToady don't forget to eat subthing 03:46
diakopter masak: marco jargon(Slang $$s) { $$s.asploded }
.oO( can all knowledge be framed as an inside joke? )
03:47
TimToady God only knows. 03:48
03:49 araujo left
dalek ast/S26-WHY: 7825f80 | (Rob Hoelz)++ | S26-documentation/why- (3 files):
Add doc tests for constants
03:53
03:58 xenoterracide left 04:16 xinming_ joined 04:19 xinming left 04:28 iarna left 04:30 iarna joined
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: gist.github.com/Mouq/36aa0035aa3e06d3e3c9 04:30
04:36 ren1us joined, ggoebel1111119 left 04:37 xinming_ left 04:40 BenGoldberg left
TimToady casual inspection indicates that this is an improvement :) 04:42
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
*don't use up
we could claim [;;], and require people to write [()] for an array from a comprehension 04:45
much to be said for that approach... 04:46
except that a LoL is really more like $(;;), and then it conflicts with (;;) 04:47
Mouq m: sub foo(*@a) {say @a.WHAT}; foo <bar baz> 04:48
camelia rakudo-moar b0b24c: OUTPUT«(Array)␤»
Mouq m: sub foo(**@a) {say @a.WHAT}; foo <bar baz>
camelia rakudo-moar b0b24c: OUTPUT«(LoL)␤»
Mouq ^^
I think [;;] looks special-er than (;;) 04:49
*$(;;)
TimToady I am willing to consider that using () for list comprehensions is a mistake 04:51
and that a LoL should be (;;)
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:53
TimToady or that we disallow multiple statements inside (), and you can still write a list comprehension, but each dimension is its own statement 04:54
so you couldn't write (my $x; $x++ + $_ for @foo) and such 04:56
we'd require do {} for such shenanigans 04:58
lue {} would be more intuitive than () in any case :) "oh, bare code doesn't work. Let's try braces!" 05:01
TimToady well, there's always {}() 05:02
05:03 gfldex joined, rurban1 left
TimToady that would allow us to say either my @array = (list; list; list); or my @array := [list; list; list]; 05:08
Mouq &infix:<;> 05:11
:P
std: (1,,2)
camelia std 81e0d07: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix , instead at /tmp/by_Rk_u6zM line 1:␤------> (1,⏏,2)␤Parse failed␤FAILED 00:01 125m␤»
Mouq std: (1;;2)
camelia std 81e0d07: OUTPUT«ok 00:01 123m␤»
Mouq std: [1;;2]
camelia std 81e0d07: OUTPUT«ok 00:01 124m␤»
TimToady basically only blocks would allow ; to mean the sequential side-effect monad if we made this change 05:12
05:13 thou left
TimToady even .{} would be semilists 05:13
Mouq Yeah, the more I think about it, the more it seems like an icky hack 05:16
Need more ASCII 05:17
TimToady well, everything is an icky hack at the moment
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)␤»
Mouq Aww :P
m: sub infix:<,,> is chaining (**@l) { @l }; say (1 ,, 2 ,, 3).perl
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/gHOyKXM0mE␤Missing block␤at /tmp/gHOyKXM0mE:1␤------> sub infix:<,,> is chaining ⏏(**@l) { @l }; say (1 ,, 2 ,, 3).perl␤ expecting any of:␤ colon pair␤ …»
TimToady equiv(&infix:<Z>) maybe 05:19
Mouq m: sub infix:<,,> is equiv(&infix:<Z>) (**@l) { @l }; say (1 ,, 2 ,, 3).perl
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/nv16tPzoiu␤Missing block␤at /tmp/nv16tPzoiu:1␤------> sub infix:<,,> is equiv(&infix:<Z>) ⏏(**@l) { @l }; say (1 ,, 2 ,, 3).perl␤ expecting any of:␤ postfix…»
Mouq Oh, I'm putting it in the wrong spot
m: sub infix:<,,> (**@l) is equiv(&infix:<Z>) { @l }; say (1 ,, 2 ,, 3).perl
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/W9xyh79ocW␤Routine given to equiv does not appear to be an operator␤at /tmp/W9xyh79ocW:1␤------> ␤»
TimToady bug 05:20
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())␤»
TimToady we need a semi-eager context that evaluates the first 4 or 5 elements of a lazy list 05:23
"gist" context :) 05:24
Mouq Anything looser than &[,] "does not appear to be an operator"
05:29 kurahaupo joined 05:52 aoseki joined 05:55 akaseki left 06:01 iarna left 06:02 iarna joined 06:06 kaare_ joined 06:08 FROGGS__ is now known as FROGGS, iarna left
TimToady m: foo: say "here"; goto foo; 06:11
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/szKN3kLOxU␤Undeclared routine:␤ goto used at line 1␤␤»
TimToady segfaults under jit
diakopter m: loop { start { die } } 06:12
camelia rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140061769201408␤»
diakopter m: loop { start { die } }
camelia rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140489453991680␤»
TimToady oh, mine only segfaults in the repl 06:13
actually, it just segfaults on the label in the repl :/ 06:14
diakopter m: f:\
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/gwXhIoLdNr␤Two terms in a row␤at /tmp/gwXhIoLdNr:1␤------> f⏏:\␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix o…»
diakopter m: f:
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/xmv3oIuuRd␤Two terms in a row␤at /tmp/xmv3oIuuRd:1␤------> f⏏:␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or…»
TimToady m: f: 06:15
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/hMvGtWPTop␤Two terms in a row␤at /tmp/hMvGtWPTop:1␤------> f⏏:␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or…»
TimToady m: f: ;
camelia ( no output )
diakopter m: ENTER ENTER ENTER LEAVE ENTER LEAVE ENTER LEAVE say 4 06:19
camelia rakudo-moar b0b24c: OUTPUT«4␤»
diakopter m: start { say 4 } 06:23
camelia rakudo-moar b0b24c: OUTPUT«4␤»
diakopter m: start { start { say 4 } }
camelia ( no output )
TimToady m: await start { start { say 4 } } 06:24
camelia ( no output )
TimToady m: await start { await start { say 4 } }
camelia rakudo-moar b0b24c: OUTPUT«4␤»
TimToady m: start { await start { say 4 } }
camelia ( no output )
06:25 bjz_ left
TimToady m: say result start { result start { 4 } } 06:26
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/GU4QF63sTI␤Undeclared routine:␤ result used at line 1␤␤»
diakopter m: await await { start { start { say 6 } } }
camelia rakudo-moar b0b24c: OUTPUT«(timeout)»
TimToady m: sub result ($x) { $x.result }; say result start { result start { 4 } } 06:28
camelia rakudo-moar b0b24c: OUTPUT«4␤»
TimToady m: sub result ($x) { $x.result }; say result start { result start { sleep 2; 4 } } 06:29
camelia rakudo-moar b0b24c: OUTPUT«4␤»
diakopter m: await LAST start { say 6 }
camelia ( no output )
diakopter p: await LAST start { say 6 }
camelia rakudo-parrot b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/51e_DyXItT␤Undeclared routines:␤ await used at line 1␤ start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?␤␤»
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␤␤»
diakopter m: await { lazy { start { say 4 } } } 06:33
camelia ( no output )
TimToady m: say await start({ 4 }), start { 2 }
camelia rakudo-moar b0b24c: OUTPUT«4 2␤»
TimToady start is supposed to be a statement prefix, not a listop 06:36
dalek d: ee1ef48 | TimToady++ | STD.pm6:
s/async/start/ in statement prefixes
06:38
TimToady see also S04:1434 06:39
synopsebot Link: perlcabal.org/syn/S04.html#line_1434
06:39 darutoko joined 06:40 xinming joined
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 mr-foobar left
Mouq :9 06:41
I'll try
06:41 mr-foobar joined
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␤␤»
Mouq Ah, I was missing a semicolon 06:45
TimToady m: { CATCH { say 44; CATCH { say 33; default {} }; die 55 }; die 66 } 06:46
camelia rakudo-moar b0b24c: OUTPUT«44␤33␤»
TimToady m: { CATCH { say 44; default {} CATCH { say 33; default {} }; die 55 }; die 66 }
camelia rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/ONPspyL66a␤Missing semicolon.␤at /tmp/ONPspyL66a:1␤------> { CATCH { say 44; default {} ⏏CATCH { say 33; default {} }; die 55 }; ␤ expecting any of:␤ stateme…»
TimToady m: { CATCH { say 44; default {}; CATCH { say 33; default {} }; die 55 }; die 66 } 06:47
camelia rakudo-moar b0b24c: OUTPUT«44␤»
dalek kudo/nom: 9947667 | Mouq++ | src/core/precedence.pm:
Add more ops to precedence.pm
06:48 thou joined 06:52 thou left 06:54 hurry joined 06:56 hurry is now known as tiny, tiny is now known as tinyToday 06:59 tinyToday left 07:01 next_ joined
dalek kudo/nom: daf9612 | Mouq++ | src/core/ (2 files):
Make .tree somewhat more to spec
07:06
kudo/nom: 2f42311 | Mouq++ | src/core/LoL.pm:
Use simpler .perl for LoL
p: 9b526d1 | duff++ | src/HLL/sprintf.nqp:
better sprintf formatting for floats

When outputing a float to some number of decimal places, some calculations are done with native numbers and others with bigints. This results in odd formatting once intermediate calculations generate a number that's too big to fit in a num.
This commit reworks the stringify-to-precision() routine to treat the number as a string and then use only bigints for the individual parts.
Fixes RT #120232
07:10
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120232
p: a9cf677 | duff++ | src/HLL/sprintf.nqp:
Only output trailing dot if there are also trailing digits
p: e806b34 | duff++ | src/HLL/sprintf.nqp:
Decimal expand numbers given in scientific notation

C<sprintf()> outputs strange numbers, sometimes with 2 radix points or extra stuff on the end, when given a number in scientific notation to format. So, prior to formatting, expand the number into the appropriate decimal representation.
Mouq PerlJam++ :D 07:15
timotimo aye! 07:20
and good morning
07:25 bowtie_ joined 07:34 denis_boyun joined, tinyToday joined 07:45 cooper left 07:46 cooper__ left
dalek p: c6c02af | duff++ | t/hll/01-language.t:
skip t/hll/01-language since it's highly parrot specific right now
08:01
p: 340eaeb | duff++ | t/hll/06-sprintf.t:
un-todo some tests; plan the correct number of tests
p: 0055bf5 | duff++ | tools/build/Makefile- (2 files):
Add t/hll tests to moar and jvm backends

Most of t/hll is skipped anyway right now, but there are some bits that can run on all the backends, so we should run them.
08:03 cooper joined, cooper left, cooper joined 08:12 molaf joined
dalek kudo/nom: a63b1ba | Mouq++ | src/core/Any.pm:
.tree logic fix
08:16
ast: 332eb67 | Mouq++ | S02-lists/tree.t:
Fix .tree tests
08:17
08:19 chenryn joined
dalek kudo/nom: 5bb3a03 | duff++ | src/core/Any.pm:
I think this fixes RT #122028
08:22
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122028
08:24 tinyToday left, next_ left 08:25 Mouq left, Mouq joined 08:26 aoseki is now known as Jaoseki 08:27 Jaoseki is now known as midoriseki
lizmat t/spec/S12-subset/subtypes.t hangs with the latest pull 08:29
08:30 dmol joined
Mouq disagrees... 08:35
Oh, but my nqp is behind yet
ChoHag That grammar didn't work.
Oh never mind I was printing [0]
This is why programming doesn't work inthe morning... 08:36
08:36 thou joined
Mouq lizmat: What's your -v? 08:36
lizmat This is perl6 version 2014.07-193-g5bb3a03 built on MoarVM version 2014.07-388-ge953112 08:37
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
camelia rakudo-moar 2f4231: OUTPUT«ok 1 - ␤»
lizmat oddly enough, if I skip the block *before* the block that hangs, we don't have a problem :-( 08:40
masak good antenoon, #perl6 08:41
lizmat masak o/
08:41 thou left
Mouq lizmat: maybe you need to make clean? 08:41
lizmat I'll try
08:43 tinyToday joined
lizmat nope: complete rebuild (with install dir zapped): still the same 08:47
golfing now 08:49
08:50 chenryn left
ChoHag Why does \N match where . doesn't? 08:54
masak ChoHag: do you have a concrete example? 08:55
ChoHag Given this: rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ };
This works: token log { 2014\N* } 08:56
This doesn't: token log { 2014.* }
masak could you show that, on the p6eval, with some input?
ChoHag The p6eval being camelia? 08:57
Ein moment.
masak oh, right. yes.
camelia used to be named p6eval :)
lizmat Mouq: I had a local change that caused the hanging
but the change is really minimal
after the try block in dies_ok, I had "say $! if $!" 08:58
Mouq lizmat: Obviously not *that* minimal :9
ChoHag What's the method to a Grammar to parse a string?
moritz .parse 08:59
lizmat oddly enough, if I change it to "diag $! if $!" there is no problem
wouldn't be surprised if I'm tickling a crossing the streams between S*OUT and $*ERR bug there
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」␤␤»
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");
camelia rakudo-moar 2f4231: OUTPUT«「bad line␤2014: good line␤」␤ line => 「bad line」␤ bullshit => 「bad line」␤ line => 「2014: good line」␤ bullshit => 「2014: good line」␤␤»
ChoHag That plays merry havoc with my terminal :(
dalek ast: a813440 | (Elizabeth Mattijsen)++ | S02-lists/tree.t:
Fix test count
masak I can read it just fine. 09:03
ChoHag I could too until I moved irssi to freebsd.
It's some locale thing I think.
Locales are weird enough in Linux where people care.
masak aye.
ChoHag I'm just learning to love ctrl-l. 09:04
huf the l stands for love!
ChoHag ctrl-love? That sounds rather psychotic. 09:05
masak m: say so "foo\nbar\n" ~~ /bar $$/
camelia rakudo-moar 2f4231: OUTPUT«True␤»
masak m: say so "foo\nbar" ~~ /bar $$/ 09:06
camelia rakudo-moar 2f4231: OUTPUT«True␤»
masak hm.
I *thought* that would end up being the problem. apparently not.
ChoHag It's probably down to the sigspace magic, but I really have no clue about grammars.
lizmat Mouq: your fix to push seems to break things: 09:07
$ 6 'my %h; push %h<a>,42'
Cannot call 'push'; none of these signatures match:
:(Any:U \SELF: *@values, *%_)
ChoHag P5 regex have filled my brain.
masak ChoHag: shouldn't be any sigspace involved; you're using `token`, not `rule`
ChoHag Oh.
See?
No clue.
masak :)
moritz m: say so "foo\nbar" ~~ /foo $$ bar /
camelia rakudo-moar 2f4231: OUTPUT«False␤»
ChoHag I was swapping them around to see what happened.
Mouq lizmat: Errr, PerlJam's fix?
moritz that's because nothing is eating the \n
masak oh, oh! right.
09:07 Rotwang joined
masak that one trips me up every so often. 09:08
moritz $$ is a zero-width assertion
masak right.
lizmat oops, actually duff++ 's fix, I think
masak PerlJam++
moritz maybe we should have token nl { \n? $$ }
lizmat github.com/rakudo/rakudo/commit/5bb3a03cbf
moritz duff is PerlJam :-) 09:09
lizmat ah, ok
and perlpilot on github, :-)
testing a fix 09:11
ChoHag Bah.
This hacking thing was so much easier before I grew up and got responsibilities.
I have to go shopping.
masak hah, I thought you meant responsibilities towards a client. :) 09:12
ChoHag No. Real responsibilities.
Children like food, you see.
masak so I've heard.
lizmat
.oO( masak will find that out before too long as well :-)
09:13
ChoHag Clients can go hang themselves on Saturday.
Or pay me far more than I'm worth.
09:13 klaas-janstol joined
masak lizmat: the surprise involved in finding out the answer to "do children like food?" is projected to be: very small. :P 09:15
dalek kudo/nom: d0bf8a2 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Better fix for #122028
09:17
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122028
dalek ast: 5c4e3ee | (Elizabeth Mattijsen)++ | S09-typed-arrays/arrays.t:
Unfudge now passing test, PerlJam++
09:18
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:23
lizmat because you might want to use the same grammar with different actions 09:24
this is what perl6-debug is based on, e.g. afaik
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
lizmat: Hm. I think I stand by my last statement
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.
actually, I should blog about that. 09:25
that ought to be a short-and-sweet but useful blog post.
09:26 denis_boyun left
Mouq Cool :) 09:28
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
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:31
masak interesting idea, to put it in a trait. 09:32
that should fly; if someone makes a proof-of-concept, I'll put that in the blog post.
09:35 pmurias joined
pmurias what would be a good way to expose the ability to call javascript call from nqp? 09:35
something like eval('console.log("Hello World")') 09:39
masak is the question interesting because the compiler has to intercept this call and do something unusual with it? 09:40
Mouq Can functions be imported and exported from pure JS? 09:44
Err, I'm not sure 'import' is the right word for Javascript, but be inherited from an outside scope? 09:45
dalek p-js: f7590c4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Refactor adding infix ops.
09:48
pmurias masak: it's mostly a user interface question, is there some existing nqp convention etc. 09:49
09:49 kurahaupo left
masak oh. 09:50
no idea, then.
pmurias masak: there would need to be some mapping between different calling conventions
timotimo "nativecall" is taken, so you should call it ... uglycall? terriblecall? disgustingcall? :)
masak hey, what's this anti-JS vibe I get? :)
you're talking about the substrate programming medium of the 21st century! 09:51
mock it at yer own peril!
timotimo :D
pmurias likes js much more than pir 09:52
masak oh man, PIR.
the preciseness of Perl combined with the succinctness of assembly language! 09:53
09:58 ventica joined
dalek p-js: 467e54c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp ops: iseq_n, isne_n, iseq_s, isne_s, eqaddr.
09:59
10:01 FROGGS[mobile] joined 10:03 denis_boyun joined 10:08 denis_boyun left 10:09 denis_boyun joined
pmurias what's the prefered form in nqp? nqp::push(@foo,1) or @foo.push(1) ? 10:09
10:11 spider-mario joined
pmurias nqp-m: my @foo; @foo.push(1) 10:12
camelia ( no output )
pmurias nqp-m: my @foo; @foo.push(1); say @foo[0]
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…»
pmurias nqp-m: my @foo; @foo.push(1); say(@foo[0])
camelia nqp-moarvm: OUTPUT«1␤»
10:12 denis_boyun left 10:13 denis_boyun joined, zakharyas joined 10:14 denis_boyun left, Mouq left 10:15 denis_boyun joined 10:24 thou joined
dalek p-js: ee28142 | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 10.

Add nqp::numify, nqp::stringify, nqp::list, and the ability to coerce strings to num.
10:25
10:29 thou left
lizmat m: my $a = 42; $a = q# 32 #; say $a # huh? 10:29
camelia ( no output )
masak oh, interesting. 10:30
lizmat m: my $a = 42; $a = q# 32 #; say $a
camelia ( no output )
masak which rule wins, (a) the one that says you can use any character as quote delimiter
lizmat well, # is supposed to be specifically barred
masak or (b) the one that says comments are whitespace, and thus don't count?
m: say q{ "OH HAI" } 10:31
camelia rakudo-moar 5bb3a0: OUTPUT« "OH HAI" ␤»
lizmat found this in t/spec/S02-lexical-conventions/comments.t
masak m: say q foo ;
camelia rakudo-moar 5bb3a0: OUTPUT«===SORRY!=== Error while compiling /tmp/syVQq_ciMl␤Alphanumeric character is not allowed as a delimiter␤at /tmp/syVQq_ciMl:1␤------> say q ⏏foo ;␤ expecting any of:␤ argument list␤ prefix …»
lizmat an eval_dies_ok test that is dying for the wrong reason
I'll mark them as todo... 10:32
jnthn std: my $a = 42; $a = q# 32 #; say $a
camelia std ee1ef48: OUTPUT«===SORRY!===␤No delimiter found at /tmp/iYZC6aG1MB line 1 (EOF):␤------> my $a = 42; $a = q# 32 #; say $a⏏<EOL>␤Parse failed␤FAILED 00:01 125m␤»
masak testing unspecified failure is a very bad idea.
I'd say (b) feels like the winner.
but I say it somewhat reluctantly.
is there any other character special-cased such that (a) wins? 10:33
jnthn STD seems to expect (b), as another data point.
masak right.
lizmat no idea, I'm just working on replacing "(eval_|)dies_ok" tests with "throws_like" tests
psch S02:3920 is one more data point, fwiw 10:35
synopsebot Link: perlcabal.org/syn/S02.html#line_3920
masak lizmat++ # changing bad things to things that are not as bad 10:36
psch plus the obligatory second thing i say: hi #perl6
masak psch! \o/
psch: that reference seems to talk about twigils; seems unrelated.
jnthn o/ psch 10:37
psch oh
yes
that's probably my local specs out of date
thus grep giving me the wrong line number
masak .oO( pro tip: ... )
:P 10:38
moritz hpmor.com/chapter/102 \o/
psch perlcabal.org/syn/S02.html#Delimite...ting_forms
end of that paragraph 10:39
is what i wanted to point to :)
masak "Nor may a # character be used as the delimiter since it is always taken as whitespace (specifically, as a comment)."
just found it :)
OK, so STD has it right.
lizmat: does that mean the test is wrong?
lizmat the test was passing when it shouldn't have 10:40
it's now failing with a TODO
psch well, STD sorries, rakudo doesn't
for # specifically
masak oh, troo.
is that worth a RT ticket, summarizing the thing?
psch the TODO lizmat+
the TODO lizmat++ supposedly put in is correct 10:41
in my understanding :)
lizmat I've marked is as NYI
masak well, a rakudobug might translate to someone grabbing it as a low-hanging fruit thingy...
10:42 timotimo left
masak moritz: I'm sorry? wasn't 102 posted on July 25? 10:43
moritz: or are you rejoicing about its mere existence?
10:46 ventica2 joined 10:49 ventica left 10:50 mr-foobar left, kurahaupo joined 10:51 mr-foobar joined
moritz masak: I missed it back then 10:56
masak ah.
in that case, enjoy. :)
moritz enjoyed 10:59
masak ...perhaps some www.reddit.com/r/hpmor for dessert? :) 11:06
11:09 timotimo joined 11:33 bjz joined
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)…»
psch "it's assigned and doesn't get evaluated" seems a bit too hand-wavey to me, as an explanation 11:40
but maybe camelia throwing it is an artifact of what camelia does 11:41
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:42
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)…»
sergot o/
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 gist.github.com/peschwa/c60c1c06a96781418d27; upstream discussion www.mail-archive.com/openssl-dev@op...2009.html)
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
lizmat m: sub { my $x = fail "foo" }(); say "alive"; 11:52
camelia rakudo-moar d0bf8a: OUTPUT«foo␤ in block at /tmp/_ricdU_n8k:1␤␤»
sergot psch++ thanks for your help
psch m: sub { my $x = fail "foo"; 1 }(); say "alive"
camelia rakudo-moar d0bf8a: OUTPUT«foo␤ in block at /tmp/aYZK9cqt2o:1␤␤»
psch sergot: your welcome :) 11:53
sergot I will get into this tomorrow, ok? :)
psch sure, no rush
sergot or... I willtry to do this today :)
lizmat m: sub a { $^a * 10; }; say a (2) + 1; say a(2) + 1
camelia rakudo-moar d0bf8a: OUTPUT«30␤21␤»
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␤»
psch sergot: i'll be around at least 2-3 hours to test patches, if you need me to
sergot thanks a lot :) 11:55
psch lizmat: fwiw, for me the warning about "you can't parens after 'if'" makes it rather clear to me 11:57
where "after" means "without whitespace"
lizmat but this is more about the precedence of () as an invoker, wrt to other operators 11:58
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 11:59
the if-case i mentioned is just how i got "when the parens touches to the left it contains all params" 12:00
it's somewhat of my mnemonic, i guess
lizmat but it would be the other way around:
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␤»
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
so maybe a warning would be in place for those cases?
psch lizmat: right, warning for the other case makes sense. it's really the inverse case of what if complains about
lizmat std: sub sum (*@a) { [+] @a }; say sum (1..5) / 10; 12:04
camelia std ee1ef48: OUTPUT«ok 00:01 131m␤»
lizmat std thinks it's ok anyway
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
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.
FROGGS psch: so we do not loose track of the info you've collected
psch FROGGS: yeah, that's a good idea, i'll open it
FROGGS psch++
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:06
FROGGS hmmmm 12:09
probably, yeah
psch also, minor correction: the versions involved are 1.0.1d and e, respectively :) 12:10
12:12 Sqirrel left 12:13 thou joined
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:15
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:17 thou left 12:19 zakharyas left
psch hm, i must've missed this one when i search before bugs.debian.org/cgi-bin/bugreport....bug=742152 12:21
12:25 Sqirrel joined
sergot thanks psch++ 12:26
psch sergot++: all done, PRs for both modules as well 12:34
sergot: i'm rather confident it is a problem upstream, which implementation can configure themselves to go around
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
pmurias does nqp::getcomp('JavaScript') seem a resonable way of exposing javascript access in nqp-js? 12:37
12:46 cognome left 12:47 cognome joined, telex left 12:48 telex joined
psch pmurias: fwiu, nqp::getcomp gets you compilers written in nqp. nqp-j accesses (and implements) java classes via nqp::jvminterop 12:48
pmurias: i'm not sure if that's a hard and fast rule or a weak convention though. 12:49
timotimo wow, my benchmark run just finished 12:50
12:50 klaas-janstol left 12:51 cognome left
pmurias nqp::jvmiterop is not tested anywhere :/ 12:52
timotimo t.h8.lv/p6bench/2014-08-16-longterm...-moar.html 12:53
12:55 ggoebel1111119 joined
lizmat so, from the first 2 graphs, rakudo.moar has gotten slower ? 12:56
otherwise, pretty amazing differences between 2014.06 and 2014.07 12:58
wonder what 2014.08 will bring!
timotimo that's weird. 13:00
lizmat the first 2 ? yes, that seems weird to me to
jnthn Those mean startup time got worse 13:01
lizmat especially the frequence 4 or 5 per second ?
timotimo could be more additions to the setting for example
lizmat ah, that could be... :-)
should be better in 2014.08
timotimo a bit
lizmat (fixes in @*INC setup and such)
timotimo i'll run nqp benchmarks for the same versions, too 13:03
lizmat timotimo: couldn't we make the granulatity of the zero benchmark better? 13:07
timotimo no clue, honestly
i already set "enough-time=10" 13:08
lizmat value * 1000 on the vertical axes ? and show startup time, rather than frequence ?
timotimo japhb: ^
wait, did japhb say he wanted to be alerted by the bot or does he backlog?
lizmat errands& 13:09
dalek p-js: 9e04ca4 | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement nqp::sub_n, nqp::isinvokable, nqp::takeclosure
13:10
p-js: 46ad7cd | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement nqp::isinvokable, subs now can return values.
p-js: 65650e5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::null.
p-js: d4d8e56 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 16 to run_tests
13:11 Pleiades` left, ChoHag left 13:15 Pleiades` joined 13:16 ChoHag joined, dmol left
ChoHag m: "foo" ~~ /o/ 13:17
camelia ( no output )
ChoHag Bah.
Where's the weird unicode when you need it?
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」␤␤»
timotimo m: say "did you mean this on? ->"
camelia rakudo-moar d0bf8a: OUTPUT«did you mean this on? ->␤»
ChoHag Bloody thing still doesn't work. 13:19
Another try then no more spam.
13:19 ChoHag left 13:22 ChoHag joined
ChoHag m: say "something stupid" 13:22
camelia rakudo-moar d0bf8a: OUTPUT«something stupid␤»
ChoHag Hmm.
Well it *seems* happier.
tmux uses the same environment for every new session as was extant when the first session was started. 13:23
It's kind of shit, but they think it's The Right Way. 13:24
But now my locale settings are set.
m: grammar { rule TOP { (abc) (foo) (def) } }.parse("wtf? abcfoodefghi") 13:25
camelia rakudo-moar d0bf8a: OUTPUT«===SORRY!=== Error while compiling /tmp/kxmKiC1spn␤Two terms in a row␤at /tmp/kxmKiC1spn:1␤------> ammar { rule TOP { (abc) (foo) (def) } }⏏.parse("wtf? abcfoodefghi")␤ expecting any of:␤ statement…»
geekosaur it's more "pretty much the only thing they can do"
ChoHag Nope.
'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:26
dalek p-js: 43b73dd | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::mul_n, nqp::div_n, handle floating point literals
13:27
p-js: 7a685f1 | (Pawel Murias)++ | TODO:
Add a low hanging fruit task to TODO.
p-js: 4ecfc8c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement a bunch of nqp string ops.
13:46
14:01 thou joined 14:06 thou left, prevost joined 14:08 rurban1 joined
pmurias what should nqp::say when running inside a browser? 14:13
s/when/do when/
14:14 cosimo_ left, prevost left
lizmat wouldn't that be the equivalent of writing to the DOM ? 14:17
pmurias making it call document.write is one choice 14:19
it could also call console.log
lizmat I would see that more as what "note" would do, aka writing to $*ERR
pmurias there is also console.info, console.error etc. 14:21
but writing to the dom is rarely used
lizmat so if you would want to generate HTML from Perl6 in a browser, what would you do? 14:23
some Plack approach maybe ?
timotimo running a plack application in perl6-to-js'd code inside the browser seems weird :) 14:24
lizmat why? Feels natural to me, and would allow harnassing a lot of middleware potentially 14:25
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.
Because once written to the DOM, the browser will fix errors, which includes closing open tags.
lizmat hence the Plack idea 14:27
Juerd Yes, that would be much better than document.write() stuff.
lizmat I could totally see a click / mouseover / whatever generate an event in a Supply
14:27 rindolf left
lizmat in fact, tracing mouse movements is one of the reasons we have Supply.rotot 14:28
*rotor
.oO( why can't I just type rotot :-)
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
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
Juerd timotimo: Unless that (semi)URL begins with a #
timotimo oh, rightf, there's that, too
that's what angular.js does i believe
pmurias yes
pmurias likes angular.js
Juerd timotimo: I use this with jQuery. <a href="#/some/other/page">...</a> and then a jQuery plugin that acts on those.
pmurias food& 14:31
timotimo ircing is a bit painful on this sluggish ssh connection >_<
lizmat afk& 14:32
pmurias the big problem with making nqp::say call console.log, is what is nqp::print supposed to do 14:33
Juerd timotimo: Get mosh :) 14:34
pmurias: Buffer things and call say when \n is reached :)
Wrong way around perhaps, but with an output mechanism that doesn't do partial lines, it may make sense 14:35
14:37 akaseki joined 14:38 treehug88 joined 14:40 midoriseki left 14:42 zakharyas joined
timotimo Juerd: i don't own the machine my irc client is on 14:42
15:02 treehug88 left
[Coke] PerlJam++ #productive day! 15:16
15:16 rurban1 left 15:31 rindolf joined
masak nwc10: lucumr.pocoo.org/2014/8/16/the-pyth...ke-to-see/ -- news.ycombinator.com/item?id=8186008 15:32
it's interesting to read someone's wishlist about Python.
TimToady how much of it are doing/missing?
or not-a-bugging? 15:33
masak let's see...
slots -- shouldn't do it that way.
pyobject -- should do it better.
interpreter -- should redesign it.
TimToady seems a bit vague...
masak I'm summarizing, but yes, the post is short on details. 15:34
vtables -- not really sure what he wants here.
TimToady C++, perhaps
masak HN calls the post on being a rant without a well-defined solution. 15:35
though even a rant can lead somewhere good sometimes.
TimToady like about ⅓ of the Psalms :)
masak heh :) 15:36
nwc10 masak: thanks. Will read at some point after small terrorist mealtime 15:37
15:39 guru joined, guru is now known as Guest66073, Guest66073 is now known as ajr_
masak .oO( "[small terrorist] mealtime" or "small [terrorist mealtime]"? assuming former, with "small terrorist" bound as affectionate moniker for offspring ) 15:41
15:41 klaas-janstol joined
nwc10 the latter. it's based on a comment made by someone else's mother about "not negotiating with terrorists" 15:44
in particular in this context, I think it was hungry irrational terrorists that are in denial about being hungry
TimToady mine were more like small anarchists, except when they were being small lawyers 15:45
masak that's a cute combination :)
TimToady you think that's cute today!
well, lawyers are almost like adults...
so we encouraged it some 15:46
masak I think I would welcome the lawyers, too.
TimToady one wishes to ignite the spark of rationality, even in so ignominious a form :) 15:47
masak haha
masak .oO( Harry Potter and the Terrorist Mealtime Incident )
moritz children are very good at pompoting fairness, especially when it works for them :-)
15:49 rurban1 joined, thou joined
masak well, fairness seems an important concept in general, but in raising kids especially. 15:49
I speak only from second-hand experience here, but that's how it seems to me.
nwc10 although right now the smaller one appears to be more interested in cables 15:50
network, power, who cares? :-)
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
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
I'd call that more of a "united front"
but consistency is overrated
different kids have different needs, and sometimes the fairest thing is to be unfair 15:52
nwc10 yes, your description is better/more accurate
TimToady but a reflex of "What did your mother say about that?" is a good one
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 thou left
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
Glo and I did a lot of such explaining for each other
masak oh, that one I knew already. my parents always used big words with me, and I loved it. 15:55
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.
TimToady in a controlled sort of way, of course
masak sure.
ChoHag $daughter has learned extremely fast by, imo, not being coddled by me. 15:57
TimToady funny how clerics like those long words: antidisestablishmentarianism
ChoHag Her life so far has been *just* hard enough that she's forced to grow constantly. 15:58
Seems to be working extremely well.
masak TimToady: I guess that's English's "famous long compound".
TimToady yeah, it's the Official Longest Word :)
ChoHag She is not shielded from real life, just protected frmo it. 15:59
15:59 BenGoldberg joined
TimToady ChoHag: neverthess, we all find some way to inflict a certain amount of dysfunction on our kids 15:59
*theless 16:00
ChoHag It's only fair.
TimToady snerks.
masak at least it's our dysfunction, and nobody else's. 16:01
16:01 j4jackj joined
TimToady well, you hope 16:01
masak right.
guess that shouldn't be an end in itself, either.
BenGoldberg thought that disfunction was infliced by kids upon parents. 16:02
s/infliced/inflicted/; #can't spell before coffee
TimToady it's really an impossible task, because you will simultaneously be overprotective and underprotective
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 ;)
TimToady no, I'd tell him to not reproduce :) 16:05
well, not unless he fosters them out to John and Mary 16:06
BenGoldberg As a fanfiction addict, I've read a couple of stories where he adopts :) 16:07
TimToady well, to get things back on topic, it's amazing how similar raising kids is to designing a computer language :) 16:10
maximum freedom within the constraints, and all that
encouragement of downstream creativity 16:11
hoping you'll be supported in your old age :)
BenGoldberg And highly variable time until completion, for some definition of completion :)
masak TimToady: haha
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:13
16:14 klaas-janstol left
diakopter Father Carl 16:16
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
TimToady Do think not 16:19
timotimo :\
jnthn Would make another nice MHF project :) 16:20
TimToady we're gonna have to put MHF in the glossary soon...
jnthn At least that's an LHF :P 16:21
pmurias MHF? 16:23
TimToady see LHF
pmurias medium hanging fruit? 16:24
TimToady or mid, or medial, or some such
jnthn Or Mild Headache Felt
:)
TimToady that would be Low Headache Felt though
dalek p-js: 30bd2d2 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement cmp_n,cmp_s,cmp_i.
16:25
p-js: 7e591f0 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Add more coersion to and from $T_BOOL.
p-js: 37b9db3 | (Pawel Murias)++ | / (7 files):
Add a simple example of running the compiled js in the browser.

nqp::say will call console.log when running in the browser. Create a simple loader for webpack, which compiles nqp code to js.
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
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:27
or if there are other uses for ; in context 16:29
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
one can even view a block as a series of thunks separated by ; that we just happen to call in order 16:31
though I wouldn't suggest implementing it that way :)
jnthn Was gonna say... :P
TimToady is getting a feeling for when the kids are about to panic :) 16:32
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
need a better term for one of the pieces of a semilist...
pmurias masak: when running on the browser side what would you like nqp::say to do?
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:39
it's either that or force people to write do {}, but that's kinda ugly 16:40
so I think immediate blocks can work for one of the dimensions of a [;;] or (;;) lol
jnthn TimToady: We want ; to be a dimension separator, and so treating it as statement sep like today is a problem, iiuc? 16:41
TimToady in [] and (), yes, and it seems we could tweak it the other way without too much bother 16:42
and ; is not heavily used inside [] or () yet
a deprecation cycle might be in order though
jnthn It doesn't break the common single-statement case of list comprehension?
TimToady no
you don't get a lol unless there is a ; 16:43
and basically [;;] becomes itemized lol, (;;) parcelized
jnthn *nod*
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
a cursory glance did not see any use of that kind of semicolon in our corpus 16:45
hoelzro morning #perl6
TimToady I think there may be one or two uses of it on RC
o/
jnthn o/ hoelzro 16:47
16:47 zakharyas left
dalek ast/S26-WHY: 487434b | (Rob Hoelz)++ | S26-documentation/why- (3 files):
Skip constants in S26 tests for now
16:48
ast/S26-WHY: b56a35b | (Rob Hoelz)++ | S26-documentation/why- (3 files):
Add tests for S26 decl comments on variables

They're NYI for now, and marked as such. They should probably be tested for each scope type (my, our, state, temp) and container type ($ @ % &)
ast/S26-WHY: 9fdb1e4 | (Rob Hoelz)++ | S26-TODO.md:
Mark constants/variable decl comments as NYI in the TOOD
hoelzro ahoy TimToady, jnthn
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:53 ajr_ left
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...
timotimo japhb: lizmat wanted more precise data for the first benchmarks, zero and hello 16:55
TimToady maybe we should call the semiquavers :)
*them 16:56
and a lololol would have hemisemidemiquavers
16:57 klaas-janstol joined
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. :-)
timotimo japhb: OK :)
jnthn decision++
TimToady we can't have that sort of productivity around here! :P
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
*rate
then lower is better, which seemed possibly confusing.
16:59 chenryn joined
timotimo btw: t.h8.lv/p6bench/2014-08-16-longterm...-moar.html 16:59
TimToady invert the graph?
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
TimToady: Yeah, I considered that thought.
timotimo phoronix always has a little triangle pointing in the direction that is "better"
and i seem to recall there is also text saying what the graph has and which direction is better
TimToady doubtless they have a patent on it :) 17:01
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:02
timotimo yes 17:03
japhb TimToady: Is phoronix known for that sort of thing?
TimToady has no idea
timotimo don't think so 17:04
TimToady it was more of a comment on the sad state of patent law
japhb true enough
17:05 jnap joined
TimToady I think the microbenchmarks tend to stay in cache, whereas real code doesn't (yet) 17:05
17:06 guru joined, guru is now known as Guest34431
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:06 Guest34431 is now known as ajr_
TimToady or at least batchy 17:08
17:09 denis_boyun left
pmurias japhb: are any of the plot not a microbenchmark? 17:10
TimToady the rc-* ones are larger 17:11
interesting that the only place we've had a bit of slowdown is in native 2d indices 17:15
well, and maybe a hair on 9-billion-names
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:28
pmurias: Yeah, TimToady is right. Also json parsing. 17:29
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
17:30 jnap left
timotimo are there benchmarks we can throw out at some point? %) 17:30
japhb timotimo: Maybe. For now, I'm still seeing optimization work benefitting from the microbenchmarks 17:31
timotimo OK :)
japhb (I do actually try to pay attention to how it's getting used. :-) 17:32
pmurias japhb: currently I'm working on getting my rewriten nqp-js to run the existing ones 17:33
timotimo :) 17:34
17:35 anaeem1 joined 17:36 zakharyas joined 17:37 anaeem1 left 17:38 thou joined 17:39 anaeem1 joined
japhb pmurias: Awesome. :-) 17:41
timotimo huh, nqp-js is getting a rewrite?
japhb timotimo: Something for your next p6weekly. :-) 17:42
17:42 anaeem1 left, thou left
FROGGS[mobile] timotimo: btw, the Perl 6 version of v5 passes nearly 10% of the tests the nqp version passes (about 8000) 17:44
steadily growing
17:45 chenryn left
timotimo 10% of how many %? :) 17:45
that doesn't sound so encouraging :D
FROGGS[mobile] well, now there are only minor issues...
17:46 cooper- joined
FROGGS[mobile] like a nqp::p6bool here and a .list there... 17:46
porting EXPR really was pain, and that is past :o) 17:47
timotimo OK :)
pmurias timotimo: I'm making nqp-js emit much better code, emit sourcemaps, removing old hacks (and adding new ones ;) 17:48
dalek ast/S26-WHY: a02da85 | (Rob Hoelz)++ | S26-documentation/why-trailing.t:
Add a multi-line decl test for trailing docs
17:51
timotimo OK :)
pmurias for example the old code was ignoring $*WANT and just casting all the types at runtime 17:54
17:58 rindolf left 17:59 anaeem1_ joined
hoelzro there's no specification for getting the candidates of a role group, is there? 17:59
ex. role Boxer {} ; Boxer.HOW # ParametricRoleGroupHOW
but I would like the ParametricRoleHOW that represents Boxer[] 18:00
jnthn hoelzro: You can introspect the group iirc 18:10
hmm 18:11
BenGoldberg m: (role Boxer {}).HOW.say;
camelia rakudo-moar d0bf8a: OUTPUT«Perl6::Metamodel::ParametricRoleHOW.new()␤»
jnthn no, we're missing an introspection method for that. D'oh.
hoelzro yeah, I didn't see one =/ 18:12
I'll mark the role WHY tests as TODO, then
jnthn Well, we can add one easy enough
hoelzro true 18:13
jnthn method possibilities($obj) { nqp::clone(@!possibilities) }
May want a nicer name
hoelzro I'm trying to avoid other changes to Rakudo for the S26 stuff
jnthn
.oO( groupies :) )
hoelzro heh
trying to come up with something that I can merge in
jnthn Well, then put the above in master and merge :)
hoelzro heh
18:14 anaeem1_ left
hoelzro when's 2014.08 supposed to go out? 18:14
jnthn I think it should be there anyway.
Thu
hoelzro heh
one day too late!
I'm going to a project night on Thursday my TZ
and I was hoping to finish the S26 work then and there
hoelzro knocks on wood
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
jnthn Should probably rename other bits in there to candidates too 18:16
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
hoelzro I could just do it right now =) 18:17
on nom
I'll run a quick spectest with current nom, so I can see if I break anything =)
pmurias jnthn: :$want can be undefined in the as_* methods in the QAST::Compiler 18:18
jnthn: when should it be the case?
jnthn pmurias: When the calling thing doesn't have a context that it'd prefer 18:19
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.
pmurias are there a lot of such places? I think I might attempt to make :$want mandatory in the javascript QAST::Compiler 18:21
18:22 anaeem1 left
pmurias for the if ... {} I have a special boolean thing context 18:22
jnthn Heh, I'd been pondering a boolean context thingy in the Moar one too :) 18:23
I'm not all that sure how often it is, but I suspect that isn't the only case.
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
jnthn *nod* 18:23
Yeah, it makes sense.
I want it for p6bool elimination... 18:24
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:26 kaare_ left
dalek p-js: 828a4c5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
More progress towards running test 59.

Handle QAST::Var's with positional scopes, implement nqp::elems, nqp::split. Make the use of :$want in as_js mandatory.
18:28
18:34 kaare__ left 18:35 molaf_ joined
dalek p-js: 55bdb9a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::ceil_n, nqp::floor_n, nqp::abs_n.
18:35
hoelzro $multi.candidates isn't spec'd, is it? 18:37
I'm just wondering if I should add the new ParametricRoleGroupHOW.candidates method to the spec
18:38 molaf left 18:39 fling left
hoelzro grr 18:41
it doesn't seem like this will be as easy as I'd hoped
No such method 'candidates' for invocant of type 'Perl6::Metamodel::ClassHOW'
hoelzro forgot about the punning that happens
I had this problem with WHY too 18:42
and I was wondering if WHERE should avoid the pun too
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
HOW should probably avoid the pun
actually, all of those kooky methods should 18:48
</braindump>
shower &
FROGGS perl6-m -Ilib -e 'use v5; $a = 42; sub foo { say $a; my $a = 21; say $a }; foo()' 18:50
42
21
\o/
who wants some scary Perl 5? :D
BenGoldberg Sure, why not? 18:51
dalek p-js: cf3f7f1 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Remove debugging statements.
19:00
p-js: 1ea1882 | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement nqp::islist and boolification of list.
psch scary Perl 5 \o/ FROGGS++ 19:01
19:09 pmurias left
hoelzro how does Boxer.HOW.candidates(Boxer) differ from Boxer.^candidates? 19:10
19:11 Sqirrel left
timotimo doesn't 19:11
$foo.^foobar is short for $foo.HOW.foobar($foo) 19:12
19:17 Colby` joined 19:18 darutoko left
hoelzro hmm 19:18
well, the former works for my new method
but the latter doesn't o_O
timotimo does your method take the instance as first argument? 19:19
hoelzro mhmm
19:19 Pleiades` left, Colby` is now known as Pleiades` 19:26 thou joined 19:32 thou left 19:38 iarna joined 19:48 aindilis left, huf left, Pleiades` left, ggoebel1111119 left, ventica2 left, spider-mario left, rjbs left, clkaoud left, revdiablo left, pmichaud left, kst left, stux|RC left, Gothmog_ left, broquaint left, eiro left, kurahaupo left, _sri left, Celelibi left, smash left, ribasushi left, brother left, ggherdov left, sivoais left, salv0 left, krunen left, takesako left, vike left, j4jackj left, FROGGS[mobile] left, Akagi201 left, yeltzooo left, clkao left, mtj left, mtj_- left, oetiker left, Alula_ left, noganex left, immortal left, japhb left, haroldwu left, ponbiki left, amkrankruleuen left, djanatyn left, ilbot3 left, DarthGandalf left, synopsebot left, pecastro left, coffeeyy_ left, Woodi left, rhr left, bcode left, Juerd left, Tene left, dylanwh left, lestrrat left, cotto left, Exodist left, lee_ left, molaf_ left, zakharyas left, akaseki left, dalek left, ivanshmakov| left, Psyche^ left, cooper- left, rurban1 left, timotimo left, tinyToday left, en left, PZt left, mls left, Bucciarati left, pochi left, rurban left, betterworld left, PerlJam left, xfix left, ivan`` left, yogan left, moritz left, camelia left, cxreg left, sorear left, tokuhirom left, pnu left, ajr_ left, ren1us left, lizmat left, simcop2387 left, arnsholt left, mhasch left, Ulti left, carlin left, tadzik left, [Coke] left, epochbell left, apejens left, raydiak left, Util left, iarna left, cibs left, [Sno] left, Vlavv left, Khisanth left, woolfy left, sjohnson left, bjz left, psch left, integral_ left, isacloud____ left, flussence left, yakudzo left, kshannon left, erdic left, xiaomiao left, jlaire left, felher left, charsbar__ left, Maddingue left, nebuchadnezzar left, BinGOs left, mst left, masak left, geekosaur left, Grrrr left, nwc10 left, jtpalmer_ left, diakopter left, tony-o left, jnthn left, hoelzro left, ChoHag left, gfldex left, itz left, PotatoGim left, btyler_ left, SHODAN left, mathw left, [particle]1 left, sftp left, avar left, eMBee left, wtw left, Possum left, labster left, hugme left, yoleaux left, jercos left, cono left, c1sung left, sunnavy left, bloonix_ left, go|dfish left, nickpatc1 left, Rounin left, atta left, felipe left, Timbus left, risou left, BenGoldberg left, Rotwang left, xragnar left, BooK left, eternaleye left, lue left, baest left, klaas-janstol left, telex left, mr-foobar left, xinming left, colomon left, MilkmanDan left, daxim left, sjn left, muraiki left, robinsmidsrod left, ingy left, retupmoca left 19:51 ClarusCogitatio_ joined, ventica joined, iarna joined, Pleiades` joined, molaf_ joined, LAA80NI joined, zakharyas joined, ajr_ joined, j4jackj joined, rurban1 joined, akaseki joined, ChoHag joined, ggoebel1111119 joined, bjz joined, timotimo joined, kurahaupo joined, ventica2 joined, spider-mario joined, FROGGS[mobile] joined, tinyToday joined, gfldex joined, ren1us joined, noganex joined, dalek joined, ivanshmakov| joined, Psyche^ joined, en joined, aindilis joined, [Sno] joined, itz joined, _sri joined, PotatoGim joined, Akagi201 joined, Alula_ joined, psch joined, immortal joined, huf joined, PZt joined, amkrankruleuen joined, lizmat joined, simcop2387 joined, Celelibi joined, smash joined, djanatyn joined, btyler_ joined, japhb joined, ilbot3 joined, asimov.freenode.net sets mode: +v dalek, DarthGandalf joined, rjbs joined, ribasushi joined, brother joined, SHODAN joined, integral_ joined, isacloud____ joined, yeltzooo joined, Vlavv joined, ggherdov joined, flussence joined, mathw joined, mls joined, yakudzo joined, kshannon joined, synopsebot joined, pecastro joined, coffeeyy_ joined, [particle]1 joined, sftp joined, sivoais joined, salv0 joined, Khisanth joined, Bucciarati joined, pochi joined, rurban joined, clkaoud joined, clkao joined, revdiablo joined, pmichaud joined, Woodi joined, cono joined, woolfy joined, avar joined, eMBee joined, cibs joined, wtw joined, haroldwu joined, Possum joined, kst joined, betterworld joined, erdic joined, mtj joined, mtj_- joined, stux|RC joined, rhr joined, arnsholt joined, Gothmog_ joined, broquaint joined, PerlJam joined, labster joined, oetiker joined, mhasch joined, hugme joined, krunen joined, yoleaux joined, Ulti joined, xfix joined, ivan`` joined, eiro joined, ponbiki joined, jercos joined, takesako joined, c1sung joined, carlin joined, bcode joined, tadzik joined, xiaomiao joined, sunnavy joined, jlaire joined, yogan joined, vike joined, felher joined, [Coke] joined, epochbell joined, bloonix_ joined, go|dfish joined, charsbar__ joined, nickpatc1 joined, Maddingue joined, apejens joined, Util joined, Rounin joined, atta joined, sjohnson joined, raydiak joined, Juerd joined, lee_ joined, Exodist joined, cotto joined, lestrrat joined, dylanwh joined, Tene joined, felipe joined, asimov.freenode.net sets mode: +vv hugme yoleaux, Timbus joined, risou joined, nebuchadnezzar joined, BinGOs joined, masak joined, mst joined, geekosaur joined, Grrrr joined, diakopter joined, nwc10 joined, jtpalmer_ joined, tony-o joined, jnthn joined, hoelzro joined, moritz joined, camelia joined, cxreg joined, sorear joined, tokuhirom joined, pnu joined, asimov.freenode.net sets mode: +v camelia, LAA80NI joined, nhayashi left
hoelzro jnthn: well, that 19:51
timotimo japhb: are you still attentive?
19:51 nhayashi joined
hoelzro along with WHY and WHERE 19:51
I find it odd that they pun
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:52 ventica2 left, BenGoldberg joined, Rotwang joined, xragnar joined, BooK joined, eternaleye joined, lue joined, baest joined 19:53 klaas-janstol joined, mr-foobar joined, xinming joined, colomon joined, MilkmanDan joined, daxim joined, sjn joined, muraiki joined, robinsmidsrod joined, ingy joined, retupmoca joined
japhb timotimo: I'm here now 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
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
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.)
nodnod 19:55
psch m: sub foo($a, $) { }; say &foo.signature.params>>.name # uhh... 19:57
camelia rakudo-moar d0bf8a: OUTPUT«(signal )»
jnthn ugh 19:58
Looks like some unhandled null
psch m: sub foo($a, $b) { }; say &foo.signature.params>>.name
camelia rakudo-moar d0bf8a: OUTPUT«$a $b␤»
19:59 ClarusCogitatio_ left
psch jnthn: that's linked to #69492 as well i think 19:59
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69492
psch or rather, a consequence of it
not the issue directly, but the name of any anon param breaks
20:00 rurban1 left
BenGoldberg Speaking of anon-things breaking: 20:00
r: my $f = class { }; $f.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); $f.new.bar; 20:01
20:01 ClarusCogitatio joined
camelia rakudo-moar d0bf8a: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤ in block at /tmp/tmpfile:1␤␤» 20:01
..rakudo-{parrot,jvm} d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤ in block at /tmp/tmpfile:1␤␤»
timotimo japhb: is there a better trick to getting the number of runs per test down? 20:02
--enough-time=0.1?
.o(though, is that enough to kick off spesh and the jit 20:06
20:07 araujo joined 20:13 klaas-janstol left
psch sleeps & 20:13
FROGGS gnight psch 20:14
20:15 cibs left, rindolf joined, j4jackj left 20:16 j4jackj joined
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␤»
..rakudo-jvm d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>'␤ in block at /tmp/tmpfile:1␤␤»
timotimo www.reddit.com/r/perl6/comments/2co...at/cjs4rpv - links to my benchmarks
20:17 cibs joined
jnthn FROGGS: Got a fix for that in Moar locally 20:20
Also for the psch segv 20:21
FROGGS hmmmm, that sounds like I should retest JSON::RPC after your patches... 20:22
20:29 haroldwu left
jnthn bah, I forgot a return, which made weird bugs, so retesting... 20:29
20:32 pmurias joined
dalek kudo/nom: 95da918 | jnthn++ | src/core/Parameter.pm:
Missing null check on param name introspection.
20:35
20:41 haroldwu joined
pmurias if I create a branch localy, how do I push it to my github repo? 20:47
FROGGS pmurias: does origin point to your repo? 20:48
if not: 20:49
git remote add pmurias <url to your repo>
git push pmurias <branch name> 20:50
dalek p-js/gh-pages: 122e491 | (Pawel Murias)++ | index.html:
Initial homepage.
20:51
20:54 Possum left 20:55 ajr_ left
dalek p-js/gh-pages: 9ff6657 | (Pawel Murias)++ | / (2 files):
Put an interactive example on the homepage.
20:56
pmurias do we have anything to turn nqp code into syntax highlighted html? 20:57
diakopter nqp-js?
(kidding.)
pmurias.github.io/nqp-js/ <- is this right? 20:58
dalek p-js/gh-pages: 0657204 | (Pawel Murias)++ | / (2 files):
Link to the nqp code for the example.
20:59 Possum joined
dalek p-js/gh-pages: ad5457f | (Pawel Murias)++ | index.html:
Put the link to the example code in a better place.
21:01
pmurias diakopter: yes that's the correct url 21:02
diakopter: it should allow you to draw black and white circles
FROGGS pmurias: it works on my box 21:03
(firefox) 21:04
21:07 BenGoldberg left
pmurias it's not really a proper homepages yet, just a way to share a simple example 21:11
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
japhb timotimo: Saw your highlight. Are you asking to see fewer steps in the scaling (so fewer total runs)? 21:15
jnthn pmurias: ooh, cool :) 21:17
timotimo japhb: no, just have fewer executions of the perl6-m binary
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
timotimo because each will generate pretty much the same jit log for start-up
japhb Well, we can reduce the number of runs per scale 21:18
(From 2 to 1, IIRC)
21:19 thou left
timotimo right, i set --runs=1 21:19
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
otherwise we'll just see jit stuff for startup, but none for the actual benchmark in question
japhb Right, that's what I was talking about a couple minutes ago. 21:20
timotimo oh 21:21
21:22 Mouq joined
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:22
timotimo pmurias: i have to tell my chrome to "load unsafe script" to make that work 21:23
masak could that be a same-origin policy thing? 21:28
timotimo maybe
pmurias does chrome say anything else? 21:32
21:33 Possum left
dalek p-js/gh-pages: 35025bc | (Pawel Murias)++ | index.html:
Remove http:// prefix from cdn url.
21:34
pmurias timotimo: does the problem persist? 21:35
timotimo now it works just fine 21:37
21:47 Possum joined 21:49 rurban1 joined 21:56 mr-foobar left, zakharyas left, mr-foobar joined 22:02 rurban2 joined
dalek ast: 1d0923d | (Rob Hoelz)++ | S14-roles/parameterized-basic.t:
Add test for new candidates method on ParametricRoleGroupHOW
22:03
kudo/nom: 198f51b | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
Rename possibilities to candidates for role group candidates
22:04
kudo/nom: 9e475e2 | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
Add candidates method to ParametricRoleGroupHOW
22:05 rurban1 left 22:10 rurban1 joined 22:14 rurban2 left 22:22 rurban2 joined, rurban2 left 22:26 rurban1 left
hoelzro I'm guessing the reason that the role is punned is because dispatch:<.^> is a method call? 22:28
jnthn Yes 22:29
22:31 Psyche^_ joined 22:35 Psyche^ left, rurban1 joined 22:49 rindolf left 22:53 pmurias left 22:54 rurban1 left
j4jackj "punned" 22:55
i didn't know this was a thing
o.o
masak for some reason, here in Perl 6 land, "punned" almost always means "the role pretends it's a class".
out in the wider world, it just means "this type pretends to be that type".
e.g. type punning is what makes `if @things { ... }` not complain that it got an array, not a bool. 22:57
jnthn The role and the class that composes exactly that role and inherits from Any *are* different types. 22:58
22:58 ventica2 joined 22:59 ventica left
masak not contesting that, at all. 22:59
just saying we've taken to using the term in a very restricted context.
22:59 spider-mario left
jnthn True; I guess 'cus we don't tend to think of the other case as anything unusual :) 23:00
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
if classes were parametric, or if roles could be instantiated, I'd happily use that ;)
23:02 thou joined
masak 'night, #perl6 23:04
23:07 thou left 23:11 Akagi201_ joined, Akagi201 left
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:18
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:19
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?
Yes, I'd guess one of those two also.
japhb That's the only one I've tried, I was doing some heavy threading work.
Want me to try with r-m?
jnthn Well, I'm guessing it goes boom early-ish... 23:21
Does putting .eager on your constant decls also help?
TimToady does = eager grep help?
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.
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.
japhb OK, I'll but eagers in the Clusters.pm definitions
Mouq m: my @a; @a[2;3] = 42; say @a.perl # Doesn't autoviv :| 23:23
camelia rakudo-moar 9e475e: OUTPUT«Array.new()␤»
japhb Yeah, works perfectly if Clusters.pm contains 'constant @LIST_B is export = eager @LIST_A.grep: ...' 23:24
I thought list assignment (as opposed to bind) was supposed to be eager? Or is constant definition always binding? 23:25
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.
japhb Is that spec, or just implementation?
TimToady it's spec
japhb Oh, hmmm. I'll have to keep that in mind.
TimToady pseudoassignment depends on the declarator
23:26 kst left
TimToady pseudoassignment to 'has' and 'state' have their own idiosyncracies 23:27
Mouq TimToady: does this help? github.com/rakudo/rakudo/commit/1d...2b820d2fd7
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
m: [42; 43]
camelia rakudo-moar 9e475e: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
TimToady but that's parsed with semilist, and doesn't do the processing that statementlist does 23:29
maybe I can trace it back from the warning end
jnthn I believe the warning is spat out in src/Perl6/Optimizer 23:30
Mouq github.com/rakudo/rakudo/blob/nom/....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
and trying to decide if we need a deprecation first
Mouq TimToady: zip(@a;@b;@c) too?
TimToady hopefully we get that too 23:32
though named args are weird
Mouq ew...
TimToady zip(@a;@b;@c) :carefully
I guess that would work...
Mouq maybe they can float to the top somehow? 23:33
TimToady or just steal them from the sublists
23:34 kst joined
TimToady now imagines an S operator that sinks its self side and returns its right 23:35
as a variant on the S metaoperator
but then I notice that semicolon also begins with s 23:36
which is a weird coincidence
jnthn Ain't that what ; does in semilists now? ;)
TimToady yes, be we wanna steal it
*but
so S would a list infix precedence ; or so :) 23:37
or we could use $ and confuse the Haskellers completely :)
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 :)
TimToady yeah, ; is the right sze
*i
I looked for something else, but nothing looked decent 23:38
23:40 fling joined
TimToady and sunk statements are so non-FP in the first place... 23:40
if we added S, I'd just tell everyone it's the C comma operator, I suppose 23:41
arguably it should be C then... 23:42
but then the fortran programmers will expect a comment
and we already have an S metaop specced for sequential, if NYI 23:43
it would just default to C comma operator instead of the Perl comma operator
23:44 silug joined
TimToady Mouq: you don't happen to recall what blew up when you tried to LoLify semilist, do you? 23:46
Mouq TimToady: No, sorry. Is it proving to be harder than a drop-in change? 23:47
23:49 BenGoldberg joined
TimToady haven't tried yet, still scoping it out to try to understand 23:50
which is hard for a geezer like me :)
Not all of my stupidity is feigned. :) 23:51
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:53
TimToady yes, being stubborn helps compensate :) 23:54
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 avuserow left
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:57 iarna left
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))␤»
Mouq jnthn++
23:58 iarna joined
lue I like the look of the double comma, in a way. 23:59