Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-03-02

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:09 timotimo gen-recents.pl results in a 15 mb sized profile reslut >_<
00:09 timotimo result*
00:12 tadzik timotimo: I like it :)
00:13 timotimo have you actually tried it? :P
00:13 tadzik oh, you know the answer :P
00:13 tadzik "I didn't tested, I only proved it correct" :P
00:13 timotimo there should be something clever to prevent filenames that are illegal sub names from b0rking the eval
00:14 tadzik hmm
00:14 tadzik sub subify($ify)
00:14 timotimo :D
00:15 dalek rakudo-star-daily: 7e5ae07 | coke++ | log/ (10 files):
00:15 dalek rakudo-star-daily: today (automated commit)
00:15 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/7e5ae07315
00:15 * psch &
00:16 japhb .ask nine_ It looks like Inline::Python still depends on NativeCall; can you remove that dependency?
00:16 yoleaux japhb: I'll pass your message to nine_.
00:16 laouji joined #perl6
00:17 [Coke] literal++ #vimmy
00:18 laouji_ joined #perl6
00:19 * timotimo waits for the routine list to become sorted ...
00:22 japhb What's the rakudobrew idiom for saying "Whatever you have built that's not from a tag, pull and rebuild them, and do the same for the modules, and stay switched to the same build"?
00:29 timotimo the tab crashed instead ...
00:32 timotimo interesting
00:32 timotimo 1000 local deopts inside the "of" method of Array in the script
00:38 clawft joined #perl6
00:40 laouji joined #perl6
00:45 laouji joined #perl6
00:48 Akagi201 joined #perl6
00:53 avuserow it has a note in the README saying that it doesn't validate SQL yet :(
00:53 avuserow oops
00:53 avuserow ww
00:56 raiph joined #perl6
01:14 cognominal joined #perl6
01:19 laouji_ joined #perl6
01:22 japhb m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join('', $a); my str $c = 'c'; nqp::push($a, $c); say nqp::join('', $a);
01:22 camelia rakudo-moar 28fddb: OUTPUT«b␤This representation (NativeRef) cannot unbox to a native string␤  in block <unit> at /tmp/7waVMu42MC:1␤␤»
01:22 timotimo m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join('', $a); my str $c = 'c'; nqp::push($a, $c); say nqp::join($a, '');
01:22 camelia rakudo-moar 28fddb: OUTPUT«b␤This representation (VMArray) cannot unbox to a native string␤  in block <unit> at /tmp/aX2WaJm5dT:1␤␤»
01:23 timotimo m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join($a, ''); my str $c = 'c'; nqp::push($a, $c); say nqp::join($a, '');
01:23 camelia rakudo-moar 28fddb: OUTPUT«This representation (VMArray) cannot unbox to a native string␤  in block <unit> at /tmp/TMpW3vE58Z:1␤␤»
01:23 timotimo hm
01:23 timotimo oh, i see what you're getting at
01:23 japhb .tell jnthn It looks like nativeref broke the new IO::Path.resolve code; nqp::join of an nqp::list containing constants works, but nqp::push a single native str, and boom.
01:23 yoleaux japhb: I'll pass your message to jnthn.
01:25 Hor|zon joined #perl6
01:26 japhb .tell jnthn See http://irclog.perlgeek.de/p​erl6/2015-03-02#i_10203236 .  The existance of other elements is not essential; just a single native str element by itself will break.
01:26 yoleaux japhb: I'll pass your message to jnthn.
01:27 japhb m: my Mu $a := nqp::list(); my str $c = 'c'; nqp::push($a, $c); say nqp::join('', $a);
01:27 camelia rakudo-moar 28fddb: OUTPUT«This representation (NativeRef) cannot unbox to a native string␤  in block <unit> at /tmp/vWnyqguQpT:1␤␤»
01:40 ash_gti joined #perl6
01:46 BenGoldberg joined #perl6
01:52 timotimo m: say nqp::join('', nqp::list(my str $c = 'c'))
01:52 camelia rakudo-moar 28fddb: OUTPUT«c␤»
01:52 timotimo interesting
01:53 timotimo this one doesn't seem to take a reference
02:01 Akagi201 joined #perl6
02:02 timotimo .tell FROGGS i just force-pushed over an incomplete commit; you'll need to git reset origin/master in your cpandatesters.perl6.org checkout i'm afraid
02:02 yoleaux timotimo: I'll pass your message to FROGGS.
02:04 timotimo but it seems like the "latest reports" page works properly now
02:08 timotimo i went ahead and uploaded the report i generated manually: http://testers.p6c.org/recent.html
02:08 timotimo looks good?
02:08 timotimo not quite, the links to reports aren't correct
02:10 timotimo .tell FROGGS and it seems like the lock for generating reports has gotten stuck :(
02:10 yoleaux timotimo: I'll pass your message to FROGGS.
02:12 skids .botsnack
02:12 yoleaux :D
02:12 timotimo .tell FROGGS i forgot i got root access on that server so i just did it myself, you have to do nothing (except of course have a look at it and be happy :D )
02:12 yoleaux timotimo: I'll pass your message to FROGGS.
02:13 kaare_ joined #perl6
02:15 aborazmeh joined #perl6
02:15 aborazmeh joined #perl6
02:23 mr-foobar joined #perl6
02:32 yeahnoob joined #perl6
02:32 kaare__ joined #perl6
02:32 chenryn joined #perl6
02:39 grondilu Configuring native build environment ................... JIT isn't supported on i586-linux-gnu-thread-multi-64int yet.
02:40 grondilu ^ I wonder where the multi-64int comes from since I'm pretty sure this is 32bits.
02:46 ilbot3 joined #perl6
02:46 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
03:09 timotimo .tell masak i've got a nice little pull request for Crypt :)
03:09 yoleaux timotimo: I'll pass your message to masak.
03:14 Hor|zon joined #perl6
03:17 timotimo ooooh, FROGGS made a Punycode module!
03:18 Psyche^ joined #perl6
03:28 timotimo m: say ("foo" R=> "bar")
03:28 camelia rakudo-moar 28fddb: OUTPUT«bar => foo␤»
03:29 kaare_ joined #perl6
03:34 noganex joined #perl6
04:05 Sqirrel joined #perl6
04:12 timotimo colomon: you have a t/02-timeout.t running for 37 hours eating 100% cpu on two cores (because two instances of it are running at the same time)
04:12 timotimo .tell colomon you have a job running on hack.p6c.org that's been eating 100% cpu for a LONG time now
04:12 yoleaux timotimo: I'll pass your message to colomon.
04:12 colomon HUH
04:12 yoleaux 04:12Z <timotimo> colomon: you have a job running on hack.p6c.org that's been eating 100% cpu for a LONG time now
04:12 timotimo ah, there you are
04:12 colomon THought I checked this morning....
04:12 timotimo oh, hold on
04:12 timotimo 300% cpu usage
04:13 colomon so what module has 02-timeout.t ?
04:15 timotimo don't know, try that git repository moritz built with all of the ecosystem modules
04:17 colomon moritz++ timotimo+_
04:17 colomon moritz++ timotimo++
04:18 colomon Test::ClientServer ?
04:19 colomon https://github.com/flussence/Test-Cli​entServer/blob/master/t/02-timeout.t
04:31 timotimo i'm making this worse and worse and worse
04:31 colomon ?
04:34 timotimo cpandatesters
04:43 TimToady m: my method foo(::self: *@stuff) { say self; say @stuff}; foo(42,43,44)
04:43 yoleaux 1 Mar 2015 09:48Z <jnthn> TimToady: it's a little pain with our one-passness, but I wonder if *%_ generation being triggered by the presence of a nextsame/callsame somewhere in the method body would do it.
04:43 yoleaux 1 Mar 2015 16:38Z <jnthn> TimToady: I've tended to consider .WHAT as an object-y operation, so even though it's macro-esque already and not in any sense a method call, it still compiles the thing it's operating such that it wants a boxed object. Thus I'd not expected it ever could return a native type. Is there anything in the design docs supporting any view besides mine? :)
04:43 camelia rakudo-moar 28fddb: OUTPUT«===SORRY!===␤Lexical 'self' already declared␤»
04:43 TimToady hah
04:44 TimToady oh, literal++ too :)
04:45 TimToady m: my method foo(\self: *@stuff) { say self; say @stuff}; foo(42,43,44)
04:45 camelia rakudo-moar 28fddb: OUTPUT«===SORRY!===␤Lexical 'self' already declared␤»
04:45 TimToady that seems a bit suboptimal...
04:46 hugme joined #perl6
04:47 mr-foobar joined #perl6
04:48 telex joined #perl6
04:49 TimToady m: my method foo(::class: *@stuff) { say class; say @stuff}; foo(42,43,44)
04:49 camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pV9HNSIqzD␤Compilation unit cannot be anonymous␤at /tmp/pV9HNSIqzD:1␤------> 3ethod foo(::class: *@stuff) { say class;7⏏5 say @stuff}; foo(42,43,44)␤»
04:53 ash_gti joined #perl6
04:53 TimToady std: my method foo(::class: *@stuff) { say class; say @stuff}; foo(42,43,44)
04:53 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤     'foo' used at line 1␤Check failed␤FAILED 00:01 145m␤»
04:54 TimToady std: my method foo(::class: *@stuff) { say class; say @stuff}
04:54 camelia std 28329a7: OUTPUT«ok 00:01 141m␤»
04:54 TimToady STD requires space after 'class' and many other keywords
04:55 TimToady std: if$_ { say "hi" }
04:55 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Two terms in a row (listop with args requires whitespace or parens) at /tmp/0mjWC5N7PH line 1:␤------> 3if7⏏5$_ { say "hi" }␤    expecting any of:␤  POST␤   argument list␤  feed_separator␤ infix or meta-infix␤    infixed function…»
04:56 timotimo i finally have a state where things are not b0rken
04:56 laouji_ joined #perl6
05:00 * timotimo rebuilds the last ~1.5k reports on cpandatesters
05:00 TimToady m: if$_ { say "hi" }
05:00 camelia rakudo-moar 28fddb: ( no output )
05:00 TimToady that's kinda wrong by STD's lights
05:02 Hor|zon joined #perl6
05:20 ash_gti joined #perl6
05:25 timotimo gen-report.pl swallows more and more memory the longer it runs :(
05:27 timotimo i wonder if its per-page render time gets worse the more memory the whole process has eaten, due to gc etc
05:30 avuserow is it possible to somehow run a grammar against a file whose contents won't fix in memory?
05:31 avuserow I'm imagining that I would run code within it to stream the interesting bits back to disk, or just collect a small fraction of the data in memory
05:31 timotimo not yet, sadly
05:33 avuserow is there a plan for it, out of curiosity?
05:33 timotimo yeah
05:33 avuserow I don't actually need this at present, since the file I'm parsing happens to be line-oriented enough that I can cheat
05:34 timotimo one thing is we want to have is to be able to cut off the stuff you've passed over so far at certain points
05:34 timotimo that's <cut>
05:35 timotimo one other thing is we want to have "Cat", lazy strings that you can match over that don't have to be in the object right from the start
05:37 avuserow yeah, I know of Cats as "lazy strings" but nothing beyond that
05:37 jack_rabbit joined #perl6
05:37 avuserow also, is there an easy way to find out the next N characters of data after my rules stopped matching?
05:37 avuserow Grammar::Tracer and ::Debugger are useful but don't seem to have any way to inspect the next bits...
05:39 timotimo perl6-debug-m will allow you to see what comes up
05:39 avuserow okay cool, thanks timotimo
05:40 timotimo but it won't automatically stop when something doesn't match
05:42 dayangkun joined #perl6
05:47 rindolf joined #perl6
05:49 tmch joined #perl6
05:51 diana_olhovik joined #perl6
06:02 chenryn joined #perl6
06:10 laouji joined #perl6
06:26 perlh joined #perl6
06:35 moritz \o
06:52 Hor|zon joined #perl6
06:57 Alina-malina joined #perl6
06:58 Rounin joined #perl6
06:58 bjz joined #perl6
07:09 diana_olhovik joined #perl6
07:24 anaeem1_ joined #perl6
07:31 tmch joined #perl6
07:41 davido__ joined #perl6
07:42 Khisanth joined #perl6
07:42 abraxxa joined #perl6
07:44 rindolf joined #perl6
07:47 Ven joined #perl6
07:52 wicope joined #perl6
07:53 FROGGS joined #perl6
07:57 moritz my wife's expressionistic rendering of camelia: https://twitter.com/Lilaloki21/s​tatus/571972671883350018/photo/1
08:03 zakharyas joined #perl6
08:05 FROGGS moritz: :P
08:05 yoleaux 1 Mar 2015 23:18Z <timotimo> FROGGS: can you put a cron job in that runs jobs/gen-recents.pl for cpandatesters so i can test my stuff?
08:05 yoleaux 02:02Z <timotimo> FROGGS: i just force-pushed over an incomplete commit; you'll need to git reset origin/master in your cpandatesters.perl6.org checkout i'm afraid
08:05 yoleaux 02:10Z <timotimo> FROGGS: and it seems like the lock for generating reports has gotten stuck :(
08:05 yoleaux 02:12Z <timotimo> FROGGS: i forgot i got root access on that server so i just did it myself, you have to do nothing (except of course have a look at it and be happy :D )
08:06 FROGGS what the
08:06 FROGGS ohh!
08:06 FROGGS timotimo++
08:06 FROGGS \o/
08:11 masak :)
08:11 yoleaux 03:09Z <timotimo> masak: i've got a nice little pull request for Crypt :)
08:11 masak good morning, #perl6
08:12 nwc10 good *, *
08:12 FROGGS morning
08:12 prime joined #perl6
08:12 prime joined #perl6
08:12 masak ooh, a nice little pull request for crypt! \o/
08:12 masak who is this timotimo guy, Santa Claus?
08:13 * masak is teaching today
08:14 darutoko joined #perl6
08:15 masak timotimo: merged -- thank you.
08:22 Ven o/, #perl6!
08:22 virtualsue joined #perl6
08:27 rurban joined #perl6
08:32 sergot morning #perl6
08:32 tenaglia joined #perl6
08:33 tenaglia left #perl6
08:34 laouji_ joined #perl6
08:37 Hor|zon joined #perl6
08:40 jnthn morning o/
08:40 yoleaux 1 Mar 2015 22:33Z <japhb> jnthn: Could you explain the reason for the performance difference between \a and $a params mentioned in 9cb3d64faab881cd8b4082f59417f98fea057d4b?
08:40 yoleaux 01:23Z <japhb> jnthn: It looks like nativeref broke the new IO::Path.resolve code; nqp::join of an nqp::list containing constants works, but nqp::push a single native str, and boom.
08:40 yoleaux 01:26Z <japhb> jnthn: See http://irclog.perlgeek.de/p​erl6/2015-03-02#i_10203236 .  The existance of other elements is not essential; just a single native str element by itself will break.
08:41 Ven joined #perl6
08:43 [Sno] joined #perl6
08:44 jnthn .tell japhb re 9cb3d64faa, it's not that the param binding performance is different, but rather the assignment code-gen. Assign code-gen is done differently by SIGIL ($ = use container spec stuff, @/% = call STORE method). Without a sigil, we don't know, so emit code that checks which of the two should be done.
08:44 yoleaux jnthn: I'll pass your message to japhb.
08:45 jnthn .tell japhb spesh should already be smart enough to do away with the check, but still better to generate smaller code in the first place...
08:45 yoleaux jnthn: I'll pass your message to japhb.
08:45 FROGGS jnthn: is that the so called 'slow binder'?
08:45 jnthn FROGGS: No, there's not really a name for it :)
08:45 FROGGS ahh
08:45 jnthn The 'slow binder' is about signature binding.
08:47 jnthn .tel japhb re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether.
08:47 jnthn .tell japhb re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether.
08:47 yoleaux jnthn: I'll pass your message to japhb.
08:48 jnthn .tell japhb the behavior change is what lets stuff like "($native-a, $native-b) = 1, 2" now work, fwiw.
08:48 yoleaux jnthn: I'll pass your message to japhb.
08:48 FROGGS timotimo++ # you even added a proper breadcrumb to the reports :o)
08:48 * FROGGS is much happy
08:49 * FROGGS is also happy that nwc10++ did a smoke run on raspberry
08:49 salv0 joined #perl6
08:51 jnthn m: my int $a = 1; my num $b = 1.2e0; ($a, $b) = 4, 4.2e0; say $a; say $b; # I hope it does work... :)
08:51 camelia rakudo-moar 28fddb: OUTPUT«4␤4.2␤»
08:51 jnthn m: my int $a = 1; my num $b = 1.2e0; ($a, $b) = 4, 4; say $a; say $b; # I hope this doesn't
08:51 camelia rakudo-moar 28fddb: OUTPUT«This type cannot unbox to a native number␤  in method STORE at src/gen/m-CORE.setting:8978␤  in block <unit> at /tmp/H3qoULWNXv:1␤␤»
08:52 jnthn Goody.
08:53 nwc10 jnthn++ # more good stuff
08:53 nwc10 FROGGS: that was some months ago
08:54 jnthn I think somebody else here mentioned they built r-m on a new raspberry recently
08:54 FROGGS nwc10: isnt that you? http://testers.p6c.org/reports/15598.html
08:55 nwc10 no, that isn't me. that's someone else being awesome
08:55 FROGGS ahh, another nick then :D
08:55 FROGGS nickl++
08:56 nwc10 anyway, it's good to know that (a) it still works (at all) (b) it works on ARM v7
08:56 FROGGS aye
08:57 nwc10 (Old Pis are ARM v6, and I tried to make the "how much misalignment can we get away with?" code arch specific, because there are also ARM v5 machines out there, and they are even more strict
08:57 nwc10 )
08:57 nwc10 not all the world is a VAX.
08:57 Ven joined #perl6
08:57 nwc10 (shame that Alpha died, as Alpha was so not a VAX, in one sense at least)
08:58 FROGGS I remember having trouble getting the build flags right to build libSDL on alpha...
09:00 jnthn Is ARM v7 LE or BE?
09:00 jnthn Uh, as config'd on an RP, I guess I should specify...
09:00 nwc10 IIRC "switchable".
09:01 nwc10 LE
09:01 nwc10 pretty much every ARM board is built LE
09:01 jnthn Right, the "switchable" is why I realized I'd been under-specific :)
09:01 jnthn OK, so doesn't tell us about our BE state, just our ARM state.
09:01 nwc10 there's a LE PowerPC port of Linux now from IBM, IIRC
09:03 fhelmberger joined #perl6
09:05 cschwenz joined #perl6
09:07 Hor|zon joined #perl6
09:08 larion joined #perl6
09:11 FROGGS huh, nice:
09:11 FROGGS java.lang.NullPointerException
09:11 FROGGS in compose_repr (gen/jvm/Metamodel.nqp:1440)
09:11 FROGGS (in OpenSSL)
09:13 Kristien joined #perl6
09:13 Kristien hi
09:15 Ven o/
09:20 Kristien I had this wonderful idea.
09:23 raydiak \o/ resolved my precomp issue and ended up with better encapsulation anyway...g'night #perl6
09:24 kjs_ joined #perl6
09:24 moritz good night raydiak++
09:24 dakkar joined #perl6
09:27 Kristien translating goto to CPS is difficult
09:27 Kristien jumping into continuations :'(
09:37 donaldh joined #perl6
09:37 jnthn Kristien: Using CPS as an intermediate program representation?
09:37 Kristien No, for the generated code
09:38 Kristien goto is in the intermediate representation
09:38 jnthn What're you generating?
09:38 Kristien JS XD
09:39 jnthn :)
09:39 Kristien I'm sick of the lack of stackful coroutines, so I simulate them using CPS for every function call.
09:42 jnthn In Rakudo on JVM we ended up transforming each block as we code-gen, and using the exception mechanism as a way to iterate/snapshot a call stack, in order to support delimited continuations... "fun" :)
09:44 Kristien :{
09:48 jnthn I didn't really want a separate CPS transform pass; designing a code-gen thing so most of the time you don't actually have to care about the simultaneous transform that's taking place was an interesting challenge.
09:48 * Ven 's watching as Kristien++ is trying to implement comefrom in js
09:49 Possum joined #perl6
09:49 Kristien noo not comefrom :v
09:49 FROGGS "getlexref_i: lexical is not an int" :o(
09:49 Kristien jnthn: I prefer a non-CPS IR because that's easier to optimise, and CPS is purely an implementation detail for the JS codegen
09:49 jnthn FROGGS: Urgh, I thought I fixed that one yesterday...
09:49 Kristien not for any other codegen I might want
09:49 FROGGS jnthn: ohh, I need to rebuild then :o)
09:50 jnthn Kristien: Maybe I'm just bad at thinking in continuations, but SSA always feels a lot more intuitive to me for an IR...
09:50 darutoko- joined #perl6
09:50 dalek rakudo/nom: 92404c3 | TimToady++ | src/ (5 files):
09:50 dalek rakudo/nom: keywords now require whitespace (unless shadowed)
09:50 dalek rakudo/nom:
09:50 dalek rakudo/nom: Now we parse keywords more like STD, requiring whitespace.  When we parse
09:50 dalek rakudo/nom: what might be a keyword, if there's whitespace after, it's always taken
09:50 dalek rakudo/nom: as a keyword.  If not, if the term has been defined elsewhere, we take
09:50 dalek rakudo/nom: that other definition.  Otherwise we carp about missing whitespace after
09:50 dalek rakudo/nom: the keyword.
09:50 dalek rakudo/nom:     my \if = 42; say (if) if if; # now says 42
09:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/92404c32d4
09:50 Kristien yeah my IR is SSA
09:51 jnthn TimToady is commiting at *this time of day*?! :D
09:51 Kristien the problem lies in generating JS for branch instructions because they can jump into continuations
09:51 jnthn TimToady++
09:51 Kristien I could generate a JS function for each basic block
09:52 jnthn m: my %h = not => 42;
09:52 camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/T5emuEwIGB␤Malformed initializer␤at /tmp/T5emuEwIGB:1␤------> 3my %h = not 7⏏5=> 42;␤    expecting any of:␤        prefix or meta-prefix␤»
09:52 dalek roast: c2b1d56 | TimToady++ | S (2 files):
09:52 dalek roast: adjust tests for required keyword spacing
09:52 dalek roast: review: https://github.com/perl6/roast/commit/c2b1d56613
09:52 darutoko- joined #perl6
09:52 jnthn TimToady: Does it fix ^^, ooc?
09:52 FROGGS TimToady++
09:53 TimToady probably not
09:54 Kristien Ven anyway, comefrom is not much more difficult to implement than goto
09:54 Ven Kristien: it's not about difficulty of implementation :P
09:54 Kristien you basically transform comefroms into labels and labels into gotos
09:55 jnthn TimToady: Hm, maybe it gets this one though:
09:55 jnthn m: sub not-foo { "2" }; say not-foo();
09:55 camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/92PJhPsNkk␤Undeclared routine:␤    foo used at line 1␤␤»
09:55 jnthn m: class class {}; say class.new.perl
09:55 camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PBlFtC8JmG␤Unable to parse class definition␤at /tmp/PBlFtC8JmG:1␤------> 3class class {}; say class7⏏5.new.perl␤    expecting any of:␤        generic role␤»
09:55 jnthn That one too perhaps :)
09:55 TimToady have a fix for not/so/temp/let
09:55 jnthn (These are all RTs)
09:56 Kristien comefrom is almost like an NTM!
09:59 bjz joined #perl6
10:00 sqirrel joined #perl6
10:00 TimToady doesn't fix class class yet, but only because of a bug in my fix :)
10:00 TimToady testing
10:00 TimToady my fix for not works
10:03 jnthn .oO( "does not work?" )
10:06 TimToady except it now disallows not()
10:06 virtualsue joined #perl6
10:07 jnthn That's not so good...
10:09 TimToady obviously named prefixes need a slightly different approach
10:12 Ven joined #perl6
10:12 dalek rakudo/nom: 9ddab5e | TimToady++ | src/Perl6/Grammar.nqp:
10:12 dalek rakudo/nom: require ws for package declarators
10:12 dalek rakudo/nom:
10:12 dalek rakudo/nom: also fix not/so/temp/let to check for hyphens and =>
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9ddab5e3d5
10:12 dalek rakudo/nom: 0143b75 | TimToady++ | src/Perl6/Grammar.nqp:
10:12 dalek rakudo/nom: named prefixes should allow parens
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0143b75adb
10:12 TimToady I think that fixes all of those
10:13 TimToady though arguably not() should really be a function, not a prefix on a unary expression that happens to start with (
10:15 jnthn yay
10:15 jnthn More bugs nailed :)
10:17 TimToady also, core/asyncops was probably misparsing last CHECK;
10:17 TimToady might possibly have contributed to the instability
10:18 TimToady dunno what last Nil does...
10:18 jnthn Me either!
10:18 TimToady though I wouldn't think it would flap
10:19 TimToady but it might've done unexpected flow control
10:19 TimToady or lack thereof
10:20 yeahnoob joined #perl6
10:20 TimToady well, passes all tests it passed before, so I think I'm gonna think about going to bed one of these hours
10:21 jnthn :)
10:21 TimToady there might be some tests can be unfudged now, but I'll let sumwunels do that
10:22 jnthn ++sumwunels
10:22 jnthn Rest well o/
10:28 virtualsue joined #perl6
10:31 espadrine joined #perl6
10:32 pecastro joined #perl6
10:34 xinming joined #perl6
10:52 ab5tract o/ #perl6
10:52 FROGGS hi ab5tract
10:52 ab5tract i was reading over last week's announcement
10:53 ab5tract FROGGS, is there a reason why the new op is called nativesizeof ?
10:53 FROGGS ab5tract: yes
10:53 ab5tract to me this is dangerously approaching PHP levels of naming inconsistency
10:53 FROGGS ab5tract: it is about native types and it gives you its sizeof
10:53 FROGGS ab5tract: but we have nativecast, no?
10:53 ab5tract yeah, and i've grumbled about that one too :)
10:54 FROGGS :o)
10:54 psch \o
10:54 ab5tract i think we should be really careful with this
10:54 FROGGS problem is that sizeof() on its own might give the wrong impression what it does...
10:54 jnthn What's inconsistent?
10:54 ab5tract native-size-of
10:54 jnthn Ah
10:54 ab5tract jnthn: we don't "smash case" any other ops
10:54 FROGGS ahh :o)
10:54 jnthn True
10:54 FROGGS yeah
10:54 FROGGS that makes sense
10:54 jnthn Yeah, that's a fair point
10:54 ab5tract and we should s/\_/\-/g
10:55 ab5tract for all the other internals as well (imo)
10:55 ab5tract nativecast is another exception to the smash casing
10:55 FROGGS except for all caps
10:55 ab5tract FROGGS: ineed
10:55 ab5tract *indeed
10:56 FROGGS does that mean that the 'is nativeconv' trait should be called 'is native-conv' ?
10:57 ab5tract it would be like mixing metric and royal measurements in the first intergalactic space cruiser ;)
10:57 ab5tract FROGGS: from my point of view, yes.
10:57 dalek roast: e30392a | peschwa++ | S06-signature/positional-placeholders.t:
10:57 dalek roast: Unfudge passing test.
10:57 dalek roast: review: https://github.com/perl6/roast/commit/e30392a1ea
10:57 dalek roast: cb31b77 | peschwa++ | S14-roles/anonymous.t:
10:57 dalek roast: Unfudge another passing test.
10:57 dalek roast: review: https://github.com/perl6/roast/commit/cb31b77873
10:58 Kristien joined #perl6
10:58 FROGGS okay, sounds like we want to try 'is DEPRECATED' in module space now :o)
10:58 ab5tract NativeCall could be argued to be a special case, because it interfaces with C where smash casing is common
10:58 jnthn native-sizeof is tempting in that sense :P
10:58 ab5tract but i'd actually argue the opposite, especially since it is shipped with rakudo now
10:58 FROGGS jnthn: aye
10:58 ab5tract jnthn: indeed, native-sizeof would definitely work for me
10:59 psch jnthn: i'm getting «Unhandled exception: Expected a native int argument for '$a'» in S02-types/native.t on jvm
10:59 jnthn psch: Then there's a bug somewhere in Compiler.nqp
10:59 jnthn Well, that's the most likely thing
10:59 dalek doc: b3797bb | (Matthias Krull)++ | htmlify.p6:
10:59 dalek doc: replace all occurrences of :: when generating path from class name
10:59 dalek doc: review: https://github.com/perl6/doc/commit/b3797bb563
11:00 nwc10 and we should keep tabs in Makefiles because the userbase is too large already.
11:00 FROGGS hmmm, jvm seems to have a problem with: class Foo is repr<CStruct> { has int32 $.idontcare; has Foo $.bar }
11:01 FROGGS this gives a NPE for OpenSSL
11:01 FROGGS nwc10: :P
11:01 nwc10 as in, the time to rename stuff is now.
11:01 psch huh, it's only int that fails the alias binding in the test
11:01 nwc10 Or rue the poor name for eterinity
11:02 FROGGS nwc10: yes, rename (alias), deprecate, remove
11:03 spider-mario joined #perl6
11:06 * jnthn did try to discourage adding kebab-case things anywhere in core, so as to keep us consistently with _
11:06 jnthn But, it seems kebabs are just too tempting
11:06 FROGGS aye
11:06 jnthn So I guess we should look at going with - everywhere instead...
11:06 Ven PLEASE_DONT_USE_KEBABCASE
11:06 FROGGS PLEASE_DON'T_USE_KEBABCASE
11:07 Ven *g*
11:07 FROGGS :o)
11:07 nwc10 PLEASE_DON::T
11:07 nwc10 oh, wait, IIRC in Perl 6 one can use '  ?
11:07 jnthn Yes :P
11:07 FROGGS m: constant PLEASE_DON'T_USE_KEBABCASE = 42
11:07 camelia rakudo-moar 0143b7: ( no output )
11:07 jnthn It doesn't mean :: :)
11:08 dalek specs: 50becca | TimToady++ | S02-bits.pod:
11:08 dalek specs: doc design of new keyword override rules
11:08 dalek specs: review: https://github.com/perl6/specs/commit/50becca740
11:11 FROGGS sad that the times when we specced something are over :o)
11:11 FROGGS now we spec test and doc design
11:14 FROGGS jnthn: I'd also deprecate OpaquePointer while I (or somebody else++) deprecates native\w+, okay?
11:15 jnthn I'm not sad; tests are much more precise :)
11:16 jnthn FROGGS: OpaquePointer becomes...?
11:16 jnthn Just Pointer?
11:16 FROGGS Pinter
11:16 FROGGS Pointer*
11:16 FROGGS aye
11:16 jnthn mmmm....pints!
11:16 FROGGS :P
11:16 FROGGS and a Pointer is in fact a Pointer[void]
11:16 jnthn *nod
11:16 jnthn *
11:16 jnthn OK, I'm fine with that.
11:16 FROGGS m: use NativeCall; say Pointer.of
11:16 camelia rakudo-moar 0143b7: OUTPUT«(void)␤»
11:16 FROGGS looks nice :o)
11:16 jnthn m: say void.REPR
11:17 camelia rakudo-moar 0143b7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OHgj7Uh2B6␤Undeclared routine:␤    void used at line 1␤␤»
11:17 jnthn m: use NativeCall; say void.REPR
11:17 camelia rakudo-moar 0143b7: OUTPUT«CPointer␤»
11:17 FROGGS it has to be something...
11:17 jnthn m: void.new
11:17 camelia rakudo-moar 0143b7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wMVcGh9jFE␤Undeclared routine:␤    void used at line 1␤␤»
11:17 jnthn gah!
11:17 FROGGS hehe
11:17 jnthn m: use NativeCall; void.new
11:17 camelia rakudo-moar 0143b7: ( no output )
11:17 jnthn Does that make sense? :)
11:17 jnthn Well, there's also the Uninstatiable REPR
11:18 jnthn Oh wait
11:18 FROGGS hmmm, I'd have to test if we can use that at all
11:18 jnthn Yeah
11:18 jnthn I mean
11:18 jnthn Pointer[void] is obviously a CPointer
11:18 jnthn But void itself...
11:18 jnthn -    token terminator:sym<if>     { 'if'     <.end_keyword> }
11:19 jnthn +    token terminator:sym<if>     { 'if'     <.kok> }
11:19 jnthn ...kok?
11:19 jnthn Oh..."keyword ok"
11:20 TimToady m: class class {}; say class.new.perl
11:20 camelia rakudo-moar 0143b7: OUTPUT«class.new()␤»
11:20 TimToady m: sub not-foo { "2" }; say not-foo();
11:20 camelia rakudo-moar 0143b7: OUTPUT«2␤»
11:20 TimToady m: my %h = not => 42; say %h
11:20 camelia rakudo-moar 0143b7: OUTPUT«not => 42␤»
11:20 TimToady there you go
11:23 dalek rakudo/nom: a164f30 | FROGGS++ | lib/NativeCall.pm:
11:23 dalek rakudo/nom: make void of repr Uninstantiable
11:23 dalek rakudo/nom:
11:23 dalek rakudo/nom: So one cannot create a void instance and cannot dereference a Pointer[void]
11:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a164f30f91
11:23 FROGGS jnthn++
11:23 TimToady m: my \m = 42; say "xxxyyyzzz" ~~ m:3nd/.../
11:23 camelia rakudo-moar 0143b7: OUTPUT«「zzz」␤»
11:23 TimToady &
11:23 FROGGS awesome!
11:25 jnthn 3nd :D
11:25 jnthn TimToady++
11:25 jnthn I'll write some tests and close some RTs if nobody beats me to it
11:25 jnthn (Not likely to have tuits until evening, though)
11:28 thilp left #perl6
11:28 donaldh Has anyone used NativeCall for mmap ?
11:29 FROGGS donaldh: not yet
11:29 donaldh I'm not sure our file ops are up to the task
11:29 thilp joined #perl6
11:29 donaldh So I'd end up nativecalling open as well
11:30 donaldh Correct me if I'm wrong but we only support read-only, write-only-truncate and write-only-append
11:31 donaldh But to successfully mmap /dev/mem I'd need open('/dev/mem',  :rw)
11:45 chenryn joined #perl6
11:56 dolmen joined #perl6
12:10 ab5tract "kok" <--- here's another potential example of brevity-without-purpose
12:11 ab5tract which is something i also see throughout core, in addition to the smash casing thing
12:11 laouji_ joined #perl6
12:12 ab5tract one of the tradeoffs we get with the concision of perl 6 is, long and expressive variable/method/function names no longer pose much of a burden
12:13 ab5tract and in fact using short-name versions can be seen as unnecessarily burdening otherwise very short and clear code
12:15 ab5tract at least, that's been my experience so far :)
12:17 jnthn ab5tract: If you pick a good single-word name for something, you don't need to whatever case the name at all :)
12:19 ab5tract jnthn: that's a bit beside my point, which is that brevity can be the enemy of good naming :)
12:20 ab5tract especially in a kebab's-everywhere-able language like perl 6 :D
12:24 ab5tract to be fair, the most common place i've seen this problem lurking is in the IO stuff
12:24 dalek perl6-examples: af480e6 | paultcochrane++ | lib/Pod/Convenience.pm6:
12:24 dalek perl6-examples: Add pod-code() sub to return a pod code block
12:24 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/af480e6e81
12:24 dalek perl6-examples: 7339333 | paultcochrane++ | htmlify.pl:
12:24 dalek perl6-examples: Insert code if no pod is found in file
12:24 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/733933302a
12:24 ab5tract which isn't quite finalized yet anyway
12:38 xinming joined #perl6
12:39 Kristien joined #perl6
12:48 sqirrel joined #perl6
12:50 larion joined #perl6
12:54 alpha- joined #perl6
12:54 kjs_ joined #perl6
12:54 gcole joined #perl6
13:06 xinming joined #perl6
13:07 cognominal joined #perl6
13:09 lizmat joined #perl6
13:28 Humbedooh joined #perl6
13:31 rurban joined #perl6
13:32 haroldwu joined #perl6
13:37 cognominal joined #perl6
13:47 anaeem1 joined #perl6
13:52 anaeem1 joined #perl6
13:54 gfldex joined #perl6
13:57 haroldwu joined #perl6
13:58 yves joined #perl6
13:58 psch hah.  running S02-types/native.t locally, on java -version 1.8.0_31 instead of on hack with java -version 1.7.0_75 doesn't die with the exception \o/
13:58 psch instead, it segfaults inside the jvm /o\
13:58 |Tux| FROGSS, Slang::Tuxic barfs on «while ($i < $last) {»
13:58 FROGGS hehe
13:58 FROGGS |Tux|: well, yes of course
13:58 FROGGS that is what you have to deal with
13:59 FROGGS it does not treat keywords specially
13:59 * |Tux| adjusts mind again
13:59 |Tux| keyswords are to much set in concrete in my way of programming
13:59 FROGGS it is hard to get that one right, and I can not put much work into it right now :/
14:00 psch curiously the SIGSEGV only happens through make $testfile, while running the test in isolation does produce the same exception...
14:01 FROGGS NQP_VERBOSE_EXCEPTIONS=1 and --ll-exception might help here
14:02 anaeem1 joined #perl6
14:03 xfix joined #perl6
14:04 jnthn At least if barfing on that makes you quickly notice supersitious parens around conditions... :)
14:04 jnthn psch: 1.7 + invokedynamic = easy SEGV, though less so towards the later versions in the series...
14:06 psch jnthn: but 1.8 SEGVs, 1.7 doesn't
14:06 jnthn psch: Oh...wtf
14:06 jnthn :/
14:06 jnthn VM impl considered hard.
14:06 psch 1.7 consistently throws the exception "Expected a native int..."
14:12 colomon http://www.johndcook.com/b​log/2015/03/01/graphemes/ # think we need a p6 followup to this…
14:13 jnthn colomon: Maybe once I'm done implementing NFG in Moar... ;)
14:25 nwc10 JVM + SEGV == CVE?
14:26 moritz JVM + SEGV == Business as usual, if you're implementing compilers :-)
14:27 jnthn nwc10: Not every SEGV is a security vuln.
14:27 donaldh CVE?
14:27 moritz common vulnerability and exposure project
14:27 moritz the folks that assign IDs to every security vulnerability
14:32 laouji joined #perl6
14:34 telex joined #perl6
14:44 |Tux| https://gist.github.com/Tux/983cdf2c40c674277d0e <= is the fact that the first test FAILs a bug or not?
14:45 masak not.
14:45 masak or, hm.
14:45 masak yeah, not. I think.
14:45 masak itemified parcel is not deeply equal to array.
14:46 masak we might make it be so, but I don't know if we oughta.
14:46 |Tux| the fact that you are unsure is enough for me to have hit this as surprise :)
14:46 masak yeah, I have never seen that before.
14:47 donaldh psch: I can confirm exception on 1.7 and SEGV on 1.8 for ./perl6 -Ilib t/spec/S02-types/native.rakudo.jvm
14:47 |Tux| I have reverted my test case to do the copy before the test
14:48 Ven I think they shouldn't be equal
14:48 Ven if they're considered equal, then I should be able to get the same behavior from calling functions on either
14:49 dalek perl6-examples: e0bc6c6 | paultcochrane++ | htmlify.pl:
14:49 dalek perl6-examples: Sort files within a category
14:49 dalek perl6-examples:
14:49 dalek perl6-examples: Now the list of files on the index pages are sorted.
14:49 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/e0bc6c6669
14:49 dalek perl6-examples: 5715140 | paultcochrane++ | htmlify.pl:
14:49 dalek perl6-examples: Append link to source on GitHub
14:49 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/5715140067
14:53 rmgk_ joined #perl6
14:54 molaf joined #perl6
14:59 muraiki joined #perl6
15:01 * masak sometimes wishes that the Github interface had a "merge, but fast-forward" button
15:03 jnthn Or a "please try to rebase this on top of the branch you want it in" button :)
15:03 Ven masak: it's been requested so many times..
15:07 donaldh yikes t/spec/S02-types/native.rakudo.jvm works when run with perl6-debug-j
15:10 nwc10 masak: oh $deity yes. github's ability to make zillions of needless trivial merges really frustrates me
15:14 Ven m: my @a = 1, 10, 100; my @b = 2, 20, 200; my @c = 3, 30, 300; say perl [Z+] @a, @b, @c:;
15:14 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g2G3G28ag3␤Invocant colon not allowed here␤at /tmp/g2G3G28ag3:1␤------> 3 = 3, 30, 300; say perl [Z+] @a, @b, @c:7⏏5;␤»
15:14 Ven m: my @a = 1, 10, 100; my @b = 2, 20, 200; my @c = 3, 30, 300; say ([Z+] @a, @b, @c).perl;
15:14 camelia rakudo-moar a164f3: OUTPUT«(6, 60, 600).list␤»
15:15 sqirrel joined #perl6
15:21 |Tux| joined #perl6
15:22 * [Coke] used to hate merge commits, but is leaning towards seeing them as a way to track process as well as code.
15:27 Ven m: sub map(:(::T -> T) &fn, T @list) {}
15:27 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eaVEWWpLAD␤Unable to parse expression in formal parameter; couldn't find final ')' ␤at /tmp/eaVEWWpLAD:1␤------> 3sub map(:(::T 7⏏5-> T) &fn, T @list) {}␤    expecting any of:␤        formal par…»
15:27 Ven m: sub map(:(::T -> T) &fn, T @list --> T @list) { () }
15:27 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/q4gpkNddQD␤Unable to parse expression in formal parameter; couldn't find final ')' ␤at /tmp/q4gpkNddQD:1␤------> 3sub map(:(::T 7⏏5-> T) &fn, T @list --> T @list) { () }␤    expecting any of:␤  …»
15:27 Ven m: sub map(&fn :(::T -> T), T @list --> T @list) { () }
15:27 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QuVQkXgV7c␤Unable to parse expression in signature; couldn't find final ')' ␤at /tmp/QuVQkXgV7c:1␤------> 3sub map(&fn :(::T 7⏏5-> T), T @list --> T @list) { () }␤    expecting any of:␤        f…»
15:27 skids joined #perl6
15:27 Ven i guess subsigs nyi :
15:28 jnthn It's spelt -->
15:28 jnthn But type captures certainly aren't implemented to do what you're after there...
15:33 Ven isn't --> what I have?
15:34 FROGGS m: sub map(&fn :(::T --> T), T @list --> T @list) { () }
15:34 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EtOAdhrIrK␤Invalid typename 'T' in parameter declaration.␤at /tmp/EtOAdhrIrK:1␤------> 3sub map(&fn :(::T --> T), T7⏏5 @list --> T @list) { () }␤»
15:35 FROGGS Ven: both arrows have to be '-->'
15:35 Ven oh!
15:35 Ven m: sub map(&fn :(::T --> T), T @list --> T @list) { () }
15:35 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M8jKHU6Y9X␤Invalid typename 'T' in parameter declaration.␤at /tmp/M8jKHU6Y9X:1␤------> 3sub map(&fn :(::T --> T), T7⏏5 @list --> T @list) { () }␤»
15:35 Ven alright, thanks!
15:36 Ven m: sub map(:U \T, &fn :(::T --> T), T @list --> T @list) { () }
15:36 camelia rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6XdsUbm6qh␤Malformed parameter␤at /tmp/6XdsUbm6qh:1␤------> 3sub map(:7⏏5U \T, &fn :(::T --> T), T @list --> T @l␤    expecting any of:␤        named parameter␤        formal parameter␤»
15:37 dolmen joined #perl6
15:38 mr-foobar joined #perl6
15:44 hoelzro o/ #perl6
15:44 Ven jnthn: could that be made to work "maybe at some point"?
15:45 Ven or is that unworkable
15:46 jnthn Ven: Well, that latter one has to be an error 'cus it re-defines T
15:47 Ven jnthn: yes, definitely. I meant the one with the signature binding
15:47 jnthn Ven: But your earlier attempt (sub map(&fn :(::T --> T), T @list --> T @list) { ... }) looks possible to me.
15:47 Ven that's be *really amazing* :-)
15:47 jnthn Though a bit fiddly
15:47 * jnthn will ponder it a bit in his copious free time :)
15:48 jnthn The tricky bit is getting the match of fn's signature against ::T to somehow populate the type var environment in the surrounding context
15:52 tinyblak joined #perl6
15:57 laouji joined #perl6
15:58 Ven jnthn++ # considering my crazy things :)
16:07 tinyblak joined #perl6
16:08 dalek doc: f776ede | moritz++ | lib/Type/Mu.pod:
16:08 dalek doc: Mu: examples, explain methods a bit more
16:08 dalek doc: review: https://github.com/perl6/doc/commit/f776edec48
16:08 dalek doc: 425976f | moritz++ | lib/Type/Any.pod:
16:08 dalek doc: Any: examples
16:08 dalek doc: review: https://github.com/perl6/doc/commit/425976f7dc
16:08 dalek doc: b6e4b3f | moritz++ | lib/Type/Cool.pod:
16:08 dalek doc: Any: a few examples
16:08 dalek doc: review: https://github.com/perl6/doc/commit/b6e4b3fa7e
16:20 PerlJam huh.  From Gabor Szabo's Perl Weekly ... "the August Hackaton in Switzerland is touted as the last one before the dev version of Perl 6 1.0 goes out."
16:21 PerlJam There's a couple of bits of awkwardness in that text.
16:23 [ptc] moritz: I've added something like perl6/doc/htmlify to the perl6-examples repo.  It's still quite rough, but it might be better to link to a consistent html site from perl6.org/documentation instead of GitHub as present
16:23 Juerd <3 Perl 6 1.0
16:23 [ptc] moritz: what do you think?
16:23 krunen joined #perl6
16:27 dalek nqp: e942214 | FROGGS++ | src/vm/jvm/runtime/org/perl6/n​qp/runtime/NativeCallOps.java:
16:27 dalek nqp: allow to cast from CArray/Cstruct to something else
16:27 dalek nqp: review: https://github.com/perl6/nqp/commit/e942214a2c
16:27 dalek nqp: a18c983 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nq​p/sixmodel/reprs/CStruct.java:
16:27 dalek nqp: deal with CStruct Foo as attr of CStruct Foo
16:27 dalek nqp: review: https://github.com/perl6/nqp/commit/a18c9832bd
16:27 moritz [ptc]: erm, I don't think I quite understand
16:27 moritz [ptc]: what does it do? how do the pages look like that you want to link to?
16:28 [ptc] moritz: the pages look much the same as the doc.perl6.org pages do
16:28 * TimToady points out that <.kok> is 6 characters shorter in STD due to use of 'is endsym<keyspace>'
16:28 [ptc] moritz: currently perl6.org/documentation links to perl6-examples on github, and I thought it'd be nice to use the same "corporate design" for the examples as well
16:29 FROGGS [ptc]: so you want to render the examples to html on a perl6.org site?
16:29 [ptc] moritz: the html needs to be built in the same way as doc.perl6.org
16:29 moritz [ptc]: ah, now I undertand
16:29 moritz *stand
16:29 [ptc] FROGGS: only if that's sensible
16:30 jnthn TimToady: That's always felt like a very ad-hoc mechanism to me...
16:30 jnthn TimToady: Is it, or...? :)
16:30 moritz [ptc]: +1 then, if you want to do the maintenance
16:30 [ptc] I've got something started and it looks ok (still quite rough though) and wondered if it's worth pursuing further
16:30 [ptc] moritz: I'm updating all the examples so that they work with current rakudo
16:31 [ptc] moritz: so yeah, I'm doing a bit of maintenance already
16:31 [ptc] moritz: thought it might be a nice complement to the docs site
16:31 moritz [ptc]: aye, it might
16:32 FROGGS Language | Types | Routines | Examples # I'd love to see that
16:32 gurrato joined #perl6
16:32 TimToady jnthn: enforcing constraints consistently on a grammatical category doesn't feel very ad hoc to me
16:32 kjs_ joined #perl6
16:32 gurrato Is this http://www.perl6.org/archive/rfc/197.html already implemented in Perl 6 ?
16:33 [ptc] FROGGS: I think something like that is doable :-)
16:35 FROGGS :o)
16:35 timotimo gurrato: no, i don't think this has made it into the design
16:35 gurrato timotimo, it's a pity that would have been useful
16:35 moritz [ptc]: bonus points for adding some sort of test suite (can be just storing results from one run, and then comparing on the next run), and only HTML-rendering those that pass the tests
16:36 gurrato has anything done toward working with regexes and numbers?
16:36 timotimo gurrato: it looks very mis-huffmanized and i don't understand the examples very well
16:36 jnthn I'm trying to figure out exactly what's wanting
16:36 jnthn :)
16:36 jnthn *what it's
16:36 PerlJam joined #perl6
16:36 jnthn I mean
16:37 timotimo gurrato: you can already put a <?{ ... }> block directly after matching a (\d+) and do calculations on it
16:37 gurrato a bit like i don't understand the word mis-huffmanized
16:37 timotimo ah
16:37 jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 5 }>/
16:37 camelia rakudo-moar a164f3: OUTPUT«「42」␤ 0 => 「42」␤»
16:37 gurrato woukd <?{ ... }> allow a condition?
16:37 timotimo yes
16:37 FROGGS m: say 42 ~~ / @( 1..100 ) /
16:37 jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 1 }>/
16:37 camelia rakudo-moar a164f3: OUTPUT«「42」␤»
16:37 camelia rakudo-moar a164f3: OUTPUT«「2」␤ 0 => 「2」␤»
16:37 timotimo the proposal looks like it steals many short pieces of syntax for a very rarely used thing
16:38 jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ 1 < $0 < 4 }>/
16:38 camelia rakudo-moar a164f3: OUTPUT«「2」␤ 0 => 「2」␤»
16:38 jnthn etc.
16:38 jnthn So yeah, it seems quite easily do-able, just...not with such a concise syntax. :)
16:38 jnthn And that's probably the right thing.
16:39 gurrato nice
16:39 FROGGS m: say 42 ~~ / << @( 1..100 ) >> /
16:39 camelia rakudo-moar a164f3: OUTPUT«「42」␤»
16:39 FROGGS m: say 101 ~~ / << @( 1..100 ) >> /
16:39 camelia rakudo-moar a164f3: OUTPUT«Nil␤»
16:39 jnthn Note that "if 1 <= $x <= 100 { }" also works nicely enough if you're not in a parsing context too
16:39 TimToady this is a prime example of an RFC where we ignored the proposed solution but didn't ignore the pain point that inspired it
16:39 jnthn FROGGS: Cute but darn slow :P
16:39 timotimo gurrato: "huffman coding" can more or less be summarized as "things that are used very often are easy to reach"
16:40 timotimo as in "common words are short"
16:40 FROGGS jnthn: I fast enough here :o)
16:41 TimToady and if @() could determine that its context were static, could turn into a fast NFA/DFA
16:41 perl6_newbee joined #perl6
16:42 TimToady but other than inlining a constant like that, @ doesn't have a good way to determine whether or not its input array has been modified
16:42 jnthn Indeed
16:43 dalek perl6.org: 82f1d1e | FROGGS++ | source/compilers/index.html:
16:43 dalek perl6.org: the text about nqp ... a word
16:43 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/82f1d1e957
16:43 jnthn A trie might be at least as good as DFA here too
16:46 abraxxa joined #perl6
16:48 dalek Inline-Python: 280919c | (Stefan Seifert)++ | / (3 files):
16:48 dalek Inline-Python: Remove dependency on NativeCall - it's in core now.
16:48 dalek Inline-Python: review: https://github.com/niner/Inl​ine-Python/commit/280919cb22
16:48 japhb Thanks, nine_++
16:48 yoleaux 08:44Z <jnthn> japhb: re 9cb3d64faa, it's not that the param binding performance is different, but rather the assignment code-gen. Assign code-gen is done differently by SIGIL ($ = use container spec stuff, @/% = call STORE method). Without a sigil, we don't know, so emit code that checks which of the two should be done.
16:48 yoleaux 08:45Z <jnthn> japhb: spesh should already be smart enough to do away with the check, but still better to generate smaller code in the first place...
16:48 yoleaux 08:47Z <jnthn> japhb: re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether.
16:48 yoleaux 08:48Z <jnthn> japhb: the behavior change is what lets stuff like "($native-a, $native-b) = 1, 2" now work, fwiw.
16:50 japhb jnthn: I've got a fix that sprinkles more _s around, and seems to not blow up on an out-of-tree copy of .resolve.  I did find it interesting that a list produced with nqp::split does *not* appear to be an nqp::list_s.  Is that intentional?  If so, can you explain why?
16:53 jnthn japhb: Intentional in so far as "it's what NQP expects", yes
16:53 jnthn japhb: Also means that an eager split in Perl 6 gets back something that can go straight into a List.
16:53 dalek rakudo/nom: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm:
16:53 dalek rakudo/nom: Fix IO::Path.resolve to work with native refs
16:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ddddd07451
16:54 japhb jnthn: Ah, OK
16:54 jnthn Cute sha-1!
16:54 japhb heh
16:54 TimToady jnthn: the other nice thing about endsym is that it magically knows what the symbol is, rather relying on touchy cursor semantics to try to determine what symbol matched
16:54 TimToady if <.kok> isn't the next thing, it breaks badly
16:55 TimToady and it relies on the subrule not updating .from when it probably should
16:55 timotimo we could unshorten kok into kwok, that'd be much more understandable for people who don't know what it's about !!
16:55 TimToady there you go
16:55 jnthn TimToady: It's .pos rather than .from that updates
16:55 TimToady I believe STD will also update .from when calling a subrule, iirc
16:55 japhb jnthn: Oh, also, why did I need to use nqp::elems($a) + nqp::elems($b) for the nqp::list_s variants, but I could just do $a + $b before (with nqp::list's)?
16:56 TimToady so I felt guilty relying on that
16:56 jnthn japhb: Because there's no NQP => Perl 6 marshalling set up for nqp::list_s at a guess
16:57 TimToady s/update/start the subrule out with a new .from/
16:57 cognominal joined #perl6
16:57 jnthn japhb: Your code before will probably have produced a Parcel around each of the nqp::lists before calculating the multi-dispatch
16:58 jnthn japhb: Meaning $a + $b where the two are NQP lists resulting in a couple of extra allocations.
16:58 jnthn japhb: If doing stuff with nqp:: data structures, I suggest staying with nqp:: operations on them.
16:59 jnthn It's a lot more predictable.
16:59 TimToady so what's the difference between a str and a Str, structurewise?
16:59 japhb Great, thanks for the explanation jnthn++!
17:00 jnthn TimToady: str = a VM-level NFG string, with some implementation-defined representation
17:00 cschwenz left #perl6
17:00 moritz Str: boxed object into which you can mix roles as you please
17:00 jnthn TimToady: Str = a P6opaque referencing a str, which you can use "but" on to mix in to, call methods on, etc.
17:01 jnthn Anything that's going to do intensive amounts of work can save some indirection using str. The regex engine does exactly that.
17:04 jnthn It's also worth noting that spesh will probably soon start to kill off temporary boxes (including those it can see post-inlining) in the not too distant future.
17:05 japhb Eggselent
17:10 H2O1 joined #perl6
17:10 diana_olhovik joined #perl6
17:11 rindolf joined #perl6
17:12 [Sno] joined #perl6
17:13 cognominal joined #perl6
17:17 nine_ japhb: happy to help :)
17:17 yoleaux 00:16Z <japhb> nine_: It looks like Inline::Python still depends on NativeCall; can you remove that dependency?
17:19 H2O1 left #perl6
17:25 lizmat good *, #perl6!
17:25 * lizmat just pulled, configged, built and spectested
17:26 lizmat and found spectest takes quite a bit longer
17:26 lizmat and startup has gone up from .205 to .220  :-(
17:26 * lizmat will now backlog
17:28 cognominal joined #perl6
17:29 timotimo maybe that'll improve again when we get better code-gen for native refs back?
17:30 lizmat I have no idea, still backlogging the past 30 hours or so
17:30 TimToady I maybe am doing some unnecessary lookups in <.kok>
17:30 dalek Heuristic branch merge: pushed 109 commits to rakudo/newio by lizmat
17:31 dalek rakudo/newio: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm:
17:31 dalek rakudo/newio: Fix IO::Path.resolve to work with native refs
17:31 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/ddddd07451
17:31 dalek rakudo/newio: a84c327 | lizmat++ | src/core/IO/Path.pm:
17:31 dalek rakudo/newio: Merge branch 'nom' into newio
17:31 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/a84c327e52
17:32 cognominal kok? what name is that? names in Perl 6 are kind of cocky and unhelpful. Or is that obvious from context?
17:32 jnthn timotimo: I'd be surprised if native-ref made a difference to startup...
17:32 timotimo OK
17:33 bcode !j
17:33 timotimo today i'll run benchmarks again if you're interested, jnthn
17:33 bcode err, wrong channel.
17:33 jnthn cognominal: It's not even a Perl 6 keyword, it's a rule in the grammar. Nothing user-land.
17:33 laouji joined #perl6
17:33 japhb bcode: What would !j do in the right channel?
17:33 bcode japhb, eh, it's for a game bot that plays werewolf >.< sorry
17:33 lizmat TimToady: startup time for me is "perl6 -e 1'
17:33 jnthn timotimo: Yes, please do...and maybe plot it against the previous result
17:34 dalek perl6-roast-data: 4fca25a | coke++ | / (9 files):
17:34 dalek perl6-roast-data: today (automated commit)
17:34 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/4fca25ab4f
17:34 lizmat hardly much grammar action there?
17:34 jnthn timotimo: (From pre-merge nom)
17:34 * bcode goes back into hiding
17:34 jnthn timotimo: I did go through each of the regressions and Did Something. :)
17:35 [Coke] integration/weird-errors.t  is failing on moar, jit or not.
17:35 [Coke] S17-scheduler/every.t is failing on moar-jit and jvm.
17:35 [Coke] S02-types/native.rakudo.jvm  is failing on jvm
17:37 TimToady well, I should fix the unnecessarily lookups anyway, since it probably slows down parsing a bit
17:37 masak bcode: welcome to #perl6! :) I used to be a lurker too, long ago ;)
17:38 bcode masak, heh, thanks :) i'm a little shy so tend to watch, yeah. what I've seen so far is awesome, though. :D
17:38 Kristien joined #perl6
17:39 Kristien hi
17:39 masak bcode: yes, quite.
17:39 larion joined #perl6
17:42 jnthn [Coke]: I plan to look at the S02-types one on JVM this evening
17:42 lizmat m: sub a(Int \b) { b = 42 }; a my int $b; say $b   # seems to work
17:42 camelia rakudo-moar ddddd0: OUTPUT«42␤»
17:42 lizmat m: sub a(int \b) { b = 42 }; a my int $b; say $b   # native int in sig doesn't  :-(
17:42 camelia rakudo-moar ddddd0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Y_o1l0zJwk␤Cannot assign to readonly variable b␤at /tmp/Y_o1l0zJwk:1␤------> 3sub a(int \b) { b = 42 7⏏5}; a my int $b; say $b   # native int in␤»
17:42 lizmat jnthn: rakudobug ?
17:42 jnthn lizmat: Yes, grondilu already reported that one
17:43 jnthn lizmat: It's that the declarator doesn't evaluate to the ref
17:43 lizmat ah ok, didn't backlog there yet
17:43 jnthn m: sub a(int \b) { b = 42 }; my int $b; a $b; say $b
17:43 camelia rakudo-moar ddddd0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RsApdSwgBp␤Cannot assign to readonly variable b␤at /tmp/RsApdSwgBp:1␤------> 3sub a(int \b) { b = 42 7⏏5}; my int $b; a $b; say $b␤»
17:43 lizmat yeah, that doesn't work either... :-)
17:43 jnthn Hm, and also that \ doesn't allow writes, apparently...
17:43 dalek Inline-Perl5: a7a5d66 | (Stefan Seifert)++ | p5helper.c:
17:43 dalek Inline-Perl5: No need to copy the name of the called method
17:43 dalek Inline-Perl5:
17:43 dalek Inline-Perl5: NativeCall does not free() the string anyway.
17:43 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/a7a5d6696d
17:43 jnthn Hmm
17:44 jnthn Please just write int $b :P
17:44 jnthn I'm not quite sure how to deal with int \b
17:44 jnthn int $b is rw # actually an object register
17:44 lizmat m: sub a(int $b is rw) { $b = 42 }; a my int $b; say $b   # does this work?
17:44 camelia rakudo-moar ddddd0: OUTPUT«42␤»
17:45 jnthn int $b # actually an int register
17:45 jnthn And...int \b is going to have to be the first of those if it's to support the ref, meaning that in the other case it'll have to force a boxing, and argh
17:45 jnthn So I'm inclined to simply forbid \ forms on native params.
17:46 lizmat fine by me if it dies at compile time  :-)
17:46 [Coke] +1
17:49 xinming joined #perl6
17:50 lizmat jnthn: is (str $a is rw) supposed to be faster than (Str $a is rw) ?
17:51 grettir joined #perl6
17:52 jnthn lizmat: uh...that's really hard to answer in isolation
17:53 lizmat my str $s = "foo"; sub a(str $b is rw) { $b = $s }; for ^1000000 { a my str $c }
17:53 lizmat real0m0.879s
17:53 lizmat my Str $s = "foo"; sub a(Str $b is rw) { $b = $s }; for ^1000000 { a my Str $c }
17:53 lizmat real0m0.740s
17:55 xinming joined #perl6
17:55 jnthn I'd epxect those to come out roughly the same
17:56 jnthn It's possible after spesh learns more on native refs you'll find the first slightly edges the second
17:56 jnthn But they're approximately the same amount of work
17:57 jnthn oh, actually..
17:57 jnthn There's a way the str one might come out quite a lot faster once ref eliding opts are in.
17:58 jnthn But that's not likely given that a is not inlinable.
17:58 jnthn (By spesh)
17:58 lizmat jnthn: roughly the same, with native always slower ?
17:58 jnthn Since it closes over an outer lexical.
17:58 jnthn lizmat: I think for the foreseeable future, you'll find they are very close, native perhaps a little faster at some point
17:58 lizmat fwiw, without the outer lexical, it's the same
17:59 moritz I got benchmark results in the same range as lizmat++
17:59 moritz 1.25 +- 0.02 (str is rw) vs. 1.06 +- 0.01 (Str is rw)
18:00 jnthn Without the outer lexical access, in the next month or so when spesh learns to elide native ref takes, the native one will likely come out notably faster.
18:00 jnthn With it, it's harder to say.
18:01 jnthn But native won't be notably faster in that case any time soon.
18:02 lizmat ok
18:03 jnthn Part of the reason I implemetned --profile, fwiw, is because the more clever Moar gets, the harder it's going to get for us to reason about performane without measuring.
18:04 jnthn (Note that the JVM is already well past this level of sophistication.)
18:07 dalek rakudo/nom: f0359a1 | TimToady++ | src/Perl6/Grammar.nqp:
18:07 dalek rakudo/nom: Don't do name lookup when there's whitespace, duh
18:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f0359a1a16
18:08 lizmat what was the profile option again here with camelia?
18:08 lizmat m-prof: 1
18:09 lizmat .help
18:09 yoleaux lizmat: I'm yoleaux. Type .commands to see what I can do, or see http://dpk.io/yoleaux for a quick guide.
18:09 lizmat jnthn: the str case has only 50% jitted frames, as opposed to the Str case having 100% jitted frames
18:10 jnthn lizmat: That might well explain the difference.
18:10 lizmat the str case spends 26% in garbage collect, whereas the Str case only spends 14%
18:10 jnthn lizmat: Also tells me there's something needing JITting
18:11 lizmat those 50% were actually deopts
18:11 lizmat Of 1999967 specialized or JIT-compiled frames, there were 999983 deoptimizations (that's 50% of all optimized frames).
18:11 lizmat for the str case
18:12 lizmat eh... no, scratch that
18:12 [Coke] prof-m: say 3;
18:12 camelia prof-m f0359a: OUTPUT«3␤»
18:12 camelia .. Prof: http://p.p6c.org/502816
18:12 timotimo huh? that link seems dead?
18:12 [Coke] that url: 404
18:13 * lizmat backlogs some more
18:16 jnthn lizmat: Wowza, that also wants a look. Thanks.
18:17 lizmat the 50% deopts were for the Str case
18:17 jnthn Ah
18:17 jnthn That still wants a look ;)
18:17 lizmat prof-m: sub a(str $b is rw) { $b = "foo" }; for ^1000000 { a my str $c }
18:17 camelia prof-m f0359a: ( no output )
18:17 camelia .. Prof: http://p.p6c.org/502953
18:17 jnthn Well, it seems I succeeded at cooking dinner, so... &
18:17 lizmat alas, page not there  :-(
18:18 lizmat smakelijk eten!
18:18 FROGGS joined #perl6
18:27 lizmat TimToady: your last .kok patch seems to largely remove the extra startup time
18:28 lizmat TimToady++  :-)
18:28 TimToady I dunno why it would though, since perl6 -e '1' does almost no parsing
18:28 lizmat agree, but empirically it seems to have worked
18:28 * lizmat tries to profile
18:30 * lizmat just notices that precomping NativeCall is noisy
18:30 lizmat Useless declaration of a has-scoped method in multi (did you mean 'my method name'?)
18:31 TimToady yes, I noticed that yesterday and wondered if kok had flushed it out somehow
18:31 TimToady the irritating thing is that it gives no line number
18:34 lizmat --ll-exception doesn't give any extra info
18:36 timotimo FROGGS: what's keeping us from making testers.p6c.org also available as testers.perl6.org?
18:36 dalek roast: 89b30a8 | TimToady++ | S17-procasync/basic.t:
18:36 dalek roast: conjecture that test is no longer flapping
18:36 dalek roast: review: https://github.com/perl6/roast/commit/89b30a8dc7
18:37 avuserow timotimo: IIRC you were playing with ipython at some point in the past, have you seen http://ipython.org/ipython-d​oc/3/whatsnew/version3.html and https://github.com/jupyter/tmpnb ?
18:37 timotimo haven't looked into it yet, but i did see there were big changes
18:38 avuserow the tmpnb project could potentially help support a (Moar-based) try.perl6.org
18:39 timotimo yes!
18:41 timotimo divide-and-conquer                                         1032/s                       163/s
18:41 timotimo 1.0x                        6.3x
18:41 dalek rakudo/nom: 637c6bb | TimToady++ | src/Perl6/Actions.nqp:
18:41 dalek rakudo/nom: replace toy method warning with real worry
18:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/637c6bbe55
18:42 timotimo this is native-ref-backed rakudo-moar being 6x slower than pre-native-ref rakudo-moar
18:43 timotimo but before i post a comparison i'll get TT's kok performance fix
18:43 ugexe recent report table on testers.perl6.org column OS name doesn't match up with the os names in the "Code quality" table above it (code quality lists 'raspbian' in a header, but in the table below the OS name column says linux, and the code quality graph attributed the failure to linux not raspbian)
18:44 timotimo OK, gimme a minute
18:44 FROGGS timotimo: I already wrote an email to the perl6.org domain admin
18:44 ash_gti joined #perl6
18:44 TimToady now gets:     Useless declaration of a has-scoped method in multi (did you mean 'my method name'?)
18:44 TimToady at lib/NativeCall.pm:115
18:44 TimToady ------>         ⏏method deref(::?CLASS:D \ptr:) { nativec
18:44 TimToady which is weird
18:44 timotimo cool, thanks FROGGS
18:45 FROGGS I did that on Friday... we'll see when this happens
18:46 n00w0t joined #perl6
18:50 nine_ What really does not make any sense to me is that there's a heisenbug giving the exact same error message both in Inline::Perl5 and Inline::Python though they implement calling methods on P6 objects in completely different ways.
18:50 timotimo ugexe: i was pulling the osname from the reports table without limiting the search to the last 1000 reports.
18:50 raydiak \o morning #perl6
18:50 nine_ Inline::Python uses .can to get a method object and call that later on while Inline::Perl5 uses $object."$name"()
18:52 ugexe timotimo: shouldnt it still show up if its in the last 1000 reports?
18:52 raydiak nine_: haven't backlogged so this may not be pertinent, but thought you'd want to know I fixed some problems I had last night by replacing the meta fallback code I copied from Inline::Python with FALLBACK methods and ** delegation
18:53 FROGGS ugexe: the problem is/was that $*DISTRO.name showed what $*KERNEL.name is now... so reports were recorded incorrectly
18:54 raydiak was wondering, should Mu or Any provide a .sink? if you define a FALLBACK or ** delegation, you get "Method 'sink' not found for ..." if you use the object in sink context...I can't readily tell where the .sink is called from in rakudo but also curious why it doesn't happen for core classes
18:54 FROGGS ugexe: and I fixed some manually
18:54 raydiak s/core classes/any class without the fallback/
18:54 n00w0t why should I teach perl6?
18:55 timotimo ugexe: it isn't in the last 1k reports
18:55 ugexe FROGGS: recently i take it? this is a test report from last night/today with rakudo built right before it
18:55 FROGGS ugexe: can you provide the url to the report?
18:55 ugexe http://testers.p6c.org/reports/15598.html
18:56 FROGGS ugexe: ahh, you are that nickl :o)
18:56 timotimo FROGGS: i hope you were OK with me reading your mail on hack and "being you" to fix things with cpandatesters?
18:56 mohij joined #perl6
18:56 ugexe https://i.imgur.com/btW587z.jpg
18:56 FROGGS timotimo: yes, of course
18:56 timotimo phew
18:56 FROGGS timotimo: there will never be any private stuff on it :o)
18:56 timotimo n00w0t: are you going to teach perl6 before learning perl6? :)
18:57 FROGGS ugexe: the column in the stats is from an older report
18:57 timotimo n00w0t: it'd be interesting to know what you're expecting to use perl6 for and what you're comparing it against. probably also what languages you already know
18:59 timotimo ugexe: reports 14200, 14256 and 14190 have raspbian set as the osname in the database
19:00 pierrot joined #perl6
19:00 timotimo ugexe: http://testers.p6c.org/dist/D​/Digest/Lucien%20Grondin.html
19:00 ugexe but i mean the OS health column doesnt show any report success/failure for raspbian
19:00 FROGGS I updated the osname field of three reports now
19:01 FROGGS ugexe: first, it collects all osnames, not only for the last thousand reports
19:01 FROGGS ugexe: and then it fetches said thousand reports to make up the stats and list
19:02 FROGGS timotimo: btw, how do you like that flame icon? :D
19:02 timotimo i like it!
19:02 FROGGS I enjoy it...
19:03 timotimo FROGGS: would you rebuild the recent reports page please? :)
19:03 timotimo wait, i still have a shell open where i am you
19:03 timotimo btw, do you regularly update the database dump?
19:04 FROGGS no, that dump is when I moved everything from hack
19:04 timotimo OK
19:04 FROGGS but I will create (daily?) dumps
19:04 timotimo much appreciated
19:04 Hor|zon joined #perl6
19:04 timotimo i should have developed this stuff on my local machine right from the start
19:04 timotimo or maybe on hack
19:04 FROGGS and copy them to my machine and perhaps also make them available for download
19:04 timotimo rather than have a million commits that fix silly mistakes ...
19:04 FROGGS yeah
19:05 FROGGS :o)
19:05 timotimo hm
19:05 timotimo have i still done something wrong
19:05 gcole_ joined #perl6
19:06 FROGGS raspbian is gone now: http://testers.p6c.org/recent.html
19:07 timotimo but why are the others still there?
19:07 timotimo is my query wrong?
19:07 timotimo oh
19:07 timotimo i didn't sort the reports by id :)
19:08 FROGGS ahh, that's what you are doing
19:08 timotimo also, the way we do locking for the jobs is kind of fragile
19:09 FROGGS timotimo: well, I'd prefer an exclusive lock on a file but...
19:09 timotimo yeah
19:09 adu joined #perl6
19:09 timotimo why are there still 5 osnames when the db actually only returns 2?
19:09 timotimo not yet uploaded?
19:10 timotimo there we go
19:10 FROGGS rsync also only runs every five minutes
19:11 FROGGS we need more smokers :P
19:12 dalek rakudo/nom: 35f0c9c | FROGGS++ | tools/build/NQP_REVISION:
19:12 dalek rakudo/nom: bump nqp with jvm NativeCall/CStruct fixes
19:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/35f0c9cb60
19:14 [Coke] docs/architecture.html is still parroty.
19:15 FROGGS the number of uploaded fosdem videos seems to be a constant :o(
19:15 timotimo FROGGS: how expensive is a rsync call when nothing needs to be updated?
19:15 FROGGS timotimo: it looks like it still copies everything
19:16 FROGGS rsyncd might be better there
19:16 FROGGS but that's out of my expertise
19:16 timotimo FROGGS: things look a bit weird when there's only two distinct osnames, maybe we should invent silly fillers for when there's not enough to be had in the reports?
19:17 FROGGS timotimo: that's why I usually show a minimum set of osnames
19:17 timotimo aye, i saw that in the code and didn't think about it
19:18 timotimo should i reinstate that?
19:18 FROGGS no, not yet
19:18 FROGGS I think I want to have it show stats about *all* reports instead of the last thousand anyway...
19:19 timotimo ah
19:19 FROGGS but collapsing dev releases into a single line, without the ability to show more
19:20 myp joined #perl6
19:20 FROGGS though that's not quite what /recent is about
19:21 FROGGS that index page is kinda nice: http://cpantesters.org/
19:21 flussence m: sub foo(Int $bar = 5 where * ~~ 0..11) {...} # unusually *un*helpful suggestion here
19:21 camelia rakudo-moar 637c6b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wwf1HNgPxT␤The post constraint "where * ~~ 0..11" came after the default value␤(did you mean "...where * ~~ 0..11 = 5 "?)␤at /tmp/wwf1HNgPxT:1␤------> 3sub foo(Int $bar = 5 where * ~~ 0..117⏏5) {..…»
19:24 TimToady heh, ..…
19:25 Kristien booo
19:27 TimToady bo…
19:29 colomon huh, the smoker suddenly started reporting lots of “prerequisite failed” statuses today.  :\
19:29 FROGGS ewww
19:29 TimToady possibly a bunch of modules not using whitespace after keywords?
19:30 TimToady or just one on which the others depend?
19:30 FROGGS " Dependency NativeCall is not present in the module ecosystem "
19:30 dalek nqp: af2e221 | TimToady++ | src/QRegex/Cursor.nqp:
19:30 dalek nqp: add PRECURSOR method
19:30 dalek nqp:
19:30 dalek nqp: This generates a cursor pointing to $!from for better error messages
19:30 dalek nqp: on constructs that would otherwise point confusingly to the next
19:30 dalek nqp: statement/declaration.
19:30 dalek nqp: review: https://github.com/perl6/nqp/commit/af2e221455
19:30 TimToady oh, well, it's not in the module ecosystem
19:31 colomon oh, yeah, that will do it all right.
19:32 colomon darn, I was thinking someone had fixed panda / emmentaler so that prereq test failures were now reported as prereq failures.
19:34 colomon http://smoke.perl6.org/report
19:37 timotimo http://t.h8.lv/p6bench/2015-0​3-02-pre_post_nativeref.html - orange is before nativeref, blue is after
19:38 dalek rakudo/nom: e2cd569 | TimToady++ | tools/build/NQP_REVISION:
19:38 dalek rakudo/nom: bump nqp rev
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e2cd569773
19:38 dalek rakudo/nom: a01d502 | TimToady++ | src/Perl6/Actions.nqp:
19:38 dalek rakudo/nom: don't locate declarator errors on next statement
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a01d50286a
19:40 FROGGS I just opened twelve pull requests :o)
19:40 timotimo for what?
19:40 TimToady ENONATIVECALL
19:40 FROGGS timotimo: stripping NativeCall from META.infos
19:40 timotimo ah
19:40 timotimo nice :)
19:41 colomon FROGGS++
19:41 TimToady still have not clue about the method ^name warning, but at least it's pointing to the right declaration now :)
19:42 FROGGS *g*
19:43 kaare_ joined #perl6
19:49 timotimo i'm feeling a bit low-powered
19:49 timotimo i'm working on the weekly right now, but somehow i don't find a lot of good stuff
19:53 dalek roast: b76efe4 | usev6++ | S12-class/basic.t:
19:53 dalek roast: Unfudge test for RT #67784
19:53 dalek roast: review: https://github.com/perl6/roast/commit/b76efe4175
19:53 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=67784
19:56 timotimo https://p6weekly.wordpress.com/?p=​419&amp;shareadraft=54f4c0481835c - i need help/inspiration
19:57 raiph joined #perl6
20:00 skids timotimo: +pmichaud starting GLR soon
20:01 ugexe joined #perl6
20:03 FROGGS timotimo: I've send feedback
20:03 ugexe (perl6-j) smoke testing killed one of my servers during DateTime :)~
20:04 FROGGS timotimo: ahh, and perhaps mention testers.p6c.org
20:04 moritz timotimo: you might mention DBIish fixes for Postgresql
20:04 ugexe any way i can look into the cause? like if its the module or rakudo?
20:04 Kristien m: say ⌊3.14⌋
20:04 camelia rakudo-moar 35f0c9: OUTPUT«5===SORRY!5===␤No valid term seen where one is required␤at /tmp/d6OUY5PXXn:1␤------> 3say 7⏏5⌊3.14⌋␤Bogus term␤at /tmp/d6OUY5PXXn:1␤------> 3say 7⏏5⌊3.14⌋␤    expecting any of:␤        argument list␤        prefix …»
20:04 Kristien no floor operator!
20:04 Mouq timotimo: docs work… examples.perl6.org… TimToady++'s work today/last night…
20:05 moritz timotimo: has http://doc.perl6.org/language/5to6 made an appearance on the weekly yet?
20:06 moritz uhm, why doesn't http://doc.perl6.org/language/5to6 show a search box?
20:06 moritz just in firefox; it's there in chromium
20:08 moritz timotimo: also [ptc]++'s has done a lot for http://doc.perl6.org/type/IO
20:08 Mouq timotimo: Support for “quoting”, ‘quoting’, ‚quoting’ and „quoting”
20:08 Mouq And …
20:09 TimToady m: sub circumfix:<⌊ ⌋> { .floor }; say ⌊3.14⌋
20:09 camelia rakudo-moar 35f0c9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hcQtbSdnx7␤Calling 'circumfix:<⌊ ⌋>' will never work with argument types (Rat)␤    Expected: :()␤at /tmp/hcQtbSdnx7:1␤------> 3sub circumfix:<⌊ ⌋> { .floor }; say 7⏏5⌊3.14⌋␤»
20:09 moritz timotimo: also, I did some basic documentation for sockets (no examples yet)
20:09 nine_ timotimo: rsync is very cheap if there's nothing to update
20:09 TimToady m: sub circumfix:<⌊ ⌋> { $_.floor }; say ⌊3.14⌋
20:09 camelia rakudo-moar 35f0c9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vXkkRnrFag␤Calling 'circumfix:<⌊ ⌋>' will never work with argument types (Rat)␤    Expected: :()␤at /tmp/vXkkRnrFag:1␤------> 3sub circumfix:<⌊ ⌋> { $_.floor }; say 7⏏5⌊3.14⌋␤»
20:09 TimToady m: sub circumfix:<⌊ ⌋> { $^a.floor }; say ⌊3.14⌋
20:09 camelia rakudo-moar 35f0c9: OUTPUT«3␤»
20:10 TimToady Kristien: easy enough to roll your own, I think
20:10 Kristien nice
20:10 TimToady it's not like your client is gonna turn 3.14.floor into ⌊3.14⌋ for you :)
20:10 Mouq timotimo: Improved JVM marshalling
20:10 bartolin timotimo: wrt bugs, bugs, bugs: there was a lot of work from other people as well (among others Mouq++ did fix quite some bugs)
20:11 nine_ raydiak: FALLBACK would very probably make the bug go away, but there's no way to know if it fixed it or just hid it
20:11 Mouq bartolin: None this week I don't think :/
20:12 Mouq (From me! bugfixers++)
20:12 TimToady m: sub foo() { $^a }␤sub bar() {}
20:12 camelia rakudo-moar a01d50: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zOiXuX2LOY␤Placeholder variable '$^a' cannot override existing signature␤at /tmp/zOiXuX2LOY:2␤------> 3<BOL>7⏏5sub bar() {}␤»
20:12 bartolin Mouq: but you worked on the tickets, that's for sure!
20:14 timotimo Mouq: oh yes! i had thought of that and forgot again
20:14 bartolin Mouq: also that paragraph from timotimo++ wasn't specific for the last week
20:15 timotimo moritz: do we know anything about memory management and leaks in DBIish?
20:16 ugexe_ joined #perl6
20:16 hoelzro timotimo: where does literal say that the new syntax stuff requires 7.4?
20:16 hoelzro the way I read his article, it's that he used the new profiler in 7.4 to identify issues
20:16 moritz timotimo: yes, I know that I ignored the topic when I worked with DBIish, because rakudo/NativeCall had basically zero support for anything like it
20:17 DrForr_ rakudo question, if I may - The compiler error "Cannot call 'new': none of these signatures match:" has no indication of what invocation of 'new' failed.
20:17 TimToady m: method foo() {}␤method bar() {}
20:17 camelia rakudo-moar a01d50: OUTPUT«Potential difficulties:␤    Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)␤    at /tmp/rjzoBA_GUc:1␤    ------> 3method7⏏5 foo() {}␤    Useless declaration of a has-scoped method in mainline (did you me…»
20:17 moritz timotimo: I try to use close/free native subs from the backend libs where available
20:18 DrForr_ I guess that's more of a statement, with the implied question being "Is this correct behavior?"
20:18 FROGGS DrForr_: there is no file and line number?
20:18 DrForr_ Correct.
20:19 FROGGS hoelzro: it uses a regex feature which is new in 7.4
20:19 FROGGS DrForr_: can you rakudobug that please?
20:19 DrForr_ Yep, I'll trim that down.
20:19 dalek roast: 83da5c2 | usev6++ | S02-types/hash.t:
20:19 dalek roast: Add test for RT #123084
20:19 dalek roast: review: https://github.com/perl6/roast/commit/83da5c2c81
20:19 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123084
20:19 amaliapomian joined #perl6
20:20 Mouq timotimo: Updates to &is/&isn't semantics
20:20 Mouq *isnt
20:20 hoelzro FROGGS: did he mention that on https://hinrik.github.io/p​erl6.vim-gets-more-love/?
20:20 Mouq timotimo: Lack of any updates to ChangeLog in almost two weeks
20:20 FROGGS hoelzro: no, here on channel... after [Coke] said that he upgraded from 7.3 to 7.4 and that the problems he had went away
20:21 hoelzro ahhhhh
20:21 hoelzro ok, I missed that =)
20:22 dalek doc: 5189f2e | moritz++ | lib/Type/IO/Socket/INET.pod:
20:22 dalek doc: IO::Socket::INET: echo server + client
20:22 dalek doc: review: https://github.com/perl6/doc/commit/5189f2ee11
20:22 timotimo hoelzro: he only noticed that after the blog post
20:23 hoelzro literal++ gets major points from me for making those changes.  I've been wanting to get around to that for quite some time
20:27 virtualsue joined #perl6
20:28 jnthn joined #perl6
20:31 sqirrel joined #perl6
20:32 FROGGS lol! http://thedailywtf.com/articles/polish-elections
20:34 gtodd joined #perl6
20:34 gtodd wow a never before seen by me error compiling perl6 :-)
20:34 felher joined #perl6
20:34 gtodd Useless declaration of a has-scoped method in multi (did you mean 'my method name'?)
20:34 gtodd at lib/NativeCall.pm:114
20:34 gtodd ------>         method ^name() { 'Pointer[' ~ ::TValue.^name ~
20:35 TimToady appears to be a bogus error caused by an internal problem of some sort
20:36 TimToady yesterday it was pointing to the wrong line
20:37 gtodd :)
20:38 jnthn Also it's a warning, not an error :)
20:38 yoleaux 20:21Z <nwc10> jnthn: yes MVM_SPESH_DISABLE=1 gets pass for Rakudo 2014.10's make test
20:38 gtodd hehe
20:38 gtodd sorry
20:38 mohij joined #perl6
20:39 dalek roast: c3d0fa4 | usev6++ | S06-other/misc.t:
20:39 dalek roast: Add tests for RT #117901
20:39 dalek roast: review: https://github.com/perl6/roast/commit/c3d0fa4d70
20:39 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=117901
20:39 gtodd yes ... to be fair it said something like "potential problem" ... but some kind of ansi-fication made it red!
20:39 Mouq gtodd: Still, thanks for pointing it out! :) It's definitely something that needs to be diagnosed
20:40 gtodd hey a silly "benchmark" I ran in december at 64 seconds is now only .... (drum roll) ....
20:40 gtodd 53 seconds !
20:40 telex joined #perl6
20:40 mohij (Context: I want to save state in a grammar that reverts during backtrack.) I fail using make / $/.made to save state in my grammar. It seems the stuff I add to the cursor can't be accessed in sub rules or later non sub rules. Did I just fail to find out how or is it impossible?
20:40 ugexe is there a flag for moarvm that might help it install on a low memory platform?
20:41 [Coke] You want dynamic vars.
20:41 TimToady [Coke]: not, not dynvars
20:41 [Coke] mohij: $*THINGEE
20:41 TimToady those don't work right for backtracking
20:41 [Coke] ok, ignore me.
20:41 TimToady not if you backtrack into a scope that you've exited as a block
20:42 DrForr_ rakudobug sent.
20:42 mohij [Coke]: Already tried that.
20:42 paulohrpinheiro joined #perl6
20:42 DrForr_ #123697
20:42 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123697
20:42 FROGGS DrForr_++
20:42 moritz help, my gdb doesn't seem to understand --args
20:43 moritz what am I doing wrong?
20:43 bartolin DrForr_: actually it seems to be #123967 :-)
20:43 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123967
20:43 [Coke] too old version that you have to use "run" from inside the gdb prompt?
20:43 FROGGS moritz: paste something?
20:43 AnxiousGarlic joined #perl6
20:44 AnxiousGarlic left #perl6
20:44 moritz FROGGS: I did   cp $(which perl6-m) perl6-m-gdb  and changed it to read  exec gdb /path/to/moar --args rest here
20:44 DrForr_ I can't paste from host to uest cleanly so I retyped it, that's probably correct.
20:44 agentzh joined #perl6
20:44 moritz and it says
20:44 moritz Type "apropos word" to search for commands related to "word"...
20:44 moritz --execname=./perl6-m-gdb: No such file or directory.
20:44 agentzh joined #perl6
20:44 mohij I'll get a code sample together...
20:44 bartolin DrForr_++
20:45 timotimo moritz: do we know why camelia's prof-m target gives 404s on the links it spits out?
20:45 moritz timotimo: no
20:45 timotimo OK
20:46 timotimo were there interesting blog posts about perl6 over the last week?
20:46 timotimo aside from the vim highlighter one?
20:46 * vendethiel hasn't seen any in the perl weekly
20:46 FROGGS moritz: gdb --args /home.../moar ....moarvm -e 'say 42'
20:46 moritz FROGGS: oh, the --args must come first?
20:47 FROGGS moritz: yes
20:47 moritz FROGGS: takk
20:47 FROGGS it tells gdb that the rest also includes args to the executable
20:47 [Coke] timotimo: no perl in GSOC this year.
20:47 moritz :(
20:48 timotimo oh damn :(
20:48 TimToady probably screwed over by a pythonista somewhere deep inside Google
20:49 timotimo that sounds unlikely
20:49 timotimo "no perl in gsoc" is information i'm free to share with the readers of my blog?
20:49 TimToady well, okay, it could be something other than malice... :)
20:49 nwc10 timotimo: http://blogs.perl.org/users/shado​wcat_mdk/2015/03/no-go-gsoc.html
20:51 timotimo thank you
20:51 timotimo ;(
20:53 paulohrpinheiro joined #perl6
20:53 Hor|zon joined #perl6
20:53 agentzh TimToady: I've been playing with Perl 6 grammar lately.
20:54 agentzh TimToady: One big missing thing is better error reporting facilities IMHO :)
20:54 agentzh TimToady: Really missing Damian Conway's P::RD and R::G's error reporting support.
20:54 paulohrpinheiro Hello. I want to do DBD::SQLite3 module (Most Wanted Native Bindings), but I see a MiniDBD::SQLite3. Can I do this, or the job is done? Thanks.
20:55 timotimo https://p6weekly.wordpress.com/?p=​419&amp;shareadraft=54f4ce30d646e - have another draft :)
20:55 moritz paulohrpinheiro: DBD::SQLite3 works
20:55 jnthn How hard is a darn wiki in 2015 :/
20:55 moritz paulohrpinheiro: though I'm sure there's also room for improvement
20:55 agentzh TimToady: I especially like Regexp::Grammars's @! variable while handling parse failures.
20:56 lizmat timotimo: I think it's either psch or peschwa, not pschw ?
20:56 timotimo oh
20:56 timotimo indeed
20:56 agentzh hi guys, how much slower is rakudo's rule engine as compared to perl 5's Parse::RecDescent and Regexp::Grammars?
20:57 moritz agentzh: no idea
20:57 timotimo good questions; we don't have a benchmark for that yet, do we?
20:57 agentzh I have a simple benchmark for these three.
20:57 timotimo Regexp::Grammars and Parse::RecDescent are not shipped with perl5, eh?
20:57 moritz agentzh: so what's your result?
20:57 agentzh I'm pasting my code to gist right now for your review.
20:57 literal timotimo: technically you don't have to update to Vim 7.4 to use the latest perl6.vim, I included a make target in the Makefile to strip the new regex syntax from the syntax file
20:57 agentzh I'm still new to these.
20:58 ugexe how should we package grammars that are RFC parser? for instance, i have RFC7230-7235, which are used together (usually) for parsing http messages. Some RFC in it could feasably be useful outside 'http' (like email stuff), so dont know if i should package them all together or separately
20:58 agentzh rakudo is about 5x slower?
20:58 literal it also does it for you on "make install" if it sees that your vim is <7.4
20:58 timotimo literal: ah, thanks
20:59 bartolin good night, #perl6
20:59 timotimo gnite bartolin
20:59 timotimo except
20:59 moritz \o bartolin
20:59 timotimo did you do something cool last week?
20:59 timotimo bartolin: then i can put you into the weekly :3
20:59 bartolin timotimo: you already did (I'm usev6 on github)
20:59 bartolin *g*
20:59 timotimo ah!
21:00 timotimo perfect
21:00 bartolin timotimo++ # weekly
21:00 moritz prof-m: say 'just testing'
21:00 camelia prof-m a01d50: OUTPUT«just testing␤»
21:00 camelia .. Prof: http://p.p6c.org/504f6d
21:00 bartolin o/
21:00 timotimo moritz: do we have a good idea how we can put the commandline and/or filename and/or code into the profiler output somewhere?
21:01 ugexe also pardon my inheritence ignorance, but if i have 2 grammars that both require each other how do I setup the depends/composition without getting a circular dependency error? i tried composing roles and using straight inheritence but i think im a dummy doing it wrong :(
21:01 moritz timotimo: the information is there in nqp; I'd just have to be done
21:01 timotimo OK
21:01 moritz ugexe: you can't have circular dependencies between grammars or classes if they are in separate files
21:01 timotimo and got any clues where to look for finding out why a DBIish-using script is gobbling up memory infinitely?
21:01 * [Coke] wonders why you'd construct the grammars in such a way as they depended on each other.
21:02 moritz ... unless you make them runtime dependencies
21:02 brrt joined #perl6
21:02 agentzh my benchmark files and results: https://gist.github.com/ag​entzh/c5108a959309f015c4f6
21:02 agentzh please have a look for me :)
21:02 moritz timotimo: well, currently DBDish::* don't really do much memory management
21:02 agentzh the results are pasted to the last file.
21:03 lizmat timotimo: maybe mention that Test is/isnt now DWIM for type objects ?
21:03 agentzh I've found that perl 5.20 improves the performance of P::RD dramatically.
21:03 agentzh like 70% speedup.
21:03 lizmat timotimo: japhb implemented IO::Path.resolve
21:03 agentzh with perl 5.18 and 5.16, P::RD is significantly slower than R::G. but 5.20, P::RD is consistently faster.
21:04 agentzh moritz timotimo: please let me know if my benchmarks are flawed or can be improved :)
21:04 agentzh it's just a simple infix arithmetic calculator.
21:05 timotimo agentzh: for me it's now dinner time and also movie time :)
21:05 ugexe moritz: thanks... i thought i needed to drink more
21:05 moritz prof-m: say 'just testing...'
21:05 camelia prof-m a01d50: OUTPUT«just testing...␤»
21:05 camelia .. Prof: http://p.p6c.org/5050b9
21:05 moritz ... fixed
21:06 agentzh timotimo: no hurry :)
21:07 agentzh I've also found that rakudo + moar uses 10x more memory than P::RD.
21:08 timotimo https://p6weekly.wordpress.com/ - publish'd
21:08 jnthn agentzh: Yes, though the "base memory" of Perl 6 is a *lot* higher than Perl 5
21:08 mohij TimToady: https://gist.github.com/pa​tzim/361b80a01e3217ad9073
21:08 lizmat .tell japhb did you know I implemented nqp::readlink recently ?
21:08 yoleaux lizmat: I'll pass your message to japhb.
21:08 timotimo AFK
21:08 lizmat timotimo++
21:08 jnthn agentzh: So only so much of it is attributable to the grammar/parsing
21:09 agentzh jnthn: yeah, i understand that.
21:09 jnthn agentzh: Anyway, thanks for the example; will run it through the profiler when I have time and see if anything stands out to me.
21:10 lizmat prof-m: sub a(str $b is rw) { $b = "foo" }; for ^1000000 { a my str $c }
21:10 agentzh jnthn: that'll be great!
21:10 camelia prof-m a01d50: ( no output )
21:10 camelia .. Prof: http://p.p6c.org/5051be
21:10 agentzh jnthn: thanks!
21:10 Kristien joined #perl6
21:10 agentzh jnthn: I also pasted a silly perl script to that gist for generating random huge input strings (that is, huge arith expressions) :)
21:10 laouji joined #perl6
21:11 agentzh jnthn: and the results there are for random expressions of ~5K operands :)
21:11 lizmat prof-m: sub a(Str $b is rw) { $b = "foo" }; for ^1000000 { a my Str $c }  # compare with this one
21:11 camelia prof-m a01d50: ( no output )
21:11 camelia .. Prof: http://p.p6c.org/5051fb
21:11 J-L joined #perl6
21:11 J-L Hi, I'm a little confused as to what the NativeCall module (for Perl 6) is all about.
21:11 yoleaux 27 Feb 2015 01:13Z <raydiak> J-L: the cygwin dll could be included with your script like the termios module, then modify the termios module to check if it's on windows and nativecall the functions from the dll instead...might even be a change the author of the termios module would be interested in merging too, though I'm not familiar with cygwin's license terms wrt commercial distribution
21:12 lizmat moritz++
21:12 moritz J-L: it's for calling functions from libraries written in C
21:13 J-L Someone told me that NativeCall can be used to read input without echoing the input back to the screen (like what you'd expect on password prompts), but when I loop up the documentation, I don't see anything about that.
21:13 moritz J-L: if there's a C function that does that, you can call it with nativecall
21:14 J-L So any functionality available in a GNU C compiler I can ultimately get via NativeCall?
21:14 J-L Even on MS Windows platforms?
21:14 brrt that... depends...
21:14 brrt on how you mean it :-)
21:14 brrt but yeah, NativeCall basically does dynamic linking for perl6
21:15 paulohrpinheiro moritz: I saw it listed as a priority, so I was confused.
21:15 lizmat TimToady: re pairup: the EnumMap.STORE method also does:
21:15 lizmat elsif nqp::istype($x,EnumMap) and !nqp::iscont($x) {
21:15 lizmat for $x.list { self.STORE_AT_KEY(.key, .value) }
21:15 lizmat do you think that should be part of .pairup as well, or not ?
21:15 J-L Unltimately, I want to be able to prompt the user for a password, without the password being echoed to the screen.  Seems simple to do, but on Perl5 there's no standard way to do it.  (There would be if Term::ReadKey were standard in every distribution, but it isn't.)
21:16 paulohrpinheiro moritz: but if there improvements to do, it's good. Thanks!
21:17 skids damn.  I was just about to suggest using Term::ReadKey via Inline::Perl5
21:18 moritz J-L: well, there can't be a standard way for everything in a programming language
21:18 moritz J-L: that's why modules exist
21:18 kaare__ joined #perl6
21:18 J-L Yeah, I've had to write Perl scripts for customers, and I have no control over which modules are already on their system.  So what works fine on Unix and my own Win platform, may not work on a customer's Win platform.
21:18 brrt moritz, i think python has a standard library for it :-)
21:19 brrt i personally find interpreted languages are not such a great fit for distributing software anyway :-)
21:20 J-L I know that's why modules exist, but I've hit brick walls trying to get this seemingly simple task of not echoing the input to work.  It seems easy to do (and would be, if Term::ReadKey were standard), but as a result I've had to jump through many hoops.
21:20 dalek perl6-most-wanted: a70d0d1 | moritz++ | most-wanted/bindings.md:
21:20 dalek perl6-most-wanted: Mention status of DBD modules, paulohrpinheiro++
21:20 dalek perl6-most-wanted: review: https://github.com/perl6/perl6​-most-wanted/commit/a70d0d1b10
21:20 skids J-L: If Term::Readkey does work on windows (and just isn't available in e.g. activestate perl installs, but would work if you installed it) you could look a the code it uses and write something for NativeCall that does the same thing.
21:20 moritz J-L: have you tried things like fat packing?
21:20 brrt J-L - i must ask, what problem are you really trying to solve?
21:21 J-L I've had quite a few successes with distributing Perl software, actually.  Just not with hiding password input.  That's always been the thorn in my side, and for some reason, adding Term::ReadKey as a standard module never really happened.
21:21 jnthn J-L: Just to check: if Perl 6 has a pure Perl, no compilation needed, module that does what Perl 5 Term::ReadKey did so you could easily ship it with your program, you'd be fine?
21:22 J-L Interesting idea about writing something for NativeCall.  I don't know much about Perl 6, having just started dabbling with it last week.
21:23 J-L jnthn:  Yes, if Perl 6 has either a 1) standard way of hiding input, or 2) has a Pure-Perl version that I can distribute with my program, that would be what I want.
21:25 mst actually, it appears my pure perl code does
21:25 J-L What I'm trying to solve is the problem of asking the user for a password (that would get passed on to another program) without actually printing out the password when typed.  Right now the only platform-independent method is to ask for the password and the clear the screen, which is not quite what I'm looking for.
21:25 mst system('stty -echo'); chomp(my $res = <STDIN>); system('stty echo');
21:25 mst which. um. yes. I know. but it works really nicely.
21:25 jnthn mst: ...on Windows? :P
21:26 J-L mst:  That works for Unix, I'm sure, but not Windows.  I don't think it works on either ActiveState Perl nor Strawberry Perl.
21:26 mst on windows I'd be shipping my own perl anyway so I can use whatever XS modules I like
21:26 J-L In fact, the Perl5 perldoc "perldoc -q keyboard" works great on Unix, but not on Strawberry Perl.
21:27 J-L (Even though Strawberry Perl has the POSIX module, it lacks POSIX::Termios support, evidently.)
21:27 J-L (By the way, "perldoc -q keyboard" gives:  "How can I read a single character from a file?  From the keyboard?")
21:28 brrt i'm wondering how in windows the terminal windows is controlled
21:29 Kristien my guess is "crappily"
21:29 dalek perl6-examples: 3767647 | paultcochrane++ | TODO:
21:29 dalek perl6-examples: Add TODO file
21:29 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/376764724e
21:29 brrt that is an unfair guess imho :-)
21:30 hoelzro literal: you say in your blog post that the perl6 vim syntax file is now more accurate than the pygments one.  That's fantastic!  Do you have any pointers on how I could improve the pygments highlither?
21:30 brrt there's a javascript API for office. wow
21:32 J-L I wonder if a small executable would work that all it does is read non-echoing input and then print it out, all at once.  That way, you could do a qx// or `` call (not sure how on Perl 6) and simply return what was typed in.
21:33 [Coke] API? In my day we handrolled XML generation to emit excel file... oh, wait, I'm doing that still, today. carry on
21:34 brrt https://msdn.microsoft.com/nl-nl/library​/windows/desktop/ms682073(v=vs.85).aspx :-)
21:34 literal hoelzro: where is the source for the Perl 6 pygments highlighter?
21:34 skids J-L: it looks like perl5's Term::ReadPassword::Win32 uses Win32, Win32::Console and Win32API::File.  Are those three modules available on your target systems?
21:34 brrt i've once use perl-and-xslt to transform .docx to .html
21:34 hoelzro literal: https://bitbucket.org/birkenfeld/pygments-mai​n/src/943cb8da8444b832804f6cebf9679305b22f8b1​5/pygments/lexers/perl.py?at=default#cl-209
21:34 [Coke] J-L: have you investigated bundling your modules with your app?
21:35 brrt https://msdn.microsoft.com/nl-nl/library​/windows/desktop/ms686033(v=vs.85).aspx :-)
21:35 [Coke] er, more specifically, your dependencies.
21:35 J-L skids:  Let me see... hold on...
21:35 hoelzro granted, there might be some patches in Hg that aren't in a stable release
21:35 literal hoelzro: so it's just a Python class and you can do anything in it?
21:35 hoelzro literal: yup!
21:35 literal that's neat
21:36 hoelzro it is; adding that to pygments was very simple
21:36 J-L skids:  It doesn't look like Term::ReadPassword::Win32 is available on (my copy of) Strawberry Perl.
21:36 hoelzro they give you a good basic tool set, but don't limit you from doing crazy things
21:36 skids Are the Win32:: modules mentioned above available?
21:38 J-L skids:  By the "Win32:: modules", you mean Term::ReadPassword::Win32 ?  That is not on Strawberry Perl, but I was able to successfully install it (just now) with "cpan Term::ReadPassword::Win32".  Is that what you meant?
21:38 skids No, I meant: Win32, Win32::Console and Win32API::File
21:39 J-L Skids:  Oh, hold on while I check...
21:39 skids (and be sure you did not just install them along with Term::ReadPassword::Win32)
21:40 dalek Heuristic branch merge: pushed 43 commits to roast/newio by lizmat
21:41 paulohrpinheiro left #perl6
21:42 J-L skids:  I just checked on a near-virgin installation of Strawberry Perl, and they (Win32, Win32::Console, and Win32API::File) do appear to be all there.
21:42 J-L skids:  I can't vouch for ActiveState Perl, though.
21:42 literal hoelzro: I'm not sure what to suggest at the moment, but if you have a question about how perl6.vim is able to highlight something that pygments has issues with, I could probably give pointers
21:43 hoelzro literal: some examples of things that pygments doesn't properly highlight would be sufficient
21:43 skids OK, well, Term::ReadPassword::Win32 is only several dozen lines, so you could just copy/paste it into your program, remove the module wrappings, and use it that way.
21:43 literal hoelzro: ah, I think I can come up with something
21:43 hoelzro I have a backlog of changes that have happened in the language since I wrote the lexer, but ENOTIME/ETOOLAZY
21:43 hoelzro I could probably follow TimToady's suggestion of *not* highlighting builtin classes/functions
21:45 dalek rakudo/nom: b85b85d | lizmat++ | src/core/ (2 files):
21:45 dalek rakudo/nom: Cat-license EnumMap.STORE into Any.pairup()
21:45 dalek rakudo/nom:
21:45 dalek rakudo/nom: Hope this is what TimToady meant, from the .pairup() speculation.
21:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b85b85ddc6
21:46 J-L skids:  Hmmm... interesting.  That might work.
21:47 agentzh is rakudo using the same regex engine as NQP?
21:47 agentzh is it expected that NQP can be much faster in my infix arithmetic expression calculator benchmarks?
21:47 jnthn agentzh: Yes, and if you're seeing a big difference there it probably means the thing making the difference is not the parsing.
21:47 skids J-L: and if at any time you want to try your hand at making a Perl6 version of those packages, I am sure other 6ers would appreciate that.
21:48 agentzh jnthn: thanks for the info. I'll try NQP out in my experiments.
21:48 lizmat TimToady: $ 6 '(a => 42, "b", 65, %( c => 25, d => 99 )).pairup.perl.say'
21:48 lizmat ("a" => 42, "b" => 65, "c" => 25, "d" => 99).list
21:51 agentzh jnthn: i'm thinking about building a Perl 6 land flame graph tool just as the tools I built for LuaJIT and Perl 5: https://github.com/openresty/stapxx#lj-lua-stacks & https://github.com/agentzh/perl​-systemtap-toolkit#pl-sample-bt
21:51 agentzh jnthn: basically the tools use systemtap to sample scripting language level backtraces.
21:52 agentzh jnthn: they do not require changing the program nor restarting the process.
21:52 agentzh jnthn: the downside is that it's linux only while Mac OS X's dtrace is not strong enough on userland probing as systemtap.
21:53 J-L skids:  I'd love to make a Oerl 6 version.  (I once wrote up (and posted) my own attempt with Perl 5 and called it PortableReadKey)  However, I have lots of questions.about NativeCall.
21:53 agentzh jnthn: even Solaris's dtrace is not strong enough the last time i checked.
21:53 brrt i heard bsd's dtrace was the knees bees
21:53 J-L skids:  Can I just write a Perl 6 module that uses NativeCall to call C system functions, and use it without the need to compile anything?
21:53 agentzh brrt: heh.
21:53 brrt J-L: yes
21:54 skids J-L: This is the place to ask those.  Though I'm afk for the drive home (and not much for windows devel personally)
21:54 brrt that is what NativeCall is for
21:54 Hor|zon joined #perl6
21:55 J-L brrt & skids:  So even if no C compiler exists on my system, I can still use NativeCall to write up my own modules that make system calls?
21:55 dalek rakudo/nom: 0b42fc4 | lizmat++ | src/core/Any.pm:
21:55 dalek rakudo/nom: No need to first make a list and then pairs again
21:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0b42fc4f6a
21:55 skids J-L: Yes. NativeCall is easier if the API does not have #defines for values, you may have to hardcode those and hope they do not change, but yes.
21:55 agentzh brrt: the last time i checked, freebsd 9.0's dtrace port is as poor as mac os x. has it improved a lot since then?
21:55 J-L skids:  Wow, I hope that's not too good to be true.  Any chance that there's anything like that for Perl 5?
21:56 timotimo i hear there's something new for perl5 that is a tiny bit like NativeCall
21:56 timotimo i forgot the name
21:56 brrt yes
21:56 literal hoelzro: I tried running the pygmentize on all the files in vim-perl/t_source/perl6/ and I see they all have major highlighting issues :P
21:57 skids J-L: A lot has probably changed since I last used perl5's XS system, so I don't know whether C compilation is strictly required there.
21:57 J-L skids:  The latest rakudo perl for Windows at http://rakudo.org/downloads/star/ (rakudo-star-2014.03.msi) doesn't have NativeCall. I was told it just recently got added last month.
21:57 timotimo colomon: you're running timeout.t again :)
21:57 dalek rakudo/nom: cb7ded3 | TimToady++ | src/Perl6/ (2 files):
21:57 dalek rakudo/nom: put cursor on correct decl for sig vs placeholder
21:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb7ded34d1
21:57 timotimo 02-timeout.t
21:57 brrt it basically works by taking a dll (or so) files and matching dll symbols to perl6 symbols
21:58 J-L timotimo:  If you remember the name, let me know!  I'd be grateful!
21:58 colomon timotimo: yes, that’s what happens when you smoke test the modules every day and one of them is badly broken.
21:58 jnthn agentzh: How do they co-opt the script language to spit out a backtrace?
21:58 [Coke] J-L: nativecall has shipped with star for ages; it only just changed from a module to core.
21:58 skids J-L: try rakudo-star-2014.12.1-moar.msi
21:59 hoelzro literal: =(
21:59 hoelzro well, thanks for testing that out
21:59 hoelzro I'll see if I can fix that up
21:59 skids Anyway, drive time, laterz o/
22:00 J-L skids:  I'm unclear what the "moar" part is, but I'll install it.
22:00 timotimo it's the backend you'll get
22:00 jnthn J-L: The virtual machine it runs on
22:01 J-L I don't have to uninstall the Rakudo Perl I already installed, do I?
22:02 J-L I thought the virtual machine was Parrot, no?
22:02 brrt i don't think so.. what do you get with perl6 --version
22:02 timotimo you can just rm -rf the folder it's in
22:02 [Coke] J-L: there are multiple backends. Moar is the preferred one.
22:02 J-L perl6 --version gets me:  This is perl6 version 2014.01 built on parrot 5.9.0 revision 0
22:02 literal hoelzro: a big part of it seems to be mishighlighting of '<', whether it's a quoted list or a hyperop, etc
22:03 timotimo haha, 2014.01
22:03 literal that is indeed tricky to get right
22:03 [Coke] J-L: that is super old and you must upgrade.
22:04 J-L timotimo:  Well, that's the latest *.msi file at http://rakudo.org/downloads/star/ that doesn't end in parrot* or moar*
22:04 timotimo right
22:04 timotimo after that we finally got multiple backends
22:04 brrt haven't we been building .msi's since 2014?
22:04 J-L timotimo:  So I don't know how to get a newer general version of Perl 6.
22:05 timotimo oh, that's a very novel way to look at that
22:05 hoelzro literal: oh, yes, my heuristic for < is pretty bad, iirc
22:05 [Coke] use http://rakudo.org/downloads/star​/rakudo-star-2014.12.1-moar.msi
22:05 J-L Moar has finished installing.  "perl6 --version" still gets me:  This is perl6 version 2014.01 built on parrot 5.9.0 revision 0.  I see no mention of Moar.
22:07 J-L timotimo:  Not counting *parrot.msi and *moar.msi, the latest *.msi file at http://rakudo.org/downloads/star/ is rakudo-star-2014.03.msi .
22:09 beastd joined #perl6
22:10 FROGGS J-L: that old perl6 is probably in path before the new one
22:10 timotimo J-L: you do know we describe what it all means on http://rakudo.org/how-to-get-rakudo/ ?
22:10 timotimo and a few words on it are in every announcement of rakudo star, too
22:10 sqirrel joined #perl6
22:11 timotimo can you point out what's lacking about that text?
22:12 FROGGS jnthn: I do not enjoy debugging a NPE for nqp-j about the URI module failure...
22:13 FROGGS java.lang.NullPointerException
22:13 FROGGS at org.perl6.nqp.runtime.IndyBootstrap.subcal​lstaticResolve_noa(IndyBootstrap.java:195)
22:13 jnthn FROGGS: :(
22:13 J-L FROGGS:  It looks like you're right.  There's a "perl6.BAT" file alongside my "perl6.EXE" file.  Typing "perl6.BAT --version" gets me:  This is perl6 version 2014.12 built on MoarVM version 2014.12"
22:13 FROGGS that's basically the information I have, and I cannot make any sense out of it...
22:13 jnthn FROGGS: I'm not sure *anybody* enjoys that...
22:13 FROGGS jnthn: the line number (195 here) changes when I add debugging code or checks "randomly"
22:14 raiph joined #perl6
22:14 jnthn FROGGS: OK, that *is* odd
22:14 jnthn FROGGS: Is the object its receiving to invoke null?
22:14 FROGGS line 195 is:         if (invokee.st != null && invokee.st.ContainerSpec != null) {
22:14 FROGGS and within the block it just does a decont
22:14 jnthn OK, that would NPE if invokee is null
22:14 FROGGS jnthn: but it seems not to be
22:16 J-L Okay, now "perl6.exe -e "use NativeCall"" does not complain, but "p6doc NativeCall" does complain ("No Pod found in ...").  Where do I learn how to use NativeCall ?
22:17 FROGGS J-L: here is a getting-started and there are also examples: https://github.com/jnthn/zavolaj
22:17 * brrt afk :-)
22:17 FROGGS J-L: we just moved NativeCall to the compiler repository and are about to move its documentation also
22:17 J-L timotimo:  I've see that page, but I was never sure how the different parts meshed together.  That is, If I install *moar*, does it play nicely with all the other things, without uninstalling them?  I was never sure.
22:19 virtualsue_ joined #perl6
22:21 [particle]1 joined #perl6
22:22 J-L Sweet!  I got the example at https://github.com/jnthn/zavolaj/blo​b/master/examples/win32-api-call.p6 working.  Now, where would I go about learning about 'user32' and which lib/call to make for reading raw keyboard text without echoing?
22:22 FROGGS J-L: google and stackoverflow? or you look at existing P5 or python or whatever bindings...
22:23 J-L I don't understand how, in the example at https://github.com/jnthn/zavolaj/blo​b/master/examples/win32-api-call.p6 , and how 'user32' puts up a simple message box.
22:24 FROGGS J-L: is native('user32') refers to the user32.dll in your C:\Windows\system32
22:24 FROGGS J-L: and this exposes a C function called MessageBoxA
22:25 FROGGS if you need more details, please ask for said details :o)
22:28 agentzh joined #perl6
22:28 kjs_ joined #perl6
22:30 J-L FROGGS:  Ah, I see!  I thought MessageBoxA was just an arbitrary function name.  Didn't realize it referred to the specific C function in 'user32'.
22:31 FROGGS jnthn: it seems you were right... but I wonder, why did 'if (invokee == null) System.out.println("foo")' print nothing?
22:31 FROGGS J-L: the default is that the sub name is taken as the symbol for the C call
22:32 FROGGS J-L: but you can instead supply a symbol name with the 'is symbol("foo")' trait, and then call you sub how you want to have it
22:33 J-L So now that I am able to use NativeCall, any hint as to which *.lib and function name to begin looking for?
22:33 J-L Incidentally, my perl6 installation doesn't seem to have POSIX installed.  Or is it a different name ?
22:34 FROGGS jnthn: okay confirmed, invokee is null... what does that mean? is "invokee = Ops.getlex(name, tc)" buggy?
22:34 sisar joined #perl6
22:34 FROGGS jnthn: or are the warnings I see for other code as well about the method P6::O.lexical_vars_to_locals to blame?
22:35 FROGGS J-L: there is no posix, no
22:36 J-L FROGGS:  Are there any plans to include POSIX eventually?  It's so useful on Perl 5.
22:37 FROGGS J-L: I have no personal plans, and I cant speak for somebody else :o)
22:39 FROGGS Can not invoke object '&postcircumfix:<{ }>' in sub scheme_port at lib/URI/DefaultPort.pm:30
22:39 pmichaud J-L: we will undoubtedly consider POSIX support if/when someone implements it.  :)
22:39 * raydiak wondered if J-L couldn't use cygwin termios functions via nativecall
22:39 FROGGS well, that's slightly better than a NPE
22:40 pmichaud I'd want it to be first created as a module, though.
22:41 J-L raydiak:  Maybe I could use cygwin termios, but then it woudn't run on all Windows Perls.  I can't guarantee that a customer has cygwin termios.
22:42 raydiak J-L: you can include all you need with your script, like I said last time :)
22:43 raydiak unless there are licensing problems with your commerical uses
22:43 raydiak idk a lot about cygwin myself
22:43 raydiak back to afk
22:46 dalek nqp: 87161db | FROGGS++ | src/vm/jvm/runtime/org/perl6/n​qp/runtime/IndyBootstrap.java:
22:46 dalek nqp: throw meaningful exception instead on NPE
22:46 dalek nqp:
22:46 dalek nqp: We have an issue with our-scoped subs in combination with precompiled modules, like
22:46 dalek nqp: one can see here: http://testers.p6c.org/reports/15765.html
22:46 dalek nqp: This patch is hopefully just the first step of fixing this beast.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/87161dbb49
22:47 lizmat m: class A { method a { 42 ?? nextsame !! die } }   # huh?
22:47 camelia rakudo-moar cb7ded: OUTPUT«5===SORRY!5===␤Found ?? but no !!␤at /tmp/s8MSpkHgOJ:1␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }   # huh?␤Confused␤at /tmp/s8MSpkHgOJ:1␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }   # huh?␤    expecti…»
22:47 jnthn pmichaud: If invokee is null then Ops.getlex(name, tc) will have returned something null
22:47 lizmat m: class A { method a { 42 ?? nextsame() !! die } }   # seems to work ok?
22:47 camelia rakudo-moar cb7ded: ( no output )
22:47 jnthn uh
22:47 jnthn FROGGS: ^^ :)
22:48 FROGGS jnthn: yes, that sounds quite correct
22:48 jnthn std: class A { method a { 42 ?? nextsame !! die } }
22:48 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Found ?? but no !! at /tmp/3bydg___DX line 1:␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }␤Unexpected closing bracket at /tmp/3bydg___DX line 1:␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }␤Parse fail…»
22:48 FROGGS jnthn: so, I shall take a look at getlex you say? :o)
22:48 jnthn FROGGS: That may mean it's looking at some kind of static lexpad when it should be seeing a real one, for example
22:49 jnthn FROGGS: I dobut getlex itself is broken; we use that a *load*
22:49 jnthn FROGGS: I more suspect the .outer chain is
22:50 FROGGS jnthn: but getlex walks it in some way, right?
22:50 jnthn FROGGS: Correct
22:50 FROGGS ahh yes, I see
22:51 jnthn FROGGS: I mean, getlex's implementation likely isn't buggy, it's that the data it's operating on is
22:51 FROGGS yeah
22:51 lizmat m: class A { method a { 42 ?? nextsame !! die } }   # rakudobuggable?
22:51 camelia rakudo-moar cb7ded: OUTPUT«5===SORRY!5===␤Found ?? but no !!␤at /tmp/SVbLR3J9wa:1␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }   # rakudobuggable?␤Confused␤at /tmp/SVbLR3J9wa:1␤------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }   # rakudobu…»
22:51 kjs_ joined #perl6
22:52 jnthn lizmat: I just showed STD agrees
22:52 jnthn lizmat: So no
22:52 jnthn lizmat: nextsame is a list op; it then parses ! as prefix:<!>
22:53 jnthn lizmat: 'cus with listops we're looking for a term next, not an infix.
22:54 jnthn lizmat: I do wonder if we mightn't get a hintier error though
22:54 jnthn lizmat: Like in
22:54 jnthn m: for foo -> $a { }
22:54 camelia rakudo-moar cb7ded: OUTPUT«5===SORRY!5===␤Function foo needs parens to avoid gobbling block␤at /tmp/qHo_IzugcH:1␤------> 3for foo -> $a { }7⏏5<EOL>␤Missing block (apparently taken by 'foo')␤at /tmp/qHo_IzugcH:1␤------> 3for foo -> $a { }7⏏5<EOL>␤␤»
22:54 jnthn Which is an instance of the same thing
22:55 pmichaud I wonder if it's worth fixing the prefix:<!> parse so that it doesn't accept a second !
22:56 lizmat hmmm... then I wonder why nextsame is a listop ?
22:56 pmichaud although I think this had been discussed (and I guess rejected) before.
22:56 jnthn lizmat: Uh, it's not that nextsame is, it's that any foo that's not a term is
22:57 jnthn lizmat: The alternative would be making nextsame a term
22:57 lizmat shoulden't nextsame then be a term
22:57 lizmat yes
22:57 lizmat :-)
22:57 jnthn I don't immediately feel so
22:57 lizmat ok, I just stumbled on it
22:57 J-L raydiak:  I might be able to include cygwin termios with my script, but can I just distribute that, even if their system has nothing Cygwin-related on it?
22:57 lizmat so the fix is to do nextsame() ?
22:57 FROGGS that would not solve: a ?? foo !! b
22:57 FROGGS lizmat: yes
22:58 jnthn lizmat: Yeah. Mebbe TimToady will feel differently, but my gut feeling is "no, nextsame doesn't deserve promotion to a term"
22:58 pmichaud what happens if we fix prefix:<!> to fail if immediately followed by another !?
22:58 * lizmat goes to bed
22:58 jnthn I thought STD already did that but apparently it doesn't here...
22:58 jnthn 'night, lizmat
22:59 FROGGS lizmat: sleep well
22:59 * pmichaud looks at STD.pm6
22:59 jnthn m: say !!2
22:59 camelia rakudo-moar cb7ded: OUTPUT«True␤»
22:59 jnthn std: say !!2
22:59 camelia std 28329a7: OUTPUT«ok 00:00 135m␤»
22:59 jnthn Hm, not
22:59 jnthn std: say ~~2
22:59 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Expecting a term, but found either infix ~~ or redundant prefix ~␤  (to suppress this message, please use space between ~ ~) at /tmp/eKQ7LUtsgh line 1:␤------> 3say ~~7⏏2␤Parse failed␤FAILED 00:00 135m␤»
22:59 jnthn Hm, it gets that one.
22:59 jnthn std: say ??2
22:59 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Expecting a term, but found either infix ?? or redundant prefix ?␤  (to suppress this message, please use space between ? ?) at /tmp/4A4dKrNzdE line 1:␤------> 3say ??7⏏2␤Parse failed␤FAILED 00:00 135m␤»
23:00 jnthn I wonder if !! is actually being parsed as meta-op ! on an infix ! :)
23:00 jnthn And so doesn't trip the dupe prefix warning :)
23:00 pmichaud https://github.com/perl6/st​d/blob/master/STD.pm6#L3352
23:01 jnthn Ah, the !before '!'
23:01 pmichaud well, that's not it entirely.
23:01 pmichaud Because there's also
23:01 pmichaud https://github.com/perl6/st​d/blob/master/STD.pm6#L3600
23:01 pmichaud which doesn't seem to care about a second !
23:02 jnthn Right, I'm wondering where the ??2 and ~~2 errors came from
23:02 jnthn It's not in https://github.com/perl6/st​d/blob/master/STD.pm6#L3618
23:02 jnthn oh
23:02 pmichaud maybe 3615?
23:03 jnthn https://github.com/perl6/st​d/blob/master/STD.pm6#L3609
23:03 pmichaud so perhaps prefix:<!> should do a similar thing?
23:03 pmichaud or, more precisely, we should define a prefix:<!!> ?
23:03 jnthn No, it's the infix (like I linked) that seems to call dupprefix
23:04 J-L Well, I gotta go now.  Thanks for all your help, guys.
23:04 FROGGS it is still a prefix, not an infix
23:04 FROGGS J-L: o/
23:04 pmichaud prefix:<??> and prefix:<~~> both call .dupprefix, so perhaps prefix:<!!> should also
23:04 jnthn oh, duh, you're right
23:05 jnthn I read prefix as infix somehow.
23:05 FROGGS hmmm, this should not break the ternary since an infix is expected...
23:05 FROGGS (adding the prefix:!! I mean)
23:05 FROGGS so I wonder why it is not there already
23:05 pmichaud std:   nextsame ?? 1 !! 2
23:05 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Expecting a term, but found either infix ?? or redundant prefix ?␤  (to suppress this message, please use space between ? ?) at /tmp/sqkdC1S5fO line 1:␤------> 3nextsame ??7⏏5 1 !! 2␤Parse failed␤FAILED 00:00 135m␤»
23:05 perl4life joined #perl6
23:05 jnthn pmichaud, FROGGS: Yeah, adding prefix:<!!> seems worth a try
23:05 pmichaud agreed.
23:05 pmichaud make it so.  :)
23:06 jnthn I do wonder why it's not there, though...and if it's exclusion is 'cus it trips something up
23:06 pmichaud if that's the case, let's add a comment to that effect somewhere.
23:06 jnthn We're missing dupprefix stuff entirely at the moment.
23:06 jnthn That's a nice LHF :)
23:06 pmichaud m:  nextsame ?? 1 !! 2
23:07 camelia rakudo-moar cb7ded: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o2XEPOVHgw␤Two terms in a row␤at /tmp/o2XEPOVHgw:1␤------> 3nextsame ?? 1 7⏏5!! 2␤    expecting any of:␤        infix stopper␤        infix or meta-infix␤        postfix␤        statement …»
23:07 jnthn I'm meant to be doing like 2 other things with deadlines at the moment, mind... :/
23:07 FROGGS and I've not enough battery power left :o(
23:07 pmichaud just add a ticket somewhere, then.
23:07 FROGGS pmichaud++
23:08 pmichaud I've to go pick up my dog before the kennel closes... bbl
23:10 FROGGS gnight
23:16 dalek rakudo-star-daily: 80aa286 | coke++ | log/ (9 files):
23:16 dalek rakudo-star-daily: today (automated commit)
23:16 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/80aa286fc1
23:22 [Coke] Huh: http://example.com is a valid do-nothing op in C99 & C++
23:27 adu joined #perl6
23:30 jnthn [Coke]: ahaha!
23:30 jnthn [Coke]: That's the best thing I've seen this week :P
23:31 timotimo :D
23:31 timotimo i understand how that works!
23:31 timotimo .o( but you can only put it in your code once, right? )
23:31 raydiak .tell J-L you'll have to learn more about these various parts by reading docs and trying things out, but assuming cygwin does indeed provide termios, it is my understanding that you can use the cygwin dll by just including it with your script (maybe both 32 and 64 bit dlls) and calling it...everything else you can get from the installer is just if you want posix userland things like bash
23:31 yoleaux raydiak: I'll pass your message to J-L.
23:32 timotimo raydiak: do you know if cygwin can run in windows cmd.exe?
23:33 grondilu (isn't it wat Cygwin does?)
23:33 timotimo it doesn't come with its own terminal emulator?
23:33 raydiak timotimo: afaik it is common to port posix-reliant apps to windows by including the cygwin dll, not special cygwin environment required for the user
23:33 timotimo OK
23:36 raydiak but yeah exactly how much terminal functionality it supports without the bash it provides, idk...but hope someone looks it up or even better tries it out eventually :)
23:43 Hor|zon joined #perl6
23:53 raiph joined #perl6
23:54 cognominal joined #perl6

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

Perl 6 | Reference Documentation | Rakudo