»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
timotimo gen-recents.pl results in a 15 mb sized profile reslut >_< 00:09
result*
tadzik timotimo: I like it :) 00:12
timotimo have you actually tried it? :P 00:13
tadzik oh, you know the answer :P
"I didn't tested, I only proved it correct" :P
timotimo there should be something clever to prevent filenames that are illegal sub names from b0rking the eval
tadzik hmm 00:14
sub subify($ify)
timotimo :D
dalek kudo-star-daily: 7e5ae07 | coke++ | log/ (10 files):
today (automated commit)
00:15
psch &
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:17 laouji joined
[Coke] literal++ #vimmy 00:17
00:18 laouji_ joined
timotimo waits for the routine list to become sorted ... 00:19
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:22
00:22 laouji_ left 00:24 gamo left
timotimo the tab crashed instead ... 00:29
interesting 00:32
1000 local deopts inside the "of" method of Array in the script
00:38 clawft joined 00:39 laouji left 00:40 laouji joined 00:44 laouji left 00:45 laouji joined 00:46 spider-mario left 00:48 Akagi201 joined 00:53 Akagi201 left
avuserow it has a note in the README saying that it doesn't validate SQL yet :( 00:53
oops
ww
00:56 raiph joined 00:57 mr-foobar left 01:05 dayangkun left 01:14 cognominal joined 01:19 laouji_ joined
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␤␤»
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, '');
camelia rakudo-moar 28fddb: OUTPUT«b␤This representation (VMArray) cannot unbox to a native string␤ in block <unit> at /tmp/aX2WaJm5dT:1␤␤»
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␤␤»
timotimo hm
oh, i see what you're getting at
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.
yoleaux japhb: I'll pass your message to jnthn.
01:23 laouji_ left 01:25 Hor|zon joined
japhb .tell jnthn See irclog.perlgeek.de/perl6/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.
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:29 Hor|zon left 01:40 ash_gti joined 01:41 jack_rabbit left 01:46 BenGoldberg joined, clawft left 01:49 ash_gti left
timotimo m: say nqp::join('', nqp::list(my str $c = 'c')) 01:52
camelia rakudo-moar 28fddb: OUTPUT«c␤»
timotimo interesting
this one doesn't seem to take a reference 01:53
02:01 Akagi201 joined
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.
timotimo but it seems like the "latest reports" page works properly now 02:04
i went ahead and uploaded the report i generated manually: testers.p6c.org/recent.html 02:08
looks good?
not quite, the links to reports aren't correct
.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.
skids .botsnack 02:12
yoleaux :D
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 )
yoleaux timotimo: I'll pass your message to FROGGS.
02:12 kaare_ left 02:13 kaare_ joined 02:15 aborazmeh joined, aborazmeh left, aborazmeh joined 02:23 mr-foobar joined 02:32 yeahnoob joined, kaare__ joined, chenryn joined 02:36 kaare_ left 02:37 kaare__ is now known as kaare_
grondilu Configuring native build environment ................... JIT isn't supported on i586-linux-gnu-thread-multi-64int yet. 02:39
^ I wonder where the multi-64int comes from since I'm pretty sure this is 32bits. 02:40
02:41 BenGoldberg left 02:45 ilbot3 left 02:46 ilbot3 joined
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
timotimo ooooh, FROGGS made a Punycode module! 03:17
03:18 Psyche^ joined 03:19 Hor|zon left 03:20 chenryn left 03:22 Patterner left 03:27 kaare_ left
timotimo m: say ("foo" R=> "bar") 03:28
camelia rakudo-moar 28fddb: OUTPUT«bar => foo␤»
03:29 kaare_ joined 03:34 noganex joined, adu left 03:37 noganex_ left 03:48 cognominal left 04:04 Sqirrel left 04:05 Sqirrel joined
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
.tell colomon you have a job running on hack.p6c.org that's been eating 100% cpu for a LONG time now
yoleaux timotimo: I'll pass your message to colomon.
colomon HUH
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
timotimo ah, there you are
colomon THought I checked this morning....
timotimo oh, hold on
300% cpu usage
colomon so what module has 02-timeout.t ? 04:13
timotimo don't know, try that git repository moritz built with all of the ecosystem modules 04:15
colomon moritz++ timotimo+_ 04:17
moritz++ timotimo++
Test::ClientServer ? 04:18
github.com/flussence/Test-ClientSe...-timeout.t 04:19
timotimo i'm making this worse and worse and worse 04:31
colomon ?
timotimo cpandatesters 04:34
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.
camelia rakudo-moar 28fddb: OUTPUT«===SORRY!===␤Lexical 'self' already declared␤»
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? :)
TimToady hah
oh, literal++ too :) 04:44
04:45 mr-foobar left
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␤»
TimToady that seems a bit suboptimal...
04:46 hugme left, telex left, hugme joined, ChanServ sets mode: +v hugme 04:47 mr-foobar joined 04:48 telex joined
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:52 raiph left 04:53 ash_gti joined
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␤»
TimToady std: my method foo(::class: *@stuff) { say class; say @stuff} 04:54
camelia std 28329a7: OUTPUT«ok 00:01 141m␤»
TimToady STD requires space after 'class' and many other keywords
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:55 ash_gti left
timotimo i finally have a state where things are not b0rken 04:56
04:56 laouji_ joined
timotimo rebuilds the last ~1.5k reports on cpandatesters 05:00
TimToady m: if$_ { say "hi" }
camelia ( no output )
TimToady that's kinda wrong by STD's lights
05:01 laouji_ left 05:02 Hor|zon joined 05:07 Hor|zon left, Alina-malina left 05:14 mr-foobar left 05:20 ash_gti joined
timotimo gen-report.pl swallows more and more memory the longer it runs :( 05:25
i wonder if its per-page render time gets worse the more memory the whole process has eaten, due to gc etc 05:27
05:28 ash_gti left
avuserow is it possible to somehow run a grammar against a file whose contents won't fix in memory? 05:30
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
avuserow is there a plan for it, out of curiosity? 05:33
timotimo yeah
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
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
that's <cut>
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:35
avuserow yeah, I know of Cats as "lazy strings" but nothing beyond that 05:37
05:37 jack_rabbit joined
avuserow also, is there an easy way to find out the next N characters of data after my rules stopped matching? 05:37
Grammar::Tracer and ::Debugger are useful but don't seem to have any way to inspect the next bits...
timotimo perl6-debug-m will allow you to see what comes up 05:39
avuserow okay cool, thanks timotimo
timotimo but it won't automatically stop when something doesn't match 05:40
05:42 dayangkun joined 05:47 rindolf joined 05:49 tmch joined 05:51 diana_olhovik joined, dayangkun left 06:02 chenryn joined 06:04 aborazmeh left 06:05 laouji left 06:10 laouji joined 06:25 tmch left 06:26 perlh joined
moritz \o 06:35
06:36 diana_olhovik left 06:52 Hor|zon joined 06:56 Hor|zon left 06:57 Alina-malina joined 06:58 Rounin joined, bjz joined 07:09 diana_olhovik joined 07:24 anaeem1_ joined 07:26 rindolf left 07:27 Possum left 07:31 Sqirrel left, tmch joined 07:41 Khisanth left, davido__ joined 07:42 Khisanth joined, abraxxa joined 07:44 davido_ left, rindolf joined 07:47 Ven joined 07:52 alpha- left, wicope joined 07:53 FROGGS joined 07:54 [Sno] left
moritz my wife's expressionistic rendering of camelia: twitter.com/Lilaloki21/status/5719...18/photo/1 07:57
08:03 zakharyas joined 08:04 prime left
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?
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
02:10Z <timotimo> FROGGS: and it seems like the lock for generating reports has gotten stuck :(
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 )
FROGGS what the 08:06
ohh!
timotimo++
\o/
masak :) 08:11
yoleaux 03:09Z <timotimo> masak: i've got a nice little pull request for Crypt :)
masak good morning, #perl6
nwc10 good *, * 08:12
FROGGS morning
08:12 prime joined, prime left, prime joined
masak ooh, a nice little pull request for crypt! \o/ 08:12
who is this timotimo guy, Santa Claus?
masak is teaching today 08:13
08:14 darutoko joined
masak timotimo: merged -- thank you. 08:15
Ven o/, #perl6! 08:22
08:22 virtualsue joined 08:27 rurban joined, Ven left
sergot morning #perl6 08:32
08:33 tenaglia joined, tenaglia left 08:34 laouji_ joined 08:37 Hor|zon joined 08:38 laouji_ left
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?
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.
01:26Z <japhb> jnthn: See irclog.perlgeek.de/perl6/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 08:42 Hor|zon left 08:43 [Sno] joined
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:44 Ven left
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.
FROGGS jnthn: is that the so called 'slow binder'?
jnthn FROGGS: No, there's not really a name for it :)
FROGGS ahh
jnthn The 'slow binder' is about signature binding.
.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
.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.
yoleaux jnthn: I'll pass your message to japhb.
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.
FROGGS timotimo++ # you even added a proper breadcrumb to the reports :o)
FROGGS is much happy
FROGGS is also happy that nwc10++ did a smoke run on raspberry 08:49
08:49 salv0 joined 08:51 pecastro left
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␤»
jnthn m: my int $a = 1; my num $b = 1.2e0; ($a, $b) = 4, 4; say $a; say $b; # I hope this doesn't
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␤␤»
jnthn Goody. 08:52
nwc10 jnthn++ # more good stuff 08:53
FROGGS: that was some months ago
jnthn I think somebody else here mentioned they built r-m on a new raspberry recently 08:54
FROGGS nwc10: isnt that you? testers.p6c.org/reports/15598.html
nwc10 no, that isn't me. that's someone else being awesome 08:55
FROGGS ahh, another nick then :D
nickl++
nwc10 anyway, it's good to know that (a) it still works (at all) (b) it works on ARM v7 08:56
FROGGS aye
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
)
not all the world is a VAX.
08:57 Ven joined
nwc10 (shame that Alpha died, as Alpha was so not a VAX, in one sense at least) 08:57
FROGGS I remember having trouble getting the build flags right to build libSDL on alpha... 08:58
jnthn Is ARM v7 LE or BE? 09:00
Uh, as config'd on an RP, I guess I should specify...
nwc10 IIRC "switchable".
LE 09:01
pretty much every ARM board is built LE
jnthn Right, the "switchable" is why I realized I'd been under-specific :)
OK, so doesn't tell us about our BE state, just our ARM state.
nwc10 there's a LE PowerPC port of Linux now from IBM, IIRC
09:03 fhelmberger joined 09:05 cschwenz joined 09:07 Hor|zon joined 09:08 larion joined 09:09 virtualsue left
FROGGS huh, nice: 09:11
java.lang.NullPointerException
in compose_repr (gen/jvm/Metamodel.nqp:1440)
(in OpenSSL)
09:13 Kristien joined
Kristien hi 09:13
Ven o/ 09:15
Kristien I had this wonderful idea. 09:20
raydiak \o/ resolved my precomp issue and ended up with better encapsulation anyway...g'night #perl6 09:23
09:24 kjs_ joined
moritz good night raydiak++ 09:24
09:24 dakkar joined
Kristien translating goto to CPS is difficult 09:27
jumping into continuations :'(
09:28 jack_rabbit left 09:33 yeahnoob left 09:35 espadrine left 09:37 donaldh joined
jnthn Kristien: Using CPS as an intermediate program representation? 09:37
Kristien No, for the generated code
goto is in the intermediate representation 09:38
jnthn What're you generating?
Kristien JS XD
jnthn :) 09:39
Kristien I'm sick of the lack of stackful coroutines, so I simulate them using CPS for every function call.
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:42
Kristien :{ 09:44
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
Kristien noo not comefrom :v 09:49
FROGGS "getlexref_i: lexical is not an int" :o(
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
jnthn FROGGS: Urgh, I thought I fixed that one yesterday...
Kristien not for any other codegen I might want
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
dalek kudo/nom: 92404c3 | TimToady++ | src/ (5 files):
keywords now require whitespace (unless shadowed)

Now we parse keywords more like STD, requiring whitespace. When we parse what might be a keyword, if there's whitespace after, it's always taken as a keyword. If not, if the term has been defined elsewhere, we take that other definition. Otherwise we carp about missing whitespace after the keyword.
   my \if = 42; say (if) if if; # now says 42
09:50
Kristien yeah my IR is SSA
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 darutoko- left
jnthn TimToady++ 09:51
Kristien I could generate a JS function for each basic block
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␤»
dalek ast: c2b1d56 | TimToady++ | S (2 files):
adjust tests for required keyword spacing
09:52 darutoko- joined
jnthn TimToady: Does it fix ^^, ooc? 09:52
FROGGS TimToady++
TimToady probably not 09:53
09:53 darutoko left
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
Kristien you basically transform comefroms into labels and labels into gotos
jnthn TimToady: Hm, maybe it gets this one though: 09:55
m: sub not-foo { "2" }; say not-foo();
camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/92PJhPsNkk␤Undeclared routine:␤ foo used at line 1␤␤»
jnthn m: class class {}; say class.new.perl
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␤»
jnthn That one too perhaps :)
TimToady have a fix for not/so/temp/let
jnthn (These are all RTs)
Kristien comefrom is almost like an NTM! 09:56
09:59 bjz left, bjz joined 10:00 sqirrel joined
TimToady doesn't fix class class yet, but only because of a bug in my fix :) 10:00
testing
my fix for not works
jnthn
.oO( "does not work?" )
10:03
10:03 Kristien left
TimToady except it now disallows not() 10:06
10:06 virtualsue joined 10:07 Ven left
jnthn That's not so good... 10:07
TimToady obviously named prefixes need a slightly different approach 10:09
10:12 Ven joined
dalek kudo/nom: 9ddab5e | TimToady++ | src/Perl6/Grammar.nqp:
require ws for package declarators

also fix not/so/temp/let to check for hyphens and =>
10:12
kudo/nom: 0143b75 | TimToady++ | src/Perl6/Grammar.nqp:
named prefixes should allow parens
TimToady I think that fixes all of those
though arguably not() should really be a function, not a prefix on a unary expression that happens to start with ( 10:13
jnthn yay 10:15
More bugs nailed :)
TimToady also, core/asyncops was probably misparsing last CHECK; 10:17
might possibly have contributed to the instability
dunno what last Nil does... 10:18
jnthn Me either!
TimToady though I wouldn't think it would flap
but it might've done unexpected flow control 10:19
or lack thereof
10:20 yeahnoob joined, virtualsue left
TimToady well, passes all tests it passed before, so I think I'm gonna think about going to bed one of these hours 10:20
jnthn :) 10:21
TimToady there might be some tests can be unfudged now, but I'll let sumwunels do that
jnthn ++sumwunels 10:22
Rest well o/
10:28 virtualsue joined 10:31 espadrine joined 10:32 pecastro joined 10:34 xinming joined 10:36 perlh left
ab5tract o/ #perl6 10:52
FROGGS hi ab5tract
ab5tract i was reading over last week's announcement
FROGGS, is there a reason why the new op is called nativesizeof ? 10:53
FROGGS ab5tract: yes
ab5tract to me this is dangerously approaching PHP levels of naming inconsistency
FROGGS ab5tract: it is about native types and it gives you its sizeof
ab5tract: but we have nativecast, no?
ab5tract yeah, and i've grumbled about that one too :)
FROGGS :o) 10:54
psch \o
ab5tract i think we should be really careful with this
FROGGS problem is that sizeof() on its own might give the wrong impression what it does...
jnthn What's inconsistent?
ab5tract native-size-of
jnthn Ah
ab5tract jnthn: we don't "smash case" any other ops
jnthn True
FROGGS ahh :o)
yeah
that makes sense
jnthn Yeah, that's a fair point
ab5tract and we should s/\_/\-/g
for all the other internals as well (imo) 10:55
nativecast is another exception to the smash casing
FROGGS except for all caps
ab5tract FROGGS: ineed
*indeed
FROGGS does that mean that the 'is nativeconv' trait should be called 'is native-conv' ? 10:56
ab5tract it would be like mixing metric and royal measurements in the first intergalactic space cruiser ;) 10:57
FROGGS: from my point of view, yes.
dalek ast: e30392a | peschwa++ | S06-signature/positional-placeholders.t:
Unfudge passing test.
ast: cb31b77 | peschwa++ | S14-roles/anonymous.t:
Unfudge another passing test.
10:58 Kristien joined
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
jnthn native-sizeof is tempting in that sense :P
ab5tract but i'd actually argue the opposite, especially since it is shipped with rakudo now
FROGGS jnthn: aye
ab5tract jnthn: indeed, native-sizeof would definitely work for me
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
Well, that's the most likely thing
dalek c: b3797bb | (Matthias Krull)++ | htmlify.p6:
replace all occurrences of :: when generating path from class name
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
this gives a NPE for OpenSSL
nwc10: :P
nwc10 as in, the time to rename stuff is now.
psch huh, it's only int that fails the alias binding in the test
nwc10 Or rue the poor name for eterinity 11:02
FROGGS nwc10: yes, rename (alias), deprecate, remove
11:03 spider-mario joined 11:05 Kristien left
jnthn did try to discourage adding kebab-case things anywhere in core, so as to keep us consistently with _ 11:06
But, it seems kebabs are just too tempting
FROGGS aye
jnthn So I guess we should look at going with - everywhere instead...
11:06 chenryn left
Ven PLEASE_DONT_USE_KEBABCASE 11:06
FROGGS PLEASE_DON'T_USE_KEBABCASE
Ven *g* 11:07
FROGGS :o)
nwc10 PLEASE_DON::T
oh, wait, IIRC in Perl 6 one can use ' ?
jnthn Yes :P
FROGGS m: constant PLEASE_DON'T_USE_KEBABCASE = 42
camelia ( no output )
jnthn It doesn't mean :: :)
dalek ecs: 50becca | TimToady++ | S02-bits.pod:
doc design of new keyword override rules
11:08
FROGGS sad that the times when we specced something are over :o) 11:11
now we spec test and doc design
jnthn: I'd also deprecate OpaquePointer while I (or somebody else++) deprecates native\w+, okay? 11:14
jnthn I'm not sad; tests are much more precise :) 11:15
FROGGS: OpaquePointer becomes...? 11:16
Just Pointer?
FROGGS Pinter
Pointer*
aye
jnthn mmmm....pints!
FROGGS :P
and a Pointer is in fact a Pointer[void]
jnthn *nod
*
OK, I'm fine with that.
FROGGS m: use NativeCall; say Pointer.of
camelia rakudo-moar 0143b7: OUTPUT«(void)␤»
FROGGS looks nice :o)
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␤␤»
jnthn m: use NativeCall; say void.REPR
camelia rakudo-moar 0143b7: OUTPUT«CPointer␤»
FROGGS it has to be something...
jnthn m: void.new
camelia rakudo-moar 0143b7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wMVcGh9jFE␤Undeclared routine:␤ void used at line 1␤␤»
jnthn gah!
FROGGS hehe
jnthn m: use NativeCall; void.new
camelia ( no output )
jnthn Does that make sense? :)
Well, there's also the Uninstatiable REPR
Oh wait 11:18
FROGGS hmmm, I'd have to test if we can use that at all
jnthn Yeah
I mean
Pointer[void] is obviously a CPointer
But void itself...
- token terminator:sym<if> { 'if' <.end_keyword> }
+ token terminator:sym<if> { 'if' <.kok> } 11:19
...kok?
Oh..."keyword ok"
TimToady m: class class {}; say class.new.perl 11:20
camelia rakudo-moar 0143b7: OUTPUT«class.new()␤»
TimToady m: sub not-foo { "2" }; say not-foo();
camelia rakudo-moar 0143b7: OUTPUT«2␤»
TimToady m: my %h = not => 42; say %h
camelia rakudo-moar 0143b7: OUTPUT«not => 42␤»
TimToady there you go
dalek kudo/nom: a164f30 | FROGGS++ | lib/NativeCall.pm:
make void of repr Uninstantiable

So one cannot create a void instance and cannot dereference a Pointer[void]
11:23
FROGGS jnthn++
TimToady m: my \m = 42; say "xxxyyyzzz" ~~ m:3nd/.../
camelia rakudo-moar 0143b7: OUTPUT«「zzz」␤»
TimToady &
FROGGS awesome!
jnthn 3nd :D 11:25
TimToady++
I'll write some tests and close some RTs if nobody beats me to it
(Not likely to have tuits until evening, though)
11:28 thilp left
donaldh Has anyone used NativeCall for mmap ? 11:28
FROGGS donaldh: not yet 11:29
donaldh I'm not sure our file ops are up to the task
11:29 thilp joined
donaldh So I'd end up nativecalling open as well 11:29
Correct me if I'm wrong but we only support read-only, write-only-truncate and write-only-append 11:30
But to successfully mmap /dev/mem I'd need open('/dev/mem', :rw) 11:31
11:45 chenryn joined 11:57 dolmen joined 12:06 haroldwu left
ab5tract "kok" <--- here's another potential example of brevity-without-purpose 12:10
which is something i also see throughout core, in addition to the smash casing thing 12:11
12:11 laouji_ joined
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:12
and in fact using short-name versions can be seen as unnecessarily burdening otherwise very short and clear code 12:13
at least, that's been my experience so far :) 12:15
12:16 laouji_ left
jnthn ab5tract: If you pick a good single-word name for something, you don't need to whatever case the name at all :) 12:17
ab5tract jnthn: that's a bit beside my point, which is that brevity can be the enemy of good naming :) 12:20
especially in a kebab's-everywhere-able language like perl 6 :D
12:24 sqirrel left
ab5tract to be fair, the most common place i've seen this problem lurking is in the IO stuff 12:24
dalek pan style="color: #395be5">perl6-examples: af480e6 | paultcochrane++ | lib/Pod/Convenience.pm6:
Add pod-code() sub to return a pod code block
pan style="color: #395be5">perl6-examples: 7339333 | paultcochrane++ | htmlify.pl:
Insert code if no pod is found in file
ab5tract which isn't quite finalized yet anyway
12:26 kjs_ left 12:34 skids left, chenryn left 12:36 xinming left 12:38 xinming joined 12:39 Kristien joined 12:44 anaeem1_ left 12:48 sqirrel joined 12:49 laouji left, larion left 12:50 larion joined 12:54 alpha- joined, kjs_ joined, gcole joined 13:04 xinming left, rurban left 13:06 xinming joined 13:07 cognominal joined 13:09 lizmat joined 13:10 sqirrel left 13:13 Kristien left 13:20 Humbedooh left 13:28 Humbedooh joined 13:29 cognominal left 13:31 rurban joined 13:32 haroldwu joined 13:37 cognominal joined 13:43 cognominal left 13:47 anaeem1 joined 13:50 anaeem1 left 13:52 anaeem1 joined 13:54 gfldex joined 13:57 haroldwu left, haroldwu joined 13:58 yves joined
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
instead, it segfaults inside the jvm /o\
|Tux| FROGSS, Slang::Tuxic barfs on «while ($i < $last) {»
FROGGS hehe
|Tux|: well, yes of course
that is what you have to deal with
it does not treat keywords specially 13:59
|Tux| adjusts mind again
keyswords are to much set in concrete in my way of programming
FROGGS it is hard to get that one right, and I can not put much work into it right now :/
psch curiously the SIGSEGV only happens through make $testfile, while running the test in isolation does produce the same exception... 14:00
FROGGS NQP_VERBOSE_EXCEPTIONS=1 and --ll-exception might help here 14:01
14:02 anaeem1 left, anaeem1 joined 14:03 xfix joined
jnthn At least if barfing on that makes you quickly notice supersitious parens around conditions... :) 14:04
psch: 1.7 + invokedynamic = easy SEGV, though less so towards the later versions in the series...
psch jnthn: but 1.8 SEGVs, 1.7 doesn't 14:06
jnthn psch: Oh...wtf
:/
VM impl considered hard.
psch 1.7 consistently throws the exception "Expected a native int..."
14:07 anaeem1 left
colomon www.johndcook.com/blog/2015/03/01/graphemes/ # think we need a p6 followup to this… 14:12
jnthn colomon: Maybe once I'm done implementing NFG in Moar... ;) 14:13
nwc10 JVM + SEGV == CVE? 14:25
moritz JVM + SEGV == Business as usual, if you're implementing compilers :-) 14:26
jnthn nwc10: Not every SEGV is a security vuln. 14:27
donaldh CVE?
moritz common vulnerability and exposure project
the folks that assign IDs to every security vulnerability
14:32 telex left, laouji joined 14:34 telex joined 14:40 kaare_ left
|Tux| gist.github.com/Tux/983cdf2c40c674277d0e <= is the fact that the first test FAILs a bug or not? 14:44
masak not. 14:45
or, hm.
yeah, not. I think.
itemified parcel is not deeply equal to array.
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 :)
masak yeah, I have never seen that before.
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
Ven I think they shouldn't be equal 14:48
if they're considered equal, then I should be able to get the same behavior from calling functions on either
dalek pan style="color: #395be5">perl6-examples: e0bc6c6 | paultcochrane++ | htmlify.pl:
Sort files within a category

Now the list of files on the index pages are sorted.
14:49
pan style="color: #395be5">perl6-examples: 5715140 | paultcochrane++ | htmlify.pl:
Append link to source on GitHub
14:53 rmgk_ joined, rmgk is now known as Guest3814, Guest3814 left, rmgk_ is now known as rmgk 14:54 molaf joined 14:57 laouji left 14:59 muraiki joined
masak sometimes wishes that the Github interface had a "merge, but fast-forward" button 15:01
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..
donaldh yikes t/spec/S02-types/native.rakudo.jvm works when run with perl6-debug-j 15:07
nwc10 masak: oh $deity yes. github's ability to make zillions of needless trivial merges really frustrates me 15:10
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;␤»
Ven m: my @a = 1, 10, 100; my @b = 2, 20, 200; my @c = 3, 30, 300; say ([Z+] @a, @b, @c).perl;
camelia rakudo-moar a164f3: OUTPUT«(6, 60, 600).list␤»
15:15 sqirrel joined 15:21 |Tux| left, |Tux| joined
[Coke] used to hate merge commits, but is leaning towards seeing them as a way to track process as well as code. 15:22
15:24 dolmen left 15:27 yeahnoob left
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…»
Ven m: sub map(:(::T -> T) &fn, T @list --> T @list) { () }
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:␤ …»
Ven m: sub map(&fn :(::T -> T), T @list --> T @list) { () }
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
Ven i guess subsigs nyi : 15:27
jnthn It's spelt --> 15:28
But type captures certainly aren't implemented to do what you're after there...
Ven isn't --> what I have? 15:33
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 '-->'
Ven oh!
m: sub map(&fn :(::T --> T), T @list --> T @list) { () }
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) { () }␤»
Ven alright, thanks!
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 15:38 mr-foobar joined
hoelzro o/ #perl6 15:44
Ven jnthn: could that be made to work "maybe at some point"?
or is that unworkable 15:45
jnthn Ven: Well, that latter one has to be an error 'cus it re-defines T 15:46
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.
Ven that's be *really amazing* :-)
jnthn Though a bit fiddly
jnthn will ponder it a bit in his copious free time :)
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:48
15:50 Rounin left 15:52 tinyblak joined 15:57 laouji joined, larion left
Ven jnthn++ # considering my crazy things :) 15:58
16:01 laouji left 16:07 tinyblak left, tinyblak joined
dalek c: f776ede | moritz++ | lib/Type/Mu.pod:
Mu: examples, explain methods a bit more
16:08
c: 425976f | moritz++ | lib/Type/Any.pod:
Any: examples
c: b6e4b3f | moritz++ | lib/Type/Cool.pod:
Any: a few examples
16:10 Ven left 16:12 tinyblak left
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:20
There's a couple of bits of awkwardness in that text. 16:21
16:22 [Sno] left
[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
[ptc] moritz: what do you think?
16:23 krunen joined 16:24 diana_olhovik left
dalek p: e942214 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java:
allow to cast from CArray/Cstruct to something else
16:27
p: a18c983 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CStruct.java:
deal with CStruct Foo as attr of CStruct Foo
moritz [ptc]: erm, I don't think I quite understand
[ptc]: what does it do? how do the pages look like that you want to link to?
[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>'
[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
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
moritz [ptc]: ah, now I undertand
*stand
[ptc] FROGGS: only if that's sensible
jnthn TimToady: That's always felt like a very ad-hoc mechanism to me... 16:30
TimToady: Is it, or...? :)
moritz [ptc]: +1 then, if you want to do the maintenance
[ptc] I've got something started and it looks ok (still quite rough though) and wondered if it's worth pursuing further
moritz: I'm updating all the examples so that they work with current rakudo
moritz: so yeah, I'm doing a bit of maintenance already 16:31
moritz: thought it might be a nice complement to the docs site
moritz [ptc]: aye, it might
16:31 kjs_ left
FROGGS Language | Types | Routines | Examples # I'd love to see that 16:32
16:32 gurrato joined
TimToady jnthn: enforcing constraints consistently on a grammatical category doesn't feel very ad hoc to me 16:32
16:33 kjs_ joined
gurrato Is this www.perl6.org/archive/rfc/197.html already implemented in Perl 6 ? 16:33
[ptc] FROGGS: I think something like that is doable :-)
FROGGS :o) 16:35
timotimo gurrato: no, i don't think this has made it into the design
gurrato timotimo, it's a pity that would have been useful
16:35 PerlJam left
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:35
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
jnthn I'm trying to figure out exactly what's wanting
:)
*what it's
16:36 PerlJam joined
jnthn I mean 16:36
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
timotimo ah
jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 5 }>/
camelia rakudo-moar a164f3: OUTPUT«「42」␤ 0 => 「42」␤»
gurrato woukd <?{ ... }> allow a condition?
timotimo yes
FROGGS m: say 42 ~~ / @( 1..100 ) /
jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 1 }>/
camelia rakudo-moar a164f3: OUTPUT«「42」␤»
rakudo-moar a164f3: OUTPUT«「2」␤ 0 => 「2」␤»
timotimo the proposal looks like it steals many short pieces of syntax for a very rarely used thing
jnthn m: say 'omg 2 42' ~~ /(\d+) <?{ 1 < $0 < 4 }>/ 16:38
camelia rakudo-moar a164f3: OUTPUT«「2」␤ 0 => 「2」␤»
jnthn etc.
So yeah, it seems quite easily do-able, just...not with such a concise syntax. :)
And that's probably the right thing.
gurrato nice 16:39
FROGGS m: say 42 ~~ / << @( 1..100 ) >> /
camelia rakudo-moar a164f3: OUTPUT«「42」␤»
FROGGS m: say 101 ~~ / << @( 1..100 ) >> /
camelia rakudo-moar a164f3: OUTPUT«Nil␤»
jnthn Note that "if 1 <= $x <= 100 { }" also works nicely enough if you're not in a parsing context too
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
jnthn FROGGS: Cute but darn slow :P
timotimo gurrato: "huffman coding" can more or less be summarized as "things that are used very often are easy to reach"
as in "common words are short" 16:40
FROGGS jnthn: I fast enough here :o)
16:40 kjs_ left
TimToady and if @() could determine that its context were static, could turn into a fast NFA/DFA 16:41
16:41 perl6_newbee joined
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
dalek href="https://perl6.org:">perl6.org: 82f1d1e | FROGGS++ | source/compilers/index.html:
the text about nqp ... a word
16:43
jnthn A trie might be at least as good as DFA here too
16:44 zakharyas left 16:45 FROGGS left 16:46 abraxxa left, abraxxa joined 16:47 donaldh left
dalek line-Python: 280919c | (Stefan Seifert)++ | / (3 files):
Remove dependency on NativeCall - it's in core now.
16:48
japhb Thanks, nine_++
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.
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...
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.
08:48Z <jnthn> japhb: the behavior change is what lets stuff like "($native-a, $native-b) = 1, 2" now work, fwiw. 16:49
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:50
16:51 rindolf left
jnthn japhb: Intentional in so far as "it's what NQP expects", yes 16:53
japhb: Also means that an eager split in Perl 6 gets back something that can go straight into a List.
dalek kudo/nom: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm:
Fix IO::Path.resolve to work with native refs
japhb jnthn: Ah, OK 16:54
jnthn Cute sha-1!
japhb heh
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
if <.kok> isn't the next thing, it breaks badly
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 !!
TimToady there you go
jnthn TimToady: It's .pos rather than .from that updates
16:55 pochi_ is now known as pochi
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)?
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
TimToady s/update/start the subrule out with a new .from/ 16:57
16:57 cognominal joined, cognominal left
jnthn japhb: Your code before will probably have produced a Parcel around each of the nqp::lists before calculating the multi-dispatch 16:57
japhb: Meaning $a + $b where the two are NQP lists resulting in a couple of extra allocations. 16:58
japhb: If doing stuff with nqp:: data structures, I suggest staying with nqp:: operations on them. 16:59
It's a lot more predictable.
TimToady so what's the difference between a str and a Str, structurewise?
japhb Great, thanks for the explanation jnthn++!
jnthn TimToady: str = a VM-level NFG string, with some implementation-defined representation 17:00
17:00 cschwenz left
jnthn TimToady: Str = a P6opaque referencing a str, which you can use "but" on to mix in to, call methods on, etc. 17:00
moritz Str: boxed object into which you can mix roles as you please
jnthn Anything that's going to do intensive amounts of work can save some indirection using str. The regex engine does exactly that. 17:01
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:04
17:05 dakkar left
japhb Eggselent 17:05
17:10 H2O1 joined, diana_olhovik joined 17:11 rindolf joined 17:12 [Sno] joined 17:13 cognominal joined 17:15 cognominal left
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
lizmat good *, #perl6! 17:25
lizmat just pulled, configged, built and spectested
and found spectest takes quite a bit longer 17:26
and startup has gone up from .205 to .220 :-(
lizmat will now backlog
17:27 virtualsue left 17:28 cognominal joined
timotimo maybe that'll improve again when we get better code-gen for native refs back? 17:29
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 sqirrel left
dalek Heuristic branch merge: pushed 109 commits to rakudo/newio by lizmat 17:30
kudo/newio: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm:
Fix IO::Path.resolve to work with native refs
17:31
kudo/newio: a84c327 | lizmat++ | src/core/IO/Path.pm:
Merge branch 'nom' into newio
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...
timotimo OK
bcode !j 17:33
err, wrong channel.
timotimo today i'll run benchmarks again if you're interested, jnthn
jnthn cognominal: It's not even a Perl 6 keyword, it's a rule in the grammar. Nothing user-land.
17:33 laouji joined
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
lizmat TimToady: startup time for me is "perl6 -e 1'
jnthn timotimo: Yes, please do...and maybe plot it against the previous result
dalek rl6-roast-data: 4fca25a | coke++ | / (9 files):
today (automated commit)
17:34
lizmat hardly much grammar action there?
jnthn timotimo: (From pre-merge nom)
bcode goes back into hiding
jnthn timotimo: I did go through each of the regressions and Did Something. :)
[Coke] integration/weird-errors.t is failing on moar, jit or not. 17:35
S17-scheduler/every.t is failing on moar-jit and jvm.
S02-types/native.rakudo.jvm is failing on jvm
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 laouji left
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
17:38 Kristien joined
Kristien hi 17:39
masak bcode: yes, quite.
17:39 larion joined
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
camelia rakudo-moar ddddd0: OUTPUT«42␤»
lizmat m: sub a(int \b) { b = 42 }; a my int $b; say $b # native int in sig doesn't :-(
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␤»
lizmat jnthn: rakudobug ?
jnthn lizmat: Yes, grondilu already reported that one
lizmat: It's that the declarator doesn't evaluate to the ref 17:43
lizmat ah ok, didn't backlog there yet
jnthn m: sub a(int \b) { b = 42 }; my int $b; a $b; say $b
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␤»
jnthn Hm, and also that \ doesn't allow writes, apparently...
lizmat yeah, that doesn't work either... :-)
dalek line-Perl5: a7a5d66 | (Stefan Seifert)++ | p5helper.c:
No need to copy the name of the called method

NativeCall does not free() the string anyway.
jnthn Hmm
Please just write int $b :P 17:44
I'm not quite sure how to deal with int \b
int $b is rw # actually an object register
lizmat m: sub a(int $b is rw) { $b = 42 }; a my int $b; say $b # does this work?
camelia rakudo-moar ddddd0: OUTPUT«42␤»
17:45 gurrato left
jnthn int $b # actually an int register 17:45
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
So I'm inclined to simply forbid \ forms on native params.
lizmat fine by me if it dies at compile time :-) 17:46
17:46 xinming left
[Coke] +1 17:46
17:49 xinming joined
lizmat jnthn: is (str $a is rw) supposed to be faster than (Str $a is rw) ? 17:50
17:51 grettir joined
jnthn lizmat: uh...that's really hard to answer in isolation 17:52
lizmat my str $s = "foo"; sub a(str $b is rw) { $b = $s }; for ^1000000 { a my str $c } 17:53
real0m0.879s
my Str $s = "foo"; sub a(Str $b is rw) { $b = $s }; for ^1000000 { a my Str $c }
real0m0.740s
17:54 xinming left 17:55 xinming joined
jnthn I'd epxect those to come out roughly the same 17:55
It's possible after spesh learns more on native refs you'll find the first slightly edges the second 17:56
But they're approximately the same amount of work
oh, actually.. 17:57
There's a way the str one might come out quite a lot faster once ref eliding opts are in.
But that's not likely given that a is not inlinable. 17:58
(By spesh)
lizmat jnthn: roughly the same, with native always slower ?
jnthn Since it closes over an outer lexical.
lizmat: I think for the foreseeable future, you'll find they are very close, native perhaps a little faster at some point
lizmat fwiw, without the outer lexical, it's the same
moritz I got benchmark results in the same range as lizmat++ 17:59
1.25 +- 0.02 (str is rw) vs. 1.06 +- 0.01 (Str is rw)
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
With it, it's harder to say.
But native won't be notably faster in that case any time soon. 18:01
lizmat ok 18:02
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:03
(Note that the JVM is already well past this level of sophistication.) 18:04
dalek kudo/nom: f0359a1 | TimToady++ | src/Perl6/Grammar.nqp:
Don't do name lookup when there's whitespace, duh
18:07
18:08 Hor|zon left
lizmat what was the profile option again here with camelia? 18:08
m-prof: 1
.help 18:09
yoleaux lizmat: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide.
lizmat jnthn: the str case has only 50% jitted frames, as opposed to the Str case having 100% jitted frames
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%
jnthn lizmat: Also tells me there's something needing JITting
lizmat those 50% were actually deopts 18:11
Of 1999967 specialized or JIT-compiled frames, there were 999983 deoptimizations (that's 50% of all optimized frames).
for the str case
eh... no, scratch that 18:12
[Coke] prof-m: say 3;
camelia prof-m f0359a: OUTPUT«3␤»
.. Prof: p.p6c.org/502816
timotimo huh? that link seems dead?
[Coke] that url: 404
lizmat backlogs some more 18:13
18:14 fhelmberger left
jnthn lizmat: Wowza, that also wants a look. Thanks. 18:16
lizmat the 50% deopts were for the Str case 18:17
jnthn Ah
That still wants a look ;)
lizmat prof-m: sub a(str $b is rw) { $b = "foo" }; for ^1000000 { a my str $c }
camelia ( no output )
.. Prof: p.p6c.org/502953
jnthn Well, it seems I succeeded at cooking dinner, so... &
lizmat alas, page not there :-(
smakelijk eten! 18:18
18:18 FROGGS joined 18:23 pecastro left
lizmat TimToady: your last .kok patch seems to largely remove the extra startup time 18:27
TimToady++ :-) 18:28
TimToady I dunno why it would though, since perl6 -e '1' does almost no parsing
lizmat agree, but empirically it seems to have worked
lizmat tries to profile
lizmat just notices that precomping NativeCall is noisy 18:30
Useless declaration of a has-scoped method in multi (did you mean 'my method name'?)
TimToady yes, I noticed that yesterday and wondered if kok had flushed it out somehow 18:31
the irritating thing is that it gives no line number
lizmat --ll-exception doesn't give any extra info 18:34
timotimo FROGGS: what's keeping us from making testers.p6c.org also available as testers.perl6.org? 18:36
dalek ast: 89b30a8 | TimToady++ | S17-procasync/basic.t:
conjecture that test is no longer flapping
avuserow timotimo: IIRC you were playing with ipython at some point in the past, have you seen ipython.org/ipython-doc/3/whatsnew/version3.html and github.com/jupyter/tmpnb ? 18:37
timotimo haven't looked into it yet, but i did see there were big changes
avuserow the tmpnb project could potentially help support a (Moar-based) try.perl6.org 18:39
timotimo yes!
divide-and-conquer 1032/s 163/s 18:41
1.0x 6.3x
dalek kudo/nom: 637c6bb | TimToady++ | src/Perl6/Actions.nqp:
replace toy method warning with real worry
timotimo this is native-ref-backed rakudo-moar being 6x slower than pre-native-ref rakudo-moar 18:42
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)
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
TimToady now gets: Useless declaration of a has-scoped method in multi (did you mean 'my method name'?) 18:44
at lib/NativeCall.pm:115
------> ⏏method deref(::?CLASS:D \ptr:) { nativec
which is weird
timotimo cool, thanks FROGGS
FROGGS I did that on Friday... we'll see when this happens 18:45
18:46 n00w0t joined
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.
raydiak \o morning #perl6
nine_ Inline::Python uses .can to get a method object and call that later on while Inline::Perl5 uses $object."$name"()
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
FROGGS ugexe: the problem is/was that $*DISTRO.name showed what $*KERNEL.name is now... so reports were recorded incorrectly 18:53
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
raydiak s/core classes/any class without the fallback/
n00w0t why should I teach perl6?
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
FROGGS ugexe: can you provide the url to the report?
ugexe testers.p6c.org/reports/15598.html
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
ugexe i.imgur.com/btW587z.jpg 18:56
FROGGS timotimo: yes, of course
timotimo phew
FROGGS timotimo: there will never be any private stuff on it :o)
timotimo n00w0t: are you going to teach perl6 before learning perl6? :)
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:58 ash_gti left
timotimo ugexe: reports 14200, 14256 and 14190 have raspbian set as the osname in the database 18:59
18:59 perl6_newbee left 19:00 pierrot joined
timotimo ugexe: testers.p6c.org/dist/D/Digest/Lucie...ondin.html 19:00
ugexe but i mean the OS health column doesnt show any report success/failure for raspbian
FROGGS I updated the osname field of three reports now
ugexe: first, it collects all osnames, not only for the last thousand reports 19:01
ugexe: and then it fetches said thousand reports to make up the stats and list
19:02 n00w0t left
FROGGS timotimo: btw, how do you like that flame icon? :D 19:02
timotimo i like it!
FROGGS I enjoy it...
timotimo FROGGS: would you rebuild the recent reports page please? :) 19:03
wait, i still have a shell open where i am you
btw, do you regularly update the database dump?
FROGGS no, that dump is when I moved everything from hack 19:04
timotimo OK
FROGGS but I will create (daily?) dumps
timotimo much appreciated
19:04 Hor|zon joined
timotimo i should have developed this stuff on my local machine right from the start 19:04
or maybe on hack
FROGGS and copy them to my machine and perhaps also make them available for download
timotimo rather than have a million commits that fix silly mistakes ...
FROGGS yeah 19:05
:o)
timotimo hm
have i still done something wrong
19:05 gcole_ joined
FROGGS raspbian is gone now: testers.p6c.org/recent.html 19:06
timotimo but why are the others still there? 19:07
is my query wrong?
oh
i didn't sort the reports by id :)
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:08 Hor|zon left
FROGGS timotimo: well, I'd prefer an exclusive lock on a file but... 19:09
19:09 gcole left
timotimo yeah 19:09
19:09 adu joined
timotimo why are there still 5 osnames when the db actually only returns 2? 19:09
not yet uploaded? 19:10
there we go
FROGGS rsync also only runs every five minutes
we need more smokers :P 19:11
dalek kudo/nom: 35f0c9c | FROGGS++ | tools/build/NQP_REVISION:
bump nqp with jvm NativeCall/CStruct fixes
19:12
[Coke] docs/architecture.html is still parroty. 19:14
FROGGS the number of uploaded fosdem videos seems to be a constant :o( 19:15
19:15 myp left
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
rsyncd might be better there
but that's out of my expertise
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 mohij left
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
should i reinstate that? 19:18
FROGGS no, not yet
I think I want to have it show stats about *all* reports instead of the last thousand anyway...
timotimo ah 19:19
FROGGS but collapsing dev releases into a single line, without the ability to show more
19:20 myp joined
FROGGS though that's not quite what /recent is about 19:20
that index page is kinda nice: cpantesters.org/ 19:21
flussence m: sub foo(Int $bar = 5 where * ~~ 0..11) {...} # unusually *un*helpful suggestion here 19:22
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) {..…»
TimToady heh, ..… 19:24
Kristien booo 19:25
TimToady bo… 19:27
colomon huh, the smoker suddenly started reporting lots of “prerequisite failed” statuses today. :\ 19:29
FROGGS ewww
TimToady possibly a bunch of modules not using whitespace after keywords?
or just one on which the others depend? 19:30
FROGGS " Dependency NativeCall is not present in the module ecosystem "
dalek p: af2e221 | TimToady++ | src/QRegex/Cursor.nqp:
add PRECURSOR method

This generates a cursor pointing to $!from for better error messages on constructs that would otherwise point confusingly to the next statement/declaration.
TimToady oh, well, it's not in the module ecosystem
colomon oh, yeah, that will do it all right. 19:31
darn, I was thinking someone had fixed panda / emmentaler so that prereq test failures were now reported as prereq failures. 19:32
smoke.perl6.org/report 19:34
19:37 rurban left
timotimo t.h8.lv/p6bench/2015-03-02-pre_post...veref.html - orange is before nativeref, blue is after 19:37
dalek kudo/nom: e2cd569 | TimToady++ | tools/build/NQP_REVISION:
bump nqp rev
19:38
kudo/nom: a01d502 | TimToady++ | src/Perl6/Actions.nqp:
don't locate declarator errors on next statement
FROGGS I just opened twelve pull requests :o) 19:40
timotimo for what?
TimToady ENONATIVECALL
FROGGS timotimo: stripping NativeCall from META.infos
timotimo ah
nice :)
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 :)
FROGGS *g* 19:42
19:43 espadrine left, kaare_ joined
timotimo i'm feeling a bit low-powered 19:49
i'm working on the weekly right now, but somehow i don't find a lot of good stuff
19:50 ugexe left
dalek ast: b76efe4 | usev6++ | S12-class/basic.t:
Unfudge test for RT #67784
19:53
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784
timotimo p6weekly.wordpress.com/?p=419&...4c0481835c - i need help/inspiration 19:56
19:57 raiph joined
skids timotimo: +pmichaud starting GLR soon 20:00
20:01 ugexe joined, jnthn left
FROGGS timotimo: I've send feedback 20:03
ugexe (perl6-j) smoke testing killed one of my servers during DateTime :)~
FROGGS timotimo: ahh, and perhaps mention testers.p6c.org 20:04
moritz timotimo: you might mention DBIish fixes for Postgresql
ugexe any way i can look into the cause? like if its the module or rakudo?
Kristien m: say ⌊3.14⌋
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 …»
Kristien no floor operator!
Mouq timotimo: docs work… examples.perl6.org… TimToady++'s work today/last night… 20:05
moritz timotimo: has doc.perl6.org/language/5to6 made an appearance on the weekly yet?
uhm, why doesn't doc.perl6.org/language/5to6 show a search box? 20:06
just in firefox; it's there in chromium
timotimo: also [ptc]++'s has done a lot for doc.perl6.org/type/IO 20:08
Mouq timotimo: Support for “quoting”, ‘quoting’, ‚quoting’ and „quoting”
And …
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⌋␤»
moritz timotimo: also, I did some basic documentation for sockets (no examples yet)
nine_ timotimo: rsync is very cheap if there's nothing to update
TimToady m: sub circumfix:<⌊ ⌋> { $_.floor }; say ⌊3.14⌋
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⌋␤»
TimToady m: sub circumfix:<⌊ ⌋> { $^a.floor }; say ⌊3.14⌋
camelia rakudo-moar 35f0c9: OUTPUT«3␤»
TimToady Kristien: easy enough to roll your own, I think 20:10
Kristien nice
TimToady it's not like your client is gonna turn 3.14.floor into ⌊3.14⌋ for you :)
Mouq timotimo: Improved JVM marshalling
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)
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 :/
(From me! bugfixers++) 20:12
TimToady m: sub foo() { $^a }␤sub bar() {}
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() {}␤»
bartolin Mouq: but you worked on the tickets, that's for sure!
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
timotimo moritz: do we know anything about memory management and leaks in DBIish? 20:15
20:16 ugexe_ joined
hoelzro timotimo: where does literal say that the new syntax stuff requires 7.4? 20:16
the way I read his article, it's that he used the new profiler in 7.4 to identify issues
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
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
20:17 ugexe left
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 ugexe_ is now known as ugexe
moritz timotimo: I try to use close/free native subs from the backend libs where available 20:17
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?
DrForr_ Correct.
FROGGS hoelzro: it uses a regex feature which is new in 7.4 20:19
DrForr_: can you rakudobug that please?
DrForr_ Yep, I'll trim that down.
dalek ast: 83da5c2 | usev6++ | S02-types/hash.t:
Add test for RT #123084
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123084
20:19 amaliapomian joined
Mouq timotimo: Updates to &is/&isn't semantics 20:20
*isnt
hoelzro FROGGS: did he mention that on hinrik.github.io/perl6.vim-gets-more-love/?
Mouq timotimo: Lack of any updates to ChangeLog in almost two weeks
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
ok, I missed that =)
dalek c: 5189f2e | moritz++ | lib/Type/IO/Socket/INET.pod:
IO::Socket::INET: echo server + client
20:22
timotimo hoelzro: he only noticed that after the blog post
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:23
20:27 darutoko- left, virtualsue joined 20:28 jnthn joined 20:31 sqirrel joined
FROGGS lol! thedailywtf.com/articles/polish-elections 20:32
20:34 felher left, gtodd joined
gtodd wow a never before seen by me error compiling perl6 :-) 20:34
20:34 felher joined
gtodd Useless declaration of a has-scoped method in multi (did you mean 'my method name'?) 20:35
at lib/NativeCall.pm:114
------> method ^name() { 'Pointer[' ~ ::TValue.^name ~
20:35 felher is now known as Guest66620
TimToady appears to be a bogus error caused by an internal problem of some sort 20:35
20:35 bjz left
TimToady yesterday it was pointing to the wrong line 20:36
gtodd :) 20:37
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
gtodd hehe
sorry
20:38 mohij joined, telex left
dalek ast: c3d0fa4 | usev6++ | S06-other/misc.t:
Add tests for RT #117901
20:39
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117901
gtodd yes ... to be fair it said something like "potential problem" ... but some kind of ansi-fication made it red!
Mouq gtodd: Still, thanks for pointing it out! :) It's definitely something that needs to be diagnosed
gtodd hey a silly "benchmark" I ran in december at 64 seconds is now only .... (drum roll) .... 20:40
53 seconds !
20:40 telex joined
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?
[Coke] You want dynamic vars. 20:41
TimToady [Coke]: not, not dynvars
[Coke] mohij: $*THINGEE
TimToady those don't work right for backtracking
[Coke] ok, ignore me.
TimToady not if you backtrack into a scope that you've exited as a block
DrForr_ rakudobug sent. 20:42
mohij [Coke]: Already tried that.
20:42 paulohrpinheiro joined
DrForr_ #123697 20:42
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123697
FROGGS DrForr_++
moritz help, my gdb doesn't seem to understand --args
what am I doing wrong? 20:43
20:43 paulohrpinheiro left
bartolin DrForr_: actually it seems to be #123967 :-) 20:43
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123967
[Coke] too old version that you have to use "run" from inside the gdb prompt?
FROGGS moritz: paste something?
20:43 AnxiousGarlic joined 20:44 AnxiousGarlic left
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 Kristien left, agentzh joined
moritz and it says 20:44
Type "apropos word" to search for commands related to "word"...
--execname=./perl6-m-gdb: No such file or directory.
20:44 agentzh left, agentzh joined
mohij I'll get a code sample together... 20:44
bartolin DrForr_++ 20:45
20:45 molaf left
timotimo moritz: do we know why camelia's prof-m target gives 404s on the links it spits out? 20:45
moritz timotimo: no
timotimo OK
were there interesting blog posts about perl6 over the last week? 20:46
aside from the vim highlighter one?
vendethiel hasn't seen any in the perl weekly
FROGGS moritz: gdb --args /home.../moar ....moarvm -e 'say 42'
moritz FROGGS: oh, the --args must come first?
FROGGS moritz: yes 20:47
moritz FROGGS: takk
FROGGS it tells gdb that the rest also includes args to the executable
[Coke] timotimo: no perl in GSOC this year.
moritz :(
timotimo oh damn :( 20:48
TimToady probably screwed over by a pythonista somewhere deep inside Google
timotimo that sounds unlikely 20:49
"no perl in gsoc" is information i'm free to share with the readers of my blog?
TimToady well, okay, it could be something other than malice... :)
nwc10 timotimo: blogs.perl.org/users/shadowcat_mdk/...-gsoc.html
20:50 mr-foobar left
timotimo thank you 20:51
;(
20:53 paulohrpinheiro joined, Hor|zon joined
agentzh TimToady: I've been playing with Perl 6 grammar lately. 20:53
TimToady: One big missing thing is better error reporting facilities IMHO :) 20:54
TimToady: Really missing Damian Conway's P::RD and R::G's error reporting support.
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.
timotimo p6weekly.wordpress.com/?p=419&...4ce30d646e - have another draft :) 20:55
moritz paulohrpinheiro: DBD::SQLite3 works
jnthn How hard is a darn wiki in 2015 :/
moritz paulohrpinheiro: though I'm sure there's also room for improvement
agentzh TimToady: I especially like Regexp::Grammars's @! variable while handling parse failures.
lizmat timotimo: I think it's either psch or peschwa, not pschw ? 20:56
timotimo oh
indeed
agentzh hi guys, how much slower is rakudo's rule engine as compared to perl 5's Parse::RecDescent and Regexp::Grammars?
moritz agentzh: no idea 20:57
timotimo good questions; we don't have a benchmark for that yet, do we?
agentzh I have a simple benchmark for these three.
timotimo Regexp::Grammars and Parse::RecDescent are not shipped with perl5, eh?
moritz agentzh: so what's your result?
agentzh I'm pasting my code to gist right now for your review.
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
agentzh I'm still new to these.
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
20:58 Hor|zon left
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
timotimo literal: ah, thanks
bartolin good night, #perl6 20:59
timotimo gnite bartolin
except
moritz \o bartolin
timotimo did you do something cool last week?
bartolin: then i can put you into the weekly :3
bartolin timotimo: you already did (I'm usev6 on github)
*g*
timotimo ah!
perfect 21:00
bartolin timotimo++ # weekly
moritz prof-m: say 'just testing'
camelia prof-m a01d50: OUTPUT«just testing␤»
.. Prof: p.p6c.org/504f6d
bartolin o/
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?
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
timotimo OK
moritz ugexe: you can't have circular dependencies between grammars or classes if they are in separate files
timotimo and got any clues where to look for finding out why a DBIish-using script is gobbling up memory infinitely?
[Coke] wonders why you'd construct the grammars in such a way as they depended on each other.
moritz ... unless you make them runtime dependencies 21:02
21:02 brrt joined
agentzh my benchmark files and results: gist.github.com/agentzh/c5108a959309f015c4f6 21:02
please have a look for me :)
moritz timotimo: well, currently DBDish::* don't really do much memory management
agentzh the results are pasted to the last file.
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.
like 70% speedup.
lizmat timotimo: japhb implemented IO::Path.resolve
agentzh with perl 5.18 and 5.16, P::RD is significantly slower than R::G. but 5.20, P::RD is consistently faster.
moritz timotimo: please let me know if my benchmarks are flawed or can be improved :) 21:04
it's just a simple infix arithmetic calculator.
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
moritz prof-m: say 'just testing...'
camelia prof-m a01d50: OUTPUT«just testing...␤»
.. Prof: p.p6c.org/5050b9
moritz ... fixed
agentzh timotimo: no hurry :) 21:06
I've also found that rakudo + moar uses 10x more memory than P::RD. 21:07
timotimo p6weekly.wordpress.com/ - publish'd 21:08
jnthn agentzh: Yes, though the "base memory" of Perl 6 is a *lot* higher than Perl 5
mohij TimToady: gist.github.com/patzim/361b80a01e3217ad9073
lizmat .tell japhb did you know I implemented nqp::readlink recently ?
yoleaux lizmat: I'll pass your message to japhb.
timotimo AFK
lizmat timotimo++
21:08 rindolf left
jnthn agentzh: So only so much of it is attributable to the grammar/parsing 21:08
21:09 sqirrel left
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.
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!
camelia ( no output )
.. Prof: p.p6c.org/5051be
agentzh jnthn: thanks!
21:10 Kristien joined
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
21:10 laouji joined
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
camelia ( no output )
.. Prof: p.p6c.org/5051fb
21:11 J-L joined
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
lizmat moritz++ 21:12
moritz J-L: it's for calling functions from libraries written in C
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
J-L So any functionality available in a GNU C compiler I can ultimately get via NativeCall? 21:14
Even on MS Windows platforms?
brrt that... depends...
on how you mean it :-)
but yeah, NativeCall basically does dynamic linking for perl6
21:14 xfix left
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:
elsif nqp::istype($x,EnumMap) and !nqp::iscont($x) {
for $x.list { self.STORE_AT_KEY(.key, .value) }
21:15 laouji left
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.)
paulohrpinheiro moritz: but if there improvements to do, it's good. Thanks! 21:16
skids damn. I was just about to suggest using Term::ReadKey via Inline::Perl5 21:17
moritz J-L: well, there can't be a standard way for everything in a programming language 21:18
J-L: that's why modules exist
21:18 kaare__ joined
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 :-)
i personally find interpreted languages are not such a great fit for distributing software anyway :-) 21:19
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 rl6-most-wanted: a70d0d1 | moritz++ | most-wanted/bindings.md:
Mention status of DBD modules, paulohrpinheiro++
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.
moritz J-L: have you tried things like fat packing?
brrt J-L - i must ask, what problem are you really trying to solve?
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?
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:22
21:22 kaare_ left
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:23
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.
mst system('stty -echo'); chomp(my $res = <STDIN>); system('stty echo');
which. um. yes. I know. but it works really nicely.
jnthn mst: ...on Windows? :P
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
J-L In fact, the Perl5 perldoc "perldoc -q keyboard" works great on Unix, but not on Strawberry Perl.
(Even though Strawberry Perl has the POSIX module, it lacks POSIX::Termios support, evidently.) 21:27
(By the way, "perldoc -q keyboard" gives: "How can I read a single character from a file? From the keyboard?")
brrt i'm wondering how in windows the terminal windows is controlled 21:28
Kristien my guess is "crappily" 21:29
dalek pan style="color: #395be5">perl6-examples: 3767647 | paultcochrane++ | TODO:
Add TODO file
brrt that is an unfair guess imho :-)
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:31 tmch left
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:32
[Coke] API? In my day we handrolled XML generation to emit excel file... oh, wait, I'm doing that still, today. carry on 21:33
brrt msdn.microsoft.com/nl-nl/library/w...s.85).aspx :-) 21:34
literal hoelzro: where is the source for the Perl 6 pygments highlighter?
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?
brrt i've once use perl-and-xslt to transform .docx to .html
hoelzro literal: bitbucket.org/birkenfeld/pygments-...ult#cl-209
[Coke] J-L: have you investigated bundling your modules with your app?
brrt msdn.microsoft.com/nl-nl/library/w...s.85).aspx :-) 21:35
[Coke] er, more specifically, your dependencies.
J-L skids: Let me see... hold on...
hoelzro granted, there might be some patches in Hg that aren't in a stable release
literal hoelzro: so it's just a Python class and you can do anything in it?
hoelzro literal: yup!
literal that's neat
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.
hoelzro they give you a good basic tool set, but don't limit you from doing crazy things
skids Are the Win32:: modules mentioned above available?
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
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)
dalek Heuristic branch merge: pushed 43 commits to roast/newio by lizmat 21:40
21:41 paulohrpinheiro left
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
skids: I can't vouch for ActiveState Perl, though.
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
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.
literal hoelzro: ah, I think I can come up with something
hoelzro I have a backlog of changes that have happened in the language since I wrote the lexer, but ENOTIME/ETOOLAZY
I could probably follow TimToady's suggestion of *not* highlighting builtin classes/functions
dalek kudo/nom: b85b85d | lizmat++ | src/core/ (2 files):
Cat-license EnumMap.STORE into Any.pairup()

Hope this is what TimToady meant, from the .pairup() speculation.
21:45
J-L skids: Hmmm... interesting. That might work. 21:46
21:46 raiph left, diana_olhovik left
agentzh is rakudo using the same regex engine as NQP? 21:47
is it expected that NQP can be much faster in my infix arithmetic expression calculator benchmarks?
jnthn agentzh: Yes, and if you're seeing a big difference there it probably means the thing making the difference is not the parsing.
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.
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'
("a" => 42, "b" => 65, "c" => 25, "d" => 99).list
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: github.com/openresty/stapxx#lj-lua-stacks & github.com/agentzh/perl-systemtap-...-sample-bt 21:51
jnthn: basically the tools use systemtap to sample scripting language level backtraces.
jnthn: they do not require changing the program nor restarting the process. 21:52
jnthn: the downside is that it's linux only while Mac OS X's dtrace is not strong enough on userland probing as systemtap.
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.
brrt i heard bsd's dtrace was the knees bees
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?
agentzh brrt: heh.
brrt J-L: yes
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
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 kudo/nom: 0b42fc4 | lizmat++ | src/core/Any.pm:
No need to first make a list and then pairs again
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.
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?
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?
timotimo i hear there's something new for perl5 that is a tiny bit like NativeCall 21:56
i forgot the name
brrt yes
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
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 rakudo.org/downloads/star/ (rakudo-star-2014.03.msi) doesn't have NativeCall. I was told it just recently got added last month.
timotimo colomon: you're running timeout.t again :)
dalek kudo/nom: cb7ded3 | TimToady++ | src/Perl6/ (2 files):
put cursor on correct decl for sig vs placeholder
timotimo 02-timeout.t
brrt it basically works by taking a dll (or so) files and matching dll symbols to perl6 symbols
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.
jnthn agentzh: How do they co-opt the script language to spit out a backtrace?
[Coke] J-L: nativecall has shipped with star for ages; it only just changed from a module to core.
21:58 Hor|zon left
skids J-L: try rakudo-star-2014.12.1-moar.msi 21:58
hoelzro literal: =( 21:59
well, thanks for testing that out
I'll see if I can fix that up
21:59 agentzh left
skids Anyway, drive time, laterz o/ 21:59
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
jnthn J-L: The virtual machine it runs on
J-L I don't have to uninstall the Rakudo Perl I already installed, do I? 22:01
I thought the virtual machine was Parrot, no? 22:02
brrt i don't think so.. what do you get with perl6 --version
timotimo you can just rm -rf the folder it's in
[Coke] J-L: there are multiple backends. Moar is the preferred one.
J-L perl6 --version gets me: This is perl6 version 2014.01 built on parrot 5.9.0 revision 0
literal hoelzro: a big part of it seems to be mishighlighting of '<', whether it's a quoted list or a hyperop, etc
timotimo haha, 2014.01 22:03
literal that is indeed tricky to get right
[Coke] J-L: that is super old and you must upgrade.
J-L timotimo: Well, that's the latest *.msi file at rakudo.org/downloads/star/ that doesn't end in parrot* or moar* 22:04
timotimo right
after that we finally got multiple backends
22:04 skids left
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.
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
[Coke] use rakudo.org/downloads/star/rakudo-st...1-moar.msi
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.
timotimo: Not counting *parrot.msi and *moar.msi, the latest *.msi file at rakudo.org/downloads/star/ is rakudo-star-2014.03.msi . 22:07
22:09 beastd joined
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 rakudo.org/how-to-get-rakudo/ ?
and a few words on it are in every announcement of rakudo star, too
22:10 sqirrel joined
timotimo can you point out what's lacking about that text? 22:11
FROGGS jnthn: I do not enjoy debugging a NPE for nqp-j about the URI module failure... 22:12
java.lang.NullPointerException 22:13
at org.perl6.nqp.runtime.IndyBootstrap.subcallstaticResolve_noa(IndyBootstrap.java:195)
jnthn FROGGS: :(
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"
FROGGS that's basically the information I have, and I cannot make any sense out of it...
jnthn FROGGS: I'm not sure *anybody* enjoys that...
FROGGS jnthn: the line number (195 here) changes when I add debugging code or checks "randomly"
22:14 raiph joined
jnthn FROGGS: OK, that *is* odd 22:14
FROGGS: Is the object its receiving to invoke null?
FROGGS line 195 is: if (invokee.st != null && invokee.st.ContainerSpec != null) {
and within the block it just does a decont
jnthn OK, that would NPE if invokee is null
FROGGS jnthn: but it seems not to be
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:16
FROGGS J-L: here is a getting-started and there are also examples: github.com/jnthn/zavolaj 22:17
brrt afk :-)
22:17 brrt left
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 22:21 virtualsue left, virtualsue_ is now known as virtualsue, [particle]1 joined
J-L Sweet! I got the example at github.com/jnthn/zavolaj/blob/mast...pi-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
22:22 [particle] left
FROGGS J-L: google and stackoverflow? or you look at existing P5 or python or whatever bindings... 22:22
J-L I don't understand how, in the example at github.com/jnthn/zavolaj/blob/mast...pi-call.p6 , and how 'user32' puts up a simple message box. 22:23
22:23 sqirrel left, gfldex left
FROGGS J-L: is native('user32') refers to the user32.dll in your C:\Windows\system32 22:24
J-L: and this exposes a C function called MessageBoxA
if you need more details, please ask for said details :o) 22:25
22:28 agentzh joined, kjs_ joined
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:30
22:31 amaliapomian left
FROGGS jnthn: it seems you were right... but I wonder, why did 'if (invokee == null) System.out.println("foo")' print nothing? 22:31
J-L: the default is that the sub name is taken as the symbol for the C call
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:32
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
Incidentally, my perl6 installation doesn't seem to have POSIX installed. Or is it a different name ?
FROGGS jnthn: okay confirmed, invokee is null... what does that mean? is "invokee = Ops.getlex(name, tc)" buggy? 22:34
22:34 sisar joined
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:34
J-L: there is no posix, no 22:35
J-L FROGGS: Are there any plans to include POSIX eventually? It's so useful on Perl 5. 22:36
FROGGS J-L: I have no personal plans, and I cant speak for somebody else :o) 22:37
22:37 cognominal left 22:39 kjs_ left
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. :)
raydiak wondered if J-L couldn't use cygwin termios functions via nativecall
FROGGS well, that's slightly better than a NPE
pmichaud I'd want it to be first created as a module, though. 22:40
22:40 Guest66620 is now known as felher
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:41
raydiak J-L: you can include all you need with your script, like I said last time :) 22:42
22:42 spider-mario left
raydiak unless there are licensing problems with your commerical uses 22:43
idk a lot about cygwin myself
back to afk
22:44 coffee` left, Kristien left
dalek p: 87161db | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
throw meaningful exception instead on NPE

We have an issue with our-scoped subs in combination with precompiled modules, like one can see here: testers.p6c.org/reports/15765.html This patch is hopefully just the first step of fixing this beast.
22:46
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…»
jnthn pmichaud: If invokee is null then Ops.getlex(name, tc) will have returned something null
lizmat m: class A { method a { 42 ?? nextsame() !! die } } # seems to work ok?
camelia ( no output )
jnthn uh
FROGGS: ^^ :)
FROGGS jnthn: yes, that sounds quite correct 22:48
jnthn std: class A { method a { 42 ?? nextsame !! die } }
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…»
FROGGS jnthn: so, I shall take a look at getlex you say? :o)
jnthn FROGGS: That may mean it's looking at some kind of static lexpad when it should be seeing a real one, for example
FROGGS: I dobut getlex itself is broken; we use that a *load* 22:49
FROGGS: I more suspect the .outer chain is
22:50 muraiki left
FROGGS jnthn: but getlex walks it in some way, right? 22:50
jnthn FROGGS: Correct
FROGGS ahh yes, I see
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
lizmat m: class A { method a { 42 ?? nextsame !! die } } # rakudobuggable?
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
jnthn lizmat: I just showed STD agrees 22:52
lizmat: So no
lizmat: nextsame is a list op; it then parses ! as prefix:<!>
lizmat: 'cus with listops we're looking for a term next, not an infix. 22:53
lizmat: I do wonder if we mightn't get a hintier error though 22:54
lizmat: Like in
m: for foo -> $a { }
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>␤␤»
jnthn Which is an instance of the same thing
pmichaud I wonder if it's worth fixing the prefix:<!> parse so that it doesn't accept a second ! 22:55
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.
jnthn lizmat: Uh, it's not that nextsame is, it's that any foo that's not a term is
lizmat: The alternative would be making nextsame a term 22:57
lizmat shoulden't nextsame then be a term
yes
:-)
jnthn I don't immediately feel so
lizmat ok, I just stumbled on it
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?
lizmat so the fix is to do nextsame() ?
FROGGS that would not solve: a ?? foo !! b
lizmat: yes
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 !?
lizmat goes to bed
jnthn I thought STD already did that but apparently it doesn't here...
'night, lizmat
FROGGS lizmat: sleep well 22:59
pmichaud looks at STD.pm6
jnthn m: say !!2
camelia rakudo-moar cb7ded: OUTPUT«True␤»
jnthn std: say !!2
camelia std 28329a7: OUTPUT«ok 00:00 135m␤»
jnthn Hm, not
std: say ~~2
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⏏052␤Parse failed␤FAILED 00:00 135m␤»
jnthn Hm, it gets that one.
std: say ??2
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⏏052␤Parse failed␤FAILED 00:00 135m␤»
jnthn I wonder if !! is actually being parsed as meta-op ! on an infix ! :) 23:00
And so doesn't trip the dupe prefix warning :)
pmichaud github.com/perl6/std/blob/master/STD.pm6#L3352
jnthn Ah, the !before '!' 23:01
pmichaud well, that's not it entirely.
Because there's also
github.com/perl6/std/blob/master/STD.pm6#L3600
which doesn't seem to care about a second !
jnthn Right, I'm wondering where the ??2 and ~~2 errors came from 23:02
It's not in github.com/perl6/std/blob/master/STD.pm6#L3618
oh
pmichaud maybe 3615?
jnthn github.com/perl6/std/blob/master/STD.pm6#L3609 23:03
pmichaud so perhaps prefix:<!> should do a similar thing?
or, more precisely, we should define a prefix:<!!> ?
jnthn No, it's the infix (like I linked) that seems to call dupprefix
J-L Well, I gotta go now. Thanks for all your help, guys. 23:04
FROGGS it is still a prefix, not an infix
J-L: o/
pmichaud prefix:<??> and prefix:<~~> both call .dupprefix, so perhaps prefix:<!!> should also
23:04 adu left, J-L left
jnthn oh, duh, you're right 23:05
I read prefix as infix somehow.
FROGGS hmmm, this should not break the ternary since an infix is expected...
(adding the prefix:!! I mean)
23:05 dolmen left
FROGGS so I wonder why it is not there already 23:05
pmichaud std: nextsame ?? 1 !! 2
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
jnthn pmichaud, FROGGS: Yeah, adding prefix:<!!> seems worth a try 23:05
pmichaud agreed.
make it so. :)
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 kaare__ left
jnthn We're missing dupprefix stuff entirely at the moment. 23:06
That's a nice LHF :)
pmichaud m: nextsame ?? 1 !! 2
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... :/
FROGGS and I've not enough battery power left :o(
pmichaud just add a ticket somewhere, then.
FROGGS pmichaud++
pmichaud I've to go pick up my dog before the kennel closes... bbl 23:08
FROGGS gnight 23:10
23:10 FROGGS left 23:13 mohij left
dalek kudo-star-daily: 80aa286 | coke++ | log/ (9 files):
today (automated commit)
23:16
23:16 wicope left
[Coke] Huh: example.com is a valid do-nothing op in C99 & C++ 23:22
23:24 kjs_ left 23:27 adu joined 23:29 virtualsue left
jnthn [Coke]: ahaha! 23:30
[Coke]: That's the best thing I've seen this week :P
timotimo :D 23:31
i understand how that works!
.o( but you can only put it in your code once, right? )
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
yoleaux raydiak: I'll pass your message to J-L.
timotimo raydiak: do you know if cygwin can run in windows cmd.exe? 23:32
grondilu (isn't it wat Cygwin does?) 23:33
timotimo it doesn't come with its own terminal emulator?
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
timotimo OK
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:36
23:39 sisar left 23:43 Hor|zon joined 23:47 beastd left, Hor|zon left 23:50 raiph left 23:53 raiph joined 23:54 cognominal joined