»ö« 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! Set by masak on 12 May 2015. |
|||
00:00
Psyche^ joined
00:04
Psyche^_ left
00:06
donaldh left
|
|||
xenu | github.com/rakudo/rakudo/pull/581 | 00:08 | |
i wonder why nobody ever noticed that it's borken | |||
broken | |||
Hotkeys | I was secretly hoping you'd fixed the windows repl xenu | 00:09 | |
but I guess that's okay too | |||
xenu | what's the problem with repl? | ||
on my current rakudo build you can't execute more than one line, is that what you're talking about? | 00:10 | ||
Hotkeys | yes | ||
xenu | good to know that it's not just me | 00:11 | |
;) | |||
Hotkeys | it broke at 75b2451 | ||
actually after that commit it was notexecuting at all | |||
but | |||
somewhere afterwards something made it execute one and then that's it | |||
I never got around to figuring out which one | |||
but I assume the problem hasn't changed | 00:12 | ||
I've been running a94389e on my windows machines for a little while now | |||
been intending to look into it for almost a week but I haven't | 00:13 | ||
psch | Hotkeys: can you run < ./perl6-m -e'use nqp; my @a = nqp::readlinefh(nqp::getstdout()) xx 2; say @a.perl' > and press enter twice? | 00:14 | |
Hotkeys | yeah once sec | ||
psch | Hotkeys: just curious about the output, maybe the win shells don't always send the same of \r\n and \n | ||
Hotkeys | I'm currently building moar-nom but I'll run it when finished | 00:15 | |
unless you mean on the old version | |||
psch | nah, something beyond 75b2451 | ||
Hotkeys | alright | ||
psch | if win shells are consistent there i'd guess something gets confused about which of \r\n and \n it's waiting for | 00:16 | |
probably somewhere in the readlinefh impl | |||
Hotkeys | heh | ||
===SORRY!=== Error while compiling -e | |||
Unable to parse expression in single quotes; couldn't find final "'" | |||
at -e:1 | |||
------> 'use<HERE><EOL> | |||
expecting any of: | |||
ugexe | .out.lines doesn't work on windows period | ||
Hotkeys | single quotes | ||
term | |||
psch | Hotkeys: well, you have to adjust the quotes :P | 00:17 | |
Hotkeys | well fine | ||
xenu | and s/getsdout/setstdin/ i guess | ||
Hotkeys | be tha way :p | ||
xenu | crap | ||
* and s/getsdout/getstdin/ | |||
another typo, argh | 00:18 | ||
00:18
jack_ left,
mr_ron left
|
|||
psch | xenu: eh, getstdout curiously works locally... but yes, you should be right | 00:18 | |
xenu | anyway | ||
Hotkeys | Reading from stream failed: socket is not connected | ||
in block <unit> at -e:1 | |||
oh | 00:19 | ||
xenu | ["\r\n", "\r\n"] | ||
psch | right, that makes more sense than it just working as on debian here | ||
Hotkeys | you want stdin | ||
psch | well, that's good :) | ||
Hotkeys | yeah | ||
same as xenu | |||
psch | the shell is consistent at least, so it's the readlinefh op that's getting weirded out | ||
Hotkeys | anything else I can run to help? | 00:20 | |
psch | did you try the nqp repl? | 00:21 | |
Hotkeys | the what now | ||
psch | rakudo compiles to nqp, and nqp has its own repl | ||
if you got perl6-m.bat in your path you should also have nqp-m.bat | |||
Hotkeys | I do | 00:22 | |
it also breaks | |||
psch | mhm | ||
Hotkeys | I just put in garbage input and got an error but the second time it did same thing as normal repl | 00:23 | |
psch | in that case it's probably somewhere in MoarVM/src/io/io.c:117-127 :P | ||
Hotkeys | which is nothing at all | ||
psch | or in how that's used... vOv | ||
00:23
idodod left
|
|||
psch | github.com/MoarVM/MoarVM/blob/mast.../io.c#L117 | 00:23 | |
could be deadlock too i suppose | 00:24 | ||
Hotkeys | makes sense that it broke when the NQP revision was bumped then | ||
psch | hm | ||
did you narrow down which commit after 75b2451 made it work once again? | 00:25 | ||
Hotkeys | I did not | ||
00:25
Zoffix left
|
|||
Hotkeys | it never worked again, it just broke one execution later | 00:25 | |
:p | |||
psch | made it ((work once) again) ;P | 00:26 | |
00:26
xpen joined
|
|||
Hotkeys | fair enough haha | 00:26 | |
zengargoyle | too clever to work...: %Population{%i<name>:delete} = pop => ::(%CM{%i<type>:delete}).new xx %i<count | ||
>:delete; | |||
too clever to work...: %Population{%i<name>:delete} = pop => ::(%CM{%i<type>:delete}).new xx %i<count>:delete | |||
Hotkeys | dang that's ugly | ||
no offense :p | |||
zengargoyle | think i forgot some parens or something. :P | 00:27 | |
Hotkeys | should I figure out where it started working once again? | 00:28 | |
psch | m: my %a = a => 1; say %a<a>:delete xx 2 | ||
camelia | rakudo-moar 459bc5: OUTPUT«(1 (Any))» | ||
psch | lhs of xx gets thunked, which means %i<type> is empty the second time through | ||
Hotkeys: well, that's how we could narrow it down from the rakudo side | |||
Hotkeys | alright I'll get to the narrowing | 00:29 | |
psch | Hotkeys: 'cause i like to assume that the readline_fh logic is fine | ||
Hotkeys | I've got 1.5 hours left in lecture should be more than enough time | ||
:p | |||
psch | Hotkeys: it doesn't look like there should be something wonky - except if it does deadlock for some reason or other, which you could probably figure out with perl6-gdm-m | ||
assuming that works on win and you know how to attach a different STDIN or somesuch... i'm not really gdb-savvy | 00:30 | ||
Hotkeys | I have no idea to be honest | ||
00:30
xpen left
00:31
yqt left
|
|||
psch | zengargoyle: i think rewriting as < %Population{%i<name>:delete} = pop => do with %i<type>:delete -> $type { ::(%CM{$type}).new xx %i<count>:delete } > or somesuch should work | 00:31 | |
AlexDaniel | m: say “test”.chars | ||
camelia | rakudo-moar 459bc5: OUTPUT«4» | ||
Hotkeys | I can confirm there are 4 chars there | 00:32 | |
AlexDaniel | m: say “pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96exCDx8CxCDx9BxCCx90xCDxA8xCCx8DxCDxACxCDxAExCCx91xCCx8AxCDx9FxCCx95xCDx99xCDx95xCCx96xCCxA5xCCx9CxCDx9AxCDx95xCCxA5xCCxAExCCxB9xCDx93xCCxA5xCDx87xCCxAFxCCxABxCCxBAxCCxAFxCCxB9rxCCx85xCDxAAxCCx8CxCCx91xCCxBExCCx84xCDxACxCCx88xD2x89xCCxA8xCDx9CxCDxA2xCCxA9xCCxACxCCxA4xCCxADxCCxB0xCCxAExCDx8ExCCxB9xCCxA6xCCxA9xCCxAExCCx9ExCCx98xCCxB3xCDx88xCCxA9xCCxA0xCDx89lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB3xCCxB9xCCxBBxCCxAAxCDx87xCDx88xCDx95xCCxBCxCCx99xCCxA6xCCx9ExCCx9DxCCxACxCDx8ExCDx9AxCCx996xCCx8AxCDxA3xCDx8CxCDx8BxCDxA6xCDxA3xD2x89xCDx98xCCx9BxCDx93xCDx94xCCxA4xCCx9ExCCxA4xCDx87xCDx87xCCx97xCCxA3xCCx96xCDx94xCDx93xCCx97xCCx97xCDx93xE2x80x9D.chars | ||
camelia | rakudo-moar 459bc5: OUTPUT«5» | ||
AlexDaniel | wow | ||
psch | .u pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96 | 00:33 | |
yoleaux | U+0070 LATIN SMALL LETTER P [Ll] (p) | ||
zengargoyle | y ($name, $type, $count) = %i<name type count>:delete; %Population{$name}<pop> = ::(%CM{$type}).new xx $count; %Population{%i.keys} = %i.values; | ||
yoleaux | U+0301 COMBINING ACUTE ACCENT [Mn] (◌́) | ||
U+0304 COMBINING MACRON [Mn] (◌̄) | |||
psch | hm, looks like there's a few more in there, actually... | ||
m: say uniname "pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96" | |||
camelia | rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER P» | ||
zengargoyle | ^^ what i ended up with... kept getting Unexpected named parameter 'thunked' passed messages trying to :delete on the fly | 00:34 | |
psch | m: say "pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96".ords.elems | ||
camelia | rakudo-moar 459bc5: OUTPUT«26» | ||
TimToady | m: say uninames "pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2" | ||
camelia | rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER P COMBINING RETROFLEX HOOK BELOW COMBINING BREVE COMBINING MACRON COMBINING FERMATA COMBINING ZIGZAG ABOVE COMBINING ACUTE ACCENT COMBINING NOT TILDE ABOVE COMBINING DOUBLE ACUTE ACCENT COMBINING LATIN SMALL LETTER A COMBINING DOUBLE RI…» | ||
00:34
[particle] joined
|
|||
TimToady | m: .say for uninames "pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2" | 00:34 | |
camelia | rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER PCOMBINING RETROFLEX HOOK BELOWCOMBINING BREVECOMBINING MACRONCOMBINING FERMATACOMBINING ZIGZAG ABOVECOMBINING ACUTE ACCENTCOMBINING NOT TILDE ABOVECOMBINING DOUBLE ACUTE ACCENTCOMBINING LATIN SMALL LETTER A…» | ||
Hotkeys | dang | ||
that's quite a few things | |||
psch | that's about all combinings there are, isn't it..? | 00:35 | |
Skarsnik | lol | ||
AlexDaniel | psch: yeah pretty much | ||
psch: not all of them though, as far as I can see | |||
psch | m: say 6 * 16 | ||
camelia | rakudo-moar 459bc5: OUTPUT«96» | ||
psch | well, - 1 i suppose, GCJ doesn't count | 00:36 | |
*CGJ | |||
TimToady | there are 330 chars with COMBINING in the name | ||
AlexDaniel | … what if you use all of them? | ||
Hotkeys | you get zalgo text | ||
psch | ...right, extended, supplement, * for symbols, half marks | ||
and that's assuming the wikipedia article is up to date | 00:37 | ||
00:37
Skarsnik left
|
|||
AlexDaniel | hm, how to unzalgo it? | 00:37 | |
Hotkeys | idk | 00:38 | |
first character was latin small letter p | |||
I'm not a character expert but assuming that comes first always | |||
just pull that out of the pile | |||
AlexDaniel | I mean, how can I get rid of combining characters? | ||
TimToady | m: say "pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2".ord.chr | 00:39 | |
camelia | rakudo-moar 459bc5: OUTPUT«p» | ||
Hotkeys | oh nice | ||
that's concise | |||
i just rhymed | |||
something that rhymes with rhyme | |||
TimToady | climbed? primed? | 00:40 | |
chimed, dimed | |||
flamed if you're aussie... | |||
00:41
Actualeyes joined
|
|||
Hotkeys | I can think of words that rhyme with rhyme just none that I could be bothered to use in a sentence that fit in | 00:41 | |
TimToady | well, you weren't being timed | 00:42 | |
Hotkeys | I'm getting close to figuring out the partial unbreaking commit | 00:43 | |
AlexDaniel | m: say “pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96exCDx8CxCDx9BxCCx90xCDxA8xCCx8DxCDxACxCDxAExCCx91xCCx8AxCDx9FxCCx95xCDx99xCDx95xCCx96xCCxA5xCCx9CxCDx9AxCDx95xCCxA5xCCxAExCCxB9xCDx93xCCxA5xCDx87xCCxAFxCCxABxCCxBAxCCxAFxCCxB9rxCCx85xCDxAAxCCx8CxCCx91xCCxBExCCx84xCDxACxCCx88xD2x89xCCxA8xCDx9CxCDxA2xCCxA9xCCxACxCCxA4xCCxADxCCxB0xCCxAExCDx8ExCCxB9xCCxA6xCCxA9xCCxAExCCx9ExCCx98xCCxB3xCDx88xCCxA9xCCxA0xCDx89lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB3xCCxB9xCCxBBxCCxAAxCDx87xCDx88xCDx95xCCxBCxCCx99xCCxA6xCCx9ExCCx9DxCCxACxCDx8ExCDx9AxCCx996xCCx8AxCDxA3xCDx8CxCDx8BxCDxA6xCDxA3xD2x89xCDx98xCCx9BxCDx93xCDx94xCCxA4xCCx9ExCCxA4xCDx87xCDx87xCCx97xCCxA3xCCx96xCDx94xCDx93xCCx97xCCx97xCDx93xE2x80x9D.comb.map(*.ord.chr).join | ||
camelia | rakudo-moar 459bc5: OUTPUT«perḷ6» | ||
Hotkeys | oo | ||
almost | |||
AlexDaniel | hmmm what's that? | ||
psch | m: say uninames "ḷ" | ||
camelia | rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER L WITH DOT BELOW)» | ||
Hotkeys | ah | ||
psch | m: say ords "ḷ" | 00:44 | |
camelia | rakudo-moar 459bc5: OUTPUT«(7735)» | ||
Hotkeys | it's a character on its own | ||
AlexDaniel | where did it get it? | ||
psch | m: say ords "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]" | ||
camelia | rakudo-moar 459bc5: OUTPUT«(7735)» | ||
psch | that might be a bug | ||
m: say uninames "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]" | |||
camelia | rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER L WITH DOT BELOW)» | ||
psch | i'm not sure though, maybe that's exactly what NFG is supposed to do | 00:45 | |
Hotkeys | m: say for uninames "lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB3xCCxB9xCCxBBxCCxAAxCDx87xCDx88xCDx95xCCxBCxCCx99xCCxA6xCCx9ExCCx9DxCCxACxCDx8ExCDx9AxCCx99" | ||
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AUumBVk1A_Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument, or use &say to refer to the function as a nounat /tmp/AUumBVk1A_:1------> 3…» | ||
Hotkeys | oops | ||
m: .say for uninames "lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB3xCCxB9xCCxBBxCCxAAxCDx87xCDx88xCDx95xCCxBCxCCx99xCCxA6xCCx9ExCCx9DxCCxACxCDx8ExCDx9AxCCx99" | |||
camelia | rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER L WITH DOT BELOWCOMBINING PALATALIZED HOOK BELOWCOMBINING COMMA BELOWCOMBINING DOUBLE LOW LINECOMBINING RIGHT HALF RING BELOWCOMBINING SQUARE BELOWCOMBINING BRIDGE BELOWCOMBINING EQUALS SIGN BELOWCOMBINING DOUBLE …» | ||
TimToady | NFG is based on NFC, so you might need to throw an NFD in there somewhere to get where you're going | 00:46 | |
00:46
Ven_ joined
|
|||
Hotkeys | so many acronyms | 00:46 | |
er | |||
TimToady | SMA? | 00:47 | |
Hotkeys | initialisms | ||
psch | m: say ords "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]".NFD | ||
camelia | rakudo-moar 459bc5: OUTPUT«Cannot call ords(NFD); none of these signatures match: (Cool $s) (Str $s --> Seq:D) in block <unit> at /tmp/Q2lkEVbsbq:1» | ||
psch | m: say "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]".NFD.perl | ||
camelia | rakudo-moar 459bc5: OUTPUT«Uni.new(0x006c, 0x0323).NFD» | ||
psch | TimToady++ | ||
AlexDaniel | yeah, that's just normalization, not a bug | ||
TimToady | m: say “pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2e͌͛̐ͨ̍ͬͮ̑̊͟r̅ͪ̌̑̾̄ͬ̈҉̨lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB36xCCx8AxCDxA3xCDx8CxCDx8BxCDxA6xCDxA3xD2x89xCDx98xCCx9BxCDx93xE2x80x9D.comb.map(*.NFD[0].chr).join | 00:49 | |
camelia | rakudo-moar 459bc5: OUTPUT«perl6» | ||
AlexDaniel | m: say “pxCCx86xCCx84xCDx92xCDx9BxCCx81xCDx8AxCCx8BxCDxA3xCCxA2xCDxA2xCCxB7xCCx96xCDx85xCCxA4xCCx99xCCxACxCCx9ExCCx99xCDx89xCDx95xCCxB2xCCxBAxCCxAExCDx8ExCDx96exCDx8CxCDx9BxCCx90xCDxA8xCCx8DxCDxACxCDxAExCCx91xCCx8AxCDx9FxCCx95xCDx99xCDx95xCCx96xCCxA5xCCx9CxCDx9AxCDx95xCCxA5xCCxAExCCxB9xCDx93xCCxA5xCDx87xCCxAFxCCxABxCCxBAxCCxAFxCCxB9rxCCx85xCDxAAxCCx8CxCCx91xCCxBExCCx84xCDxACxCCx88xD2x89xCCxA8xCDx9CxCDxA2xCCxA9xCCxACxCCxA4xCCxADxCCxB0xCCxAExCDx8ExCCxB9xCCxA6xCCxA9xCCxAExCCx9ExCCx98xCCxB3xCDx88xCCxA9xCCxA0xCDx89lxCCxBFxCDx8CxCDxA8xCCxBDxCCx82xCDx81xCCxA1xCCxA3xCCxA6xCCxB3xCCxB9xCCxBBxCCxAAxCDx87xCDx88xCDx95xCCxBCxCCx99xCCxA6xCCx9ExCCx9DxCCxACxCDx8ExCDx9AxCCx996xCCx8AxCDxA3xCDx8CxCDx8BxCDxA6xCDxA3xD2x89xCDx98xCCx9BxCDx93xCDx94xCCxA4xCCx9ExCCxA4xCDx87xCDx87xCCx97xCCxA3xCCx96xCDx94xCDx93xCCx97xCCx97xCDx93xE2x80x9D.comb.map(*.NFD[0].chr).join | 00:50 | |
camelia | rakudo-moar 459bc5: OUTPUT«perl6» | ||
TimToady | er, I just said that? | 00:51 | |
AlexDaniel | TimToady: not according to what I see | ||
colomon | Man, that text really messes up my IRC client | ||
psch | irclog.perlgeek.de/perl6/2015-11-12#i_11522549 | 00:52 | |
irclog too | |||
Hotkeys | lol | ||
psch | looks fine in my putty window here :P | ||
AlexDaniel | psch: irclog looks fine here | ||
Hotkeys | hexchat has no issue with it | ||
psch | and it's not even just blocks | ||
Hotkeys | it looks fine it's just full height | ||
AlexDaniel | somehow in emacs I see every character separately… | ||
that's why I noticed the difference | |||
Hotkeys | instead of cutting off the tops of the chars for readability | ||
and bottoms | 00:53 | ||
AlexDaniel | colomon: “UTF-8 is our friend!” | ||
00:53
khw left,
Ven_ left
|
|||
psch | imgur.com/x7mC9Uq somewhat crunched... | 00:53 | |
AlexDaniel | TimToady: even on that screenshot ^ you can see that these strings are different | 00:54 | |
TimToady | ayup | ||
colomon | www.harmonyware.com/pictures/troublesome.png | ||
AlexDaniel | colomon: now that is really messed up :) | 00:55 | |
psch | that matches what i see in my browser on the clog | ||
00:55
telex left
|
|||
psch | although it's a bit less here | 00:55 | |
AlexDaniel | ERC in emacs: files.progarm.org/2015-11-12-02553..._scrot.png | ||
TimToady | colomon: if it would just increase the vspacing there, that'd be nice | ||
00:56
telex joined,
mr_ron joined
|
|||
dalek | kudo-star-daily: 5c8594a | coke++ | log/ (5 files): today (automated commit) |
00:56 | |
AlexDaniel | Hm, perhaps it is not emacs to blame, but Terminus font… | 00:57 | |
though the same thing looks just fine in my terminal | 00:58 | ||
01:00
BenGoldberg joined
01:04
cbk joined
01:05
pippo left
|
|||
Hotkeys | alright | 01:10 | |
one more build and I'll know which commit made it break after one go | 01:11 | ||
psch: cc4d72c4abb243f44500a7c435e2e9946325f3bd | 01:20 | ||
is the commit that made it work once again | |||
github.com/rakudo/rakudo/commit/cc...946325f3bd | 01:21 | ||
01:21
awph joined
01:22
awph left
01:24
perlawhirl left,
TEttinger joined
|
|||
psch | Hotkeys: can you try < say "hi"; Rakudo::Internals.SET_LINE_ENDING_ON_HANDLE(nqp::getstdin(), "\r\n") > in the repl as one line? | 01:28 | |
that's still just following hunches, fwiw, no idea how we'd fix that | |||
01:29
xpen joined
|
|||
psch | but i'm guessing that the stdin in the nqp-ish level for the repl forgets which line ending to look for | 01:29 | |
(in some way or other... vOv) | |||
Hotkeys | very clever | 01:32 | |
i.imgur.com/B5JiVdN.png | |||
after any one of those | 01:33 | ||
I can run anything once | |||
and then the next thing breaks as usual | |||
i.imgur.com/oONdZKM.png | 01:34 | ||
01:34
xpen left
|
|||
AlexDaniel | m: say 'A' ~ [~] ((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ } ==> map { .chr }) | 01:35 | |
camelia | rakudo-moar 459bc5: OUTPUT«…» | ||
AlexDaniel | uhhh | ||
TimToady: actually, this code says that there are exactly 400 combiners out there | 01:36 | ||
not 330 as you said earlier | |||
m: say ('A' ~ [~] ((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ } ==> map { .chr })).chars; | 01:37 | ||
psch | Hotkeys: ooc, do you have Linenoise installed or not? | ||
TimToady | maybe they've added some since my Perl 5 was made | ||
camelia | rakudo-moar 459bc5: OUTPUT«1» | ||
Hotkeys | no but I can get it | ||
psch | just curious if that changes something | 01:38 | |
raiph | How come the REPL isn't saying "nqp::operations has been deprecated for non-CORE code" etc in Hotkey's screenshot? | ||
AlexDaniel | m: say +((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ }); | ||
Hotkeys | I told it it use nqp | ||
camelia | rakudo-moar 459bc5: OUTPUT«401» | 01:39 | |
Hotkeys | if I didn't do 'use nqp;' every line | ||
it yelled at me | |||
AlexDaniel | So the output is: À̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉͍͎́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀͂͆͊͋͌̕̚ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ҃҄҅҆҇͘͜͟͢͝͞͠͡҈҉߲߫߬߭߮߯߰߱߳ఀ᩿᪵᪶᪷᪸᪹᪺᪽፝፞፟᪰᪱᪲᪳᪴᪻᪼᪾⃒⃓⃘⃙⃚᷐᷎᭬᷂᷊᷏᷽᷿᭫᭭᭮᭯᭰᭱᭲᭳᷀᷁᷃᷄᷅᷆᷇᷈᷉᷋᷌᷑᷒ᷓᷔᷕᷖxE1xB7 | 01:40 | |
see! One bug discovered! | |||
Hotkeys | I'll try luarocks when I get home psch | ||
AlexDaniel | poor synbot6 though… | ||
Hotkeys | there's less than 10 min left in lecture | ||
i've gotta install luarocks for the windows version of linennoise | 01:41 | ||
psch | Hotkeys: the module? | ||
raiph | AlexDaniel: those combiners are stacked 10 lines high on my irc client :) | ||
AlexDaniel | raiph: screenshot? | ||
psch | Hotkeys: i'm talking about github.com/hoelzro/p6-linenoise/ | ||
Hotkeys | LuaRocks the package manager for lua | ||
oh | 01:42 | ||
whoops | |||
AlexDaniel | raiph: I don't think that I've ever seen all 400 combiners together | ||
Hotkeys | do i need linenoise as well | ||
or does this include it all | |||
AlexDaniel | well, synbot6 didn't as well | ||
Hotkeys | as in the antirez repo stuff | ||
psch | Hotkeys: moar already brings linenoise | ||
Hotkeys | oh | ||
fancy | |||
can I just panda install this | 01:43 | ||
AlexDaniel | these are not rendered as combiners on clog though. I wonder why | ||
psch | Hotkeys: yeah | ||
Hotkeys | er | ||
apparently I don't have panda built on my laptop | |||
so | |||
I'll do this when I get home | |||
I can't remember how long it takes to build panda | |||
psch | well, i doubt it actually changes anything tbh | ||
Hotkeys | worth a shot | 01:44 | |
psch | the Linenoise module just brings things like history and (very basic) tab completion | ||
afair | |||
Hotkeys | ah | ||
cbk | Hello, I made my first Perl6 Module! Can someone please review and add to the echo system? It is here on git hub: github.com/cbk/WebService-HazIP | 01:45 | |
raiph | AlexDaniel: not sure if this'll work but: drive.google.com/drive/folders/0Bx...010dU9fTFk | 01:48 | |
AlexDaniel | raiph: holy… | ||
psch | cbk: doc.perl6.org/language/modules#Dist...ng_Modules describes how to get your module added | ||
Hotkeys | lmao | 01:49 | |
hexchat just stops it from going over normal character height | |||
psch | hah, that's neat | ||
AlexDaniel | I see broken encoding here: irclog.perlgeek.de/perl6/2015-11-12#i_11522716 | 01:50 | |
at first I thought that I pasted it incorrectly… | |||
01:50
Ven_ joined,
srvsh joined
|
|||
Hotkeys | I lied | 01:50 | |
hexchat does this i.imgur.com/G9pfUiR.png | |||
psch | imgur.com/Cc6JCKT | ||
that looks pretty similar to what i see in the clog | 01:51 | ||
AlexDaniel | weird! | ||
01:51
herby_ joined
|
|||
psch | i like how the first char in putty is almost a white filled block :P | 01:51 | |
Hotkeys | lol | ||
herby_ | Good evening, everyone! | ||
AlexDaniel | anyway, who is going to revive synbot6 now? | ||
psch | maybe a different ordering could get a fully filled white block | ||
AlexDaniel | I'm really sorry for doing that though… | ||
psch | AlexDaniel: i have no idea where it lives, and even if i don't think i have access | ||
Hotkeys | haha | ||
okay brb going home | 01:52 | ||
znc will catch me up when I get back | |||
AlexDaniel | actually, I felt like it could crash at least one irc client… But nope, just a bot :) | 01:53 | |
raiph | hi herby_ | ||
AlexDaniel | github.com/tadzik/synopsebot/blob/...opsebot.p6 – interesting | 01:54 | |
psch | i'm gonna get some rest o/ | ||
AlexDaniel | I use Net::IRC::Bot too, but my bot eats it just fine | ||
so where's the bug? | 01:55 | ||
01:57
Ven_ left
|
|||
herby_ | is there a recommended place to paste code for questions? | 01:59 | |
AlexDaniel | herby_: github gists | ||
herby_: in fact, camelia can run them | 02:00 | ||
herby_: though it is a good idea to golf it down to something that fits into one m: message | |||
herby_ | Well, I guess its more of a question. Say I have a string: akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777| | 02:01 | |
what is a good way to say: if ACCOUNT:$variable is found, then capture ACCESS:() and STAFF:() | 02:02 | ||
essentially, if a specific account number is found, then capture the access and staff | |||
and print all 3 out | |||
i'm rewriting a perl 5 script, and its extremely clunky | 02:03 | ||
02:03
khw joined
|
|||
dalek | osystem: 5f50e71 | cbk++ | META.list: Update META.list To include cbk/WebService-HazIP Perl6 Module. |
02:06 | |
AlexDaniel | herby_: Not sure what would be the easiest way. I use this sometimes: for $text ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA { } | ||
raiph | m: my $var = 123; say "akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777| ".match: / 'ACCOUNT:' $var '| ' \w*? 'ACCESS:' (\d\d\d) '| ' \w*? 'STAFF:' (\d\d\d) / | ||
camelia | rakudo-moar 459bc5: OUTPUT«「ACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777」 0 => 「999」 1 => 「777」» | ||
AlexDaniel | m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA { say $<key> ~ ' – ' ~ $<value> } | 02:08 | |
camelia | rakudo-moar 459bc5: OUTPUT«Type List does not support associative indexing. in block <unit> at /tmp/xOLhsWa1GP:1Actually thrown at: in block <unit> at /tmp/xOLhsWa1GP:1» | ||
herby_ | whew, that's a lot to dig into. thanks! :) | 02:09 | |
AlexDaniel | m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA { say $_<key> ~ ' – ' ~ $_<value> } | 02:11 | |
camelia | rakudo-moar 459bc5: OUTPUT«Use of Nil in string context in block at /tmp/_PNCG6CaJF:1 – 123Use of Nil in string context in block at /tmp/_PNCG6CaJF:1 – 999Use of Nil in string context in block at /tmp/_PNCG6CaJF:1 – 777» | ||
AlexDaniel | m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA { say $_<name> ~ ' – ' ~ $_<value> } | ||
camelia | rakudo-moar 459bc5: OUTPUT«ACCOUNT – 123ACCESS – 999STAFF – 777» | ||
AlexDaniel | yeah! | ||
herby_ | nice! | 02:12 | |
raiph | AlexDaniel++ | ||
AlexDaniel | herby_: though it is going to iterate them one by one. Whether you need that or not, well, it depends | ||
herby_ | let me see what I can do! What does that $<name>=<:Lu>+ do? | 02:14 | |
02:14
dayangkun joined
|
|||
AlexDaniel | herby_: you can simplify it to (<[A-Z]>) if you want | 02:14 | |
herby_: $<name> is just a named capture (so that you don't have to use numbers like $0) | |||
herby_: <:Lu> is any unicode uppercase letter | 02:15 | ||
herby_ | ah ok | ||
AlexDaniel | herby_: these xE2x8CxA9 xE2x8CxAA brackets are just for readability. You can use / / or anything else if you wish | 02:16 | |
diakopter | rotfl | ||
Hotkeys | y'all are too active for znc to catch me up on | 02:23 | |
02:24
Sqirrel left
|
|||
AlexDaniel | herby_: I know that this could be a bit too much, but | 02:25 | |
m: my %a = gather for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA { take $_<name> => $_<value> }; say %a<ACCOUNT> | |||
camelia | rakudo-moar 459bc5: OUTPUT«「123」» | ||
Hotkeys | those are some interesting brackets AlexDaniel | 02:26 | |
i need those on my keyboard | |||
AlexDaniel | Hotkeys: Yeah. I have 「」 xE2x8CxA9xE2x8CxAA “” ‘’ on my keyboard | ||
and a bunch of other stuff | 02:27 | ||
Hotkeys | fancy | ||
AlexDaniel | arrows, non-breaking space… | ||
Hotkeys | where can I get a fancy keyboard like this | ||
02:27
mrsolo joined
|
|||
AlexDaniel | Hotkeys: well, if you are using GNU/Linux then you have to create your own xkb layout | 02:27 | |
Hotkeys | oh oops | 02:28 | |
I was thinking physical keyboard | |||
AlexDaniel | nah, why should physical keyboard be associated with the keyboard layout? | 02:29 | |
hoelzro | timotimo: I probably set that video up as non-public =/ | ||
Hotkeys | not sure | 02:30 | |
why not | |||
:p | |||
hoelzro | oh, I didn't; I just don't have my screename on there | ||
02:30
xpen joined
|
|||
hoelzro | if you search for "Rob Hoelz", it comes up | 02:30 | |
Hotkeys: did you have any problems with the Linenoise module? | |||
Hotkeys | oh | ||
I didn't fiddle with that stuff yet | |||
sec | 02:31 | ||
AlexDaniel | herby_: there's a simpler way though (without gather/take) | 02:32 | |
m: my %a = ('akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:globalxE2x8CxA9 $<name>=<:Lu>+ ':' $<value>=\d+ xE2x8CxAA).map: { $_<name> => $_<value> }; say %a<ACCOUNT> | |||
camelia | rakudo-moar 459bc5: OUTPUT«「123」» | ||
Hotkeys | apparently I don't have panda on my desktop | ||
so | |||
gonna build that and plat a round of rocket league | |||
02:34
llfourn left,
xpen left
|
|||
herby_ | m: if $test.lc eq 'e' && index("123 456, "123") {say "yep"} else {say "no"}; | 02:38 | |
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xJ3iMzCkrkVariable '$test' is not declaredat /tmp/xJ3iMzCkrk:1------> 3if 7⏏5$test.lc eq 'e' && index("123 456, "123"» | ||
herby_ | m: if 'e' eq 'e' && index("123 456, "123") {say "yep"} else {say "no"}; | 02:39 | |
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LkqryN2Cz7Unable to parse expression in argument list; couldn't find final ')' at /tmp/LkqryN2Cz7:1------> 3if 'e' eq 'e' && index("123 456, "7⏏05123") {say "yep"} else {say "no"}; expectin…» | ||
herby_ | m: if 'e' eq 'e' && index("123 456", "123") {say "yep"} else {say "no"}; | ||
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
herby_ | this is erroring out in my script: if $test.lc eq 'e' && index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | 02:40 | |
Cannot call index.... | |||
ugexe | in your script or 1 liner? | 02:41 | |
herby_ | short script, i assign $test and $num | ||
then call that line | |||
ugexe | ah, thought maybe it was the quotes for -e | 02:42 | |
herby_ | is index($string, "ACCESS_ID:$num") legit? | ||
02:43
labster joined
|
|||
herby_ | if $string = "ACCESS_ID:123" | 02:43 | |
AlexDaniel | m: 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ mxE2x8CxA9 [$<name>=<:Lu>+ ':' $<value>=\d+]+ % .*? xE2x8CxAA; say $/<name>[0] ~ ' – ' ~ $/<value>[0]; | 02:44 | |
camelia | rakudo-moar 459bc5: OUTPUT«ACCOUNT – 123» | ||
AlexDaniel | that's not as useful as a hash but it gives you one full match object | 02:45 | |
herby_ | thanks! | 02:46 | |
02:47
kaare_ joined
|
|||
herby_ | so this is erroring out too: if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | 02:49 | |
m: my $string = "ACCESS_ID: 123"; my $num = "123"; say $num; | |||
camelia | rakudo-moar 459bc5: OUTPUT«123» | ||
herby_ | m: my $string = "ACCESS_ID: 123"; my $num = "123"; if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | 02:50 | |
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
herby_ | hmm | ||
thats weird | |||
m: my $string = "ACCESS_ID:123"; my $num = "123"; if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | |||
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
mst | you have a space in the string but not in the thing you're testing it against | ||
oh. ok. the second one, no idea. | |||
AlexDaniel | m: my $string = 'hmm ACCESS_ID:5 foo'; my $num = 5; if index($string, "ACCESS_ID:$num") { say "yep" } else { say "no" } | 02:51 | |
camelia | rakudo-moar 459bc5: OUTPUT«yep» | ||
AlexDaniel | what's the difference? | ||
right! | 02:52 | ||
mst | oooh, of course, 0 | ||
AlexDaniel | 0 in bool context | ||
mst | versus undef for fail | ||
ShimmerFairy | m: my $string = "ACCESS_ID:123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | ||
camelia | rakudo-moar 459bc5: OUTPUT«yep» | ||
ShimmerFairy | m: my $string = "ACCESS_ID: 123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | ||
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
herby_ | i'm confused | ||
mst | if index($string, "..." | ||
if index($string, "...").defined ? | |||
AlexDaniel | mst: that works | 02:53 | |
ShimmerFairy | mst: yes, 'with' tests for defined-ness (in fact, it came about precisely because of Str.index and friend ☺) | ||
AlexDaniel | .u ☺ | ||
yoleaux | U+263A WHITE SMILING FACE [So] (☺) | ||
herby_ | i'm a big dummy cause I'm not seeing why my example failed | ||
ShimmerFairy | 'with' ~~ 'if', 'without' ~~ 'unless', 'orwith' ~~ 'elsif' :) | ||
02:53
BenGoldberg left
|
|||
AlexDaniel | herby_: your strings starts with what you are searching for | 02:54 | |
ShimmerFairy | herby_: your example found the substring at index 0, which boolifies to False | ||
herby_ | ahh | ||
AlexDaniel | herby_: therefore it will return 0 as the index | ||
herby_ | ahhhhhh | ||
AlexDaniel | 0 is falsey! | ||
02:54
nys left
|
|||
herby_ | m: my $string = "ACCESS_ID:123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | 02:54 | |
camelia | rakudo-moar 459bc5: OUTPUT«yep» | ||
herby_ | sweet | ||
02:55
raiph left
|
|||
mst | ShimmerFairy: that's ... hm. I'd've expected 'with' to be a thing for setting $_ | 02:55 | |
ShimmerFairy | mst: it sets $_ too, incidentally :) | ||
m: with 42 { say $_ } | |||
camelia | rakudo-moar 459bc5: OUTPUT«42» | ||
02:55
Ven_ joined
|
|||
mst | ah well | 02:55 | |
that's ok then :)( | 02:56 | ||
ShimmerFairy | mst: I guess you're thinking of given $stuff { } , which just sets $_ to $stuff | ||
mst | yeah. I think with reads nicer | ||
AlexDaniel | is it documented on doc.perl6? | 02:57 | |
ShimmerFairy | well, I suppose it is the same thing, as long as it isn't with Any { ... } or something like that :) | ||
AlexDaniel | I mean 「with」 | ||
hmmm I wonder if it has to say “method, method, method, method, method, method, method, method, method, method, method” doc.perl6.org/routine-method.html | 02:58 | ||
ShimmerFairy | docs.perl6.org/language/control#wit...2C_without | 02:59 | |
AlexDaniel | ShimmerFairy: nice! | ||
herby_ | m: with index("123", "abc") {say "yep"} else {say "no"}; | 03:00 | |
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
AlexDaniel | .oO( “orwith”… why not “elsewith”? ) |
||
herby_ | m: with index("123", "abc") && 'e' eq 'e' {say "yep"} else {say "no"}; | 03:01 | |
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
herby_ | m: with index("123", "123") && 'e' eq 'e' {say "yep"} else {say "no"}; | ||
camelia | rakudo-moar 459bc5: OUTPUT«yep» | ||
03:01
doublec left
03:02
Ven_ left
|
|||
herby_ | what is the difference between 'if' and 'when'? | 03:02 | |
03:02
BenGoldberg joined
|
|||
herby_ | or rather, when should I should which | 03:03 | |
should I use which | |||
03:03
doublec joined
|
|||
AlexDaniel | herby_: it seems like “when” should be used in “given” | 03:04 | |
but not only | |||
ShimmerFairy | 'with' is for testing whether objects are defined, it's equivalent to if $testing-this.defined { ... } | ||
m: say 42.defined; say 0.defined; say Int.defined; | |||
camelia | rakudo-moar 459bc5: OUTPUT«TrueTrueFalse» | ||
03:05
Actualeyes left
|
|||
AlexDaniel is not sure what the question was | 03:05 | ||
herby_ | just not sure when I should be using what | ||
when in doubt, should i just use 'if'? | |||
ShimmerFairy | yeah, I'd recommend using 'if' to be safe, just make sure to keep mindful of 0 being considered false :) | 03:07 | |
herby_ | yep, i'll remember that lesson :) | ||
ShimmerFairy | m: say index("0123", "123"); say index("123", "abc") | ||
camelia | rakudo-moar 459bc5: OUTPUT«1Nil» | ||
AlexDaniel | herby_: when in doubt, think about about your condition. Are you testing for definedness or truthness? | ||
herby_ | at this stage in my 'learning to program', i'm not entirely sure i understand the difference | 03:08 | |
i understand truth, false, 0, 1 | |||
true rather | |||
AlexDaniel | herby_: if you were implementing 「index」, what would you return if no match was found? | 03:09 | |
herby_ | hmm | 03:10 | |
without looking, i'd assume a 0 or false | |||
but since i now know its returning the index | |||
guess that's not correct | |||
AlexDaniel | herby_: well, you can't really return False because some code might be expecting Int | 03:11 | |
herby_: so it will blow up | |||
m: Int $x = False | |||
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3QvAuhGYTOTwo terms in a rowat /tmp/3QvAuhGYTO:1------> 3Int7⏏5 $x = False expecting any of: infix infix stopper statement end statement modifier …» | ||
AlexDaniel | m: my Int $x = False | ||
camelia | rakudo-moar 459bc5: OUTPUT«Type check failed in assignment to $x; expected Int but got Bool in block <unit> at /tmp/22w7cfptN5:1» | ||
AlexDaniel | herby_: “expected Int but got Bool” | ||
so we can't return False | 03:12 | ||
we also can't return 0 because it is a valid index | |||
so you wont know whether nothing was found or it is just at the beginning of your string | |||
herby_: one possibility is to return negative numbers… but that's just ugly, in my opinion | 03:13 | ||
herby_: and although it might work in our case with 「index」, it wont work with other routines that return negative values normally as well | |||
herby_ | ok | 03:14 | |
AlexDaniel | so we return undef, null, nil, whatever the name is in your current language | ||
03:15
srvsh left
|
|||
herby_ | ok | 03:15 | |
that makes sense, thank you | 03:17 | ||
03:21
kid51 left
03:30
Khisanth joined
03:36
skids left
03:38
kaare_ left
03:41
srvsh joined
|
|||
herby_ | m: my $string = "ACCESS_ID: 123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"}; | 03:43 | |
camelia | rakudo-moar 459bc5: OUTPUT«no» | ||
herby_ | hmm. that line still fails in the script | 03:44 | |
ShimmerFairy | it's because you need to write the match string as "ACCESS_ID: $num" :) | 03:45 | |
herby_ | wow, I need to go to bed. I'm losing it :) | 03:47 | |
thanks for the help everyone, have a good night! | |||
now it works! | |||
03:48
herby_ left
03:49
xpen joined
03:59
Ven_ joined
04:01
mr_ron left
04:04
raiph joined
04:05
sprocket left,
Ven_ left
04:10
llfourn joined
04:20
AlexDaniel left
04:31
eternaleye joined
04:34
tokuhiro_ joined
04:35
Actualeyes joined
04:37
quester joined
04:40
stmuk joined
04:41
stmuk_ left
04:51
vendethiel joined
05:02
Ven_ joined
05:07
Ven_ left
05:14
raiph left
05:19
vendethiel left
05:35
n0xff left
05:37
n0xff joined
05:39
BenGoldberg left
05:44
ifim left
06:05
khw left
06:07
xfix joined
|
|||
TimToady | "Routines are the smallest means of code reuse in Perl 6." Hmm, that's not really true | 06:09 | |
blocks and thunks are smaller | |||
llfourn | TimToady: I think that whole first part can be re-written :) | 06:11 | |
Hotkeys | attempting to install linenoise to test the bug we were testing earlier | ||
can't even build panda on current version | |||
llfourn notes in his TODO | |||
Hotkeys | JSON module gets angry | ||
JimmyZ | it meant Routine in rakudo core? since most are wrap to obj.meth ... | ||
jferrero | m: my %x = (a => 1, b => 2); say "{%x}" | ||
camelia | rakudo-moar 459bc5: OUTPUT«a 1b 2» | ||
06:25
polettix joined
|
|||
lizmat | attempt #1 to commute to MIA& | 06:34 | |
06:34
lizmat left
06:39
syahirah0204 joined
|
|||
syahirah0204 | hai everybody | 06:39 | |
help me ! | |||
im new here | |||
syahirah0204 slaps advwp around a bit with a large fishbot | |||
06:43
ribasushi left
|
|||
TimToady | we're all asleep | 06:44 | |
llfourn | syahirah0204: I'm awake :) | 06:46 | |
syahirah0204 | hai | 06:47 | |
how to use perl | |||
:( | |||
llfourn | m: say "you type characters and spit them at me!" | ||
camelia | rakudo-moar 459bc5: OUTPUT«you type characters and spit them at me!» | ||
06:48
mr-foobar joined
|
|||
syahirah0204 slaps syahirah0204 around a bit with a large fishbot | 06:49 | ||
06:49
syahirah0204 left
06:50
domidumont joined,
domidumont left
06:52
ribasushi joined
|
|||
[Tux] | ZoffixW, Text::CSV already exists, DBD::CSV is not easy to port right now, as it needs not only DBI (and DBD::File), but also SQL::Statement | 06:55 | |
07:00
Oatmeal joined,
Oatmeal left
07:04
rindolf joined
07:05
Oatmeal joined
07:06
geraud left
07:07
diana_olhovik joined
07:09
Ven_ joined
07:10
CIAvash joined
07:13
Ven_ left
|
|||
masak | morning, #perl6 | 07:15 | |
07:19
moznion joined
07:22
Oatmeal left,
raydiak joined
|
|||
masak | current status: rethinking the wisdom/sanity of surrounding all injected Qtrees with an invisible block (for hygienic scoping). | 07:22 | |
[Tux] | test 50000 20.904 20.762 | ||
test-t 50000 17.457 17.315 | |||
morning | 07:23 | ||
masak | mornin', [Tux] | 07:25 | |
today's Git pro tip: `git config --global log.date iso` | |||
(sets the date format from "human readable" to YYYY-MM-DD) | 07:26 | ||
07:27
lizmat joined
|
|||
llfourn | masak: Mon Nov 9 16:23:53 2015 is what mine looks like | 07:27 | |
seems readable | |||
that is git log output | 07:28 | ||
masak | right. | 07:30 | |
iso would change that to 2015-11-09 16:23:53 <tz> | 07:31 | ||
a matter of preferences, I guess. | |||
llfourn | I guess that is a bit cleaner :) | ||
masak | to me as a Swede, <wd> <m> <md> hh:mm:ss <y> is a bit of an affront :P | ||
llfourn gumbles about Swedes | 07:32 | ||
masak | :P | ||
masak puts up a border control, just in case | |||
llfourn | apprently you can set a strftime if you want | ||
lizmat | looks like attempt #1 is going to be successful after all | ||
all checked in, and on one of the 3 Lufthansa flights leaving from FRA this morning | 07:33 | ||
masak | lizmat: "if at 0th you don't succeed..." | ||
lizmat | :-) | ||
0th is "didn't even try" to me | |||
:-) | |||
masak | by vacuous reasoning, the 0th attempt has to have been unsuccessful, otherwise there'd be no reason to try a 1st time. | 07:34 | |
07:34
Oatmeal joined
|
|||
masak is increasingly tempted to write a "Category Theory for Perl 6 programmers" slide deck | 07:35 | ||
llfourn | at least give it a 0th attempt masak++ | 07:36 | |
masak | :) | 07:37 | |
lizmat | masak: well, duh, I mean, since I didn't try the 0th time, I had to do the 1st time :-) | ||
masak | whether you tried a 0th time or not is outside of our concerns. we're discussing whether the attempt was *successful*. :P | 07:38 | |
llfourn | ...the attempt at trying? | ||
masak | no, no. that's what the name of the song is *called*. | ||
third base! | 07:39 | ||
llfourn | :P | ||
masak imagines a mashup between Abbott & Costello and Alice in Wonderland would work quite well | 07:40 | ||
llfourn doesn't even think that match up will make it's 0th attempt | |||
07:42
Oatmeal left
|
|||
masak | the reason I'm no longer convinced "inject Qtrees in a block with a jury-rigged outer" is a good solution: it works well in expressions, but it doesn't work well in non-expression contexts, where an (auto-invoked) block is not expected and not "syntactical". | 07:42 | |
instead, I'm toying with the idea of somehow tying *identifiers* to a particular context. that should be enough. | 07:43 | ||
if neither of these ideas work, I'm not sure how we'll get hygiene in Perl 6 macros. | |||
07:45
abraxxa joined
07:46
abraxxa left
|
|||
TEttinger | haha macro discussions all over. I wrote a macro to write macros in privmsgs to a clojure-evaluating IRC bot | 07:46 | |
(defmacro my-define [name# args# [f# & body#]] `(defmacro ~(symbol name#) ~args# (list 'list ''~f# ~@body#))) | 07:47 | ||
and no, this is not what clojure should ever look like | |||
macro macros are I think forbidden in Leviticus along with eating shrimp and wearing polyester | 07:48 | ||
masak | in Perl 6 we aim to allow it, because we're groundbreaking that way | 07:49 | |
TEttinger | clojure does allow it, it's just never pretty. because you have multiple levels of quotation, etc. | 07:50 | |
masak | one macro already has multiple levels. | ||
it's interesting to learn to think in terms of those levels. | |||
mst | masak++ # with great power comes great new synthetic fabrics from which one can construct clothes to wear while eating shrimp | 07:51 | |
07:51
xpen left
|
|||
masak | my latest metaphors are "early" (when the macro is running) and "late" (when the code that the macro injected finally runs) | 07:51 | |
07:51
xpen joined
07:53
RabidGravy joined
|
|||
mst | masak: I would commend unto you the lisp known as 'kernel', which is an fexpr based lisp that somebody did a phd thesis on | 07:53 | |
it eliminates the concept of a macro entirely | |||
this is fascinating and awesome | 07:54 | ||
07:54
abraxxa joined,
abraxxa left
|
|||
mst | it basically generalises macros to runtime, with compile time rewriting merely being an optimisation and/or a chance ot fail type checks fast | 07:54 | |
masak | mst: do you have a reference of some sort? consider me intrigued? | ||
s/\?$/./ | |||
07:54
Oatmeal joined
|
|||
mst | lambda-the-ultimate.org/node/4093 web.cs.wpi.edu/~jshutt/kernel.html | 07:55 | |
masak | thanks. | ||
TEttinger | mst: oh I know you :) | ||
shadowcat-mst made a few kernels | |||
mst | note, I pulled those from google just now but unless I misremember those two pages were my jumping off point for my original research | ||
you mean Wat.pm, the perl5 port of wat-js | |||
I guess | |||
TEttinger | yes | 07:56 | |
mst | which was an unbelievably liberating thing to write in | ||
TEttinger | you're at least listed on the Kernel Underground thing | ||
mst | I've no idea what that is | ||
TEttinger | (blog post? compilation?) | ||
mst | my current focus is a perl5 based interpreter for a prolog-with-non-extralogical-side-effects language | ||
masak | mst: generally the big barrier that I find when wanting to borrow from other languages, is that so many assumptions from the rest of the language (runtime/compile time) creep in and set the tone of how macros come out. | ||
07:57
abraxxa joined
|
|||
mst | masak: basically, an fexpr is a runtimer macro, where apply must be called explicitly to get 'normal' calling results | 07:57 | |
07:57
xpen_ joined
|
|||
mst | TEttinger: amusing to be known in #perl6 for something other than my mainline CPAN work ;) | 07:57 | |
TEttinger | mst: that's... the simplest explanation I've ever gotten of fexprs. thanks | ||
masak | amazing that mst explains fexprs to TEttinger on #perl6 :P | 07:58 | |
mst++ | |||
TEttinger | axisofeval.blogspot.com/2011/09/ker...round.html | ||
mst | aha | ||
masak | mst: while I have your attention -- do you think it's sane at all that Qtrees (Perl 6's unannounced highly refined AST format) come with a lexical context? (for variable lookup, etc) | 07:59 | |
TEttinger | there's I mean, a lot of people here. it makes sense that some are famous! | ||
masak | mst: this basically falls out of "macros are hygienic", but recently I've come to hunt around for alternatives. | 08:00 | |
mst | well, yes. but normally I'm famous for inventing perl5's most popular ORM, or helping out co-ordinating the perl6 -> Moose -> perl6 thing, or inventing the State of the Velociraptor keynote for perl5 so people stopped whining about Larry mostly talking about perl6, or | ||
Wat.pm is kinda minor, just something I played with | |||
08:00
xpen left
|
|||
dalek | kudo/nom: 11f325b | lizmat++ | src/core/List.pm: Make List.reverse 4x faster 6x faster if it is an empty List/Array |
08:01 | |
mst | then the wat creator wanted different things than my suggestions then I found it was hopelessly non-performant for what I wanted then I realised that was because I was doing it wrong | ||
in that Wat.pm was a lousy implementation of wat and then even if it had been a good one it was the wrong runtime for what I was doing | |||
but man I <3 fexprs | 08:02 | ||
TEttinger | yes, but since I'm not really a user of perl 5 or perl 6 at the moment (I am interested in the language and I might learn more at some point), I see "mst" and I think "that's that wat person..." | ||
mst | I will -so- be going back to that at some point | ||
TEttinger: yeah, and that's totally cool. it's just ... not what normally happens :D | |||
TEttinger | heh | ||
I like perl 6 for its language/grammar stuff | 08:03 | ||
mst | it'd be like larry running into somebody at a perl conference and them going "HEY YOU'RE THAT GUY WHO WROTE RN!" | ||
TEttinger | I don't know any other language that handles grammar like perl (6) does | ||
mst | OTOH I'm glad people who aren't me have noticed Wat | ||
right. the grammars are amazing | |||
I'm mostly a perl5 hacker, but Inline::Perl6 for perl5 exists because I asked the Inline::Perl5 author nicely because I want access to the grammars from perl5 | 08:04 | ||
masak: I think having each node point to its lexical context seems like ... I'm not really an AST expert, but that is, logically, exactly what I'd expect | 08:05 | ||
masak | \o/ | ||
mst: well, refining it a bit -- I've also come to realize that sometimes people create "contextless" AST nodes. | 08:06 | ||
TEttinger | I don't even know what I mostly am these days. I program a lot of Java for months at a time, then C# as the project changes, with an end goal of using something like Clojure to consume the java lib I wrote with a java lib someone else wrote to render the graphics I made in C#... | ||
masak | mst: basically by calling constructors to make them. | ||
mst: I call them "synthetic Qtrees". | |||
08:06
espadrine joined,
zakharyas joined
|
|||
masak | mst: these basically latch on to the first context they come in contact with. usually as they're injected somewhere. they give some slight un-hygiene relief when needed. | 08:07 | |
mst | that's probably sensible | 08:08 | |
masak | mst: one reason I think it's the right choice for Perl 6 Qtrees to have a lexical context is that... I can't really see Perl 6 code working *without* it. | ||
mst | kinda ... oh gods, er, dynamic scope except rotated through 90 degrees | ||
I can't find a better way to express it | |||
but it smells right to me | |||
masak | mst: lexical context is so tied up with everything Perl 6 gets up to. even operators are lexically scoped. | ||
08:08
spider-mario joined
|
|||
mst | yep. true of wat as well :) | 08:09 | |
masak | \o/ | ||
mst | having the nodes as they're interpolated glom onto the lexical scope as given seems totally reasonable | ||
the 'dynamic scope except rotated through 90 degreees' explanation sucks if you don't already know what I mean | 08:10 | ||
but if that metaphor makes sense to you I'm 99% sure we're on the same page | |||
08:11
darutoko joined
|
|||
masak | yeah. | 08:12 | |
you've already helped a bunch. thanks. | |||
08:14
rindolf left
|
|||
RabidGravy | I don't suppose there is a built in regex for matching curlies in strings? i.e. for getting at the " Foo { # some code }" ? | 08:15 | |
masak | RabidGravy: problem is, it's already interpolated by the time you have the string value. | 08:16 | |
RabidGravy: at least if you really meant "" there | |||
RabidGravy | no I mean strings with that in, the "" was a short cut for "perl does it so maybe it exposes it somehow" ;-) | 08:18 | |
llfourn | RabidGravy: maybe check the $~Quote grammar? | ||
RabidGravy | as I have singularly failied to persuade anyone else to do it I'm trying to implement tools.ietf.org/html/rfc6570 | 08:19 | |
llfourn | RabidGravy++ | 08:20 | |
dalek | kudo/nom: 3d7f846 | lizmat++ | src/core/List.pm: Make List.rotate 30% faster |
08:21 | |
08:27
xfix left
|
|||
RabidGravy | the Perl6::Grammar make my brane hurt | 08:27 | |
08:28
ely-se joined
|
|||
lizmat | gate& | 08:29 | |
08:29
lizmat left
|
|||
llfourn | it looks like the Q grammar is more confusing :P | 08:29 | |
08:33
spider-mario left
08:42
apejens_ is now known as apejens
|
|||
diakopter | mst: which wat is that | 08:50 | |
mst | diakopter: github.com/shadowcat-mst/wat-pl/ | 08:51 | |
RabidGravy | I wot not what wat | ||
masak .oO( I will not wot it on a train ) | 08:56 | ||
08:59
azawawi joined
|
|||
azawawi | hi | 08:59 | |
masak | hi azawawi | 09:04 | |
RabidGravy | marning chief | ||
timotimo | o/ | 09:07 | |
[Tux]: the latest test and test-t bench is not that much faster than yesterday's, eh? as in: in noise? | 09:08 | ||
[Tux] | yep | 09:09 | |
RabidGravy | whip the hamsters harder | ||
masak | here's an illustration about "Qtrees have lexical scopes", using the (NYI) melt() built-in: `my q; { my x = 42; q = quasi { x } }; my x = 5; say melt(q)` # 42 | ||
timotimo | damn | ||
[Tux] | timotimo, I currently see all between 16.5 and 19.5 as "no-change: noise" | 09:10 | |
masak | but `my q; { my x = 42; q = Q::Identifier("x"); say(melt(q)) }; my x = 5; say(melt(q))` # 42 5 | ||
timotimo | i was hoping for a tiny improvement from my patches, but it's not likely that your code would run through very many subs or operators that have a :D or :U annotated return type | ||
09:10
sa_ joined
09:11
Actualeyes left
|
|||
azawawi starts buildings rakudo on linux and windows | 09:12 | ||
s/buildings/building/ # need morning coffee | |||
El_Che | azawawi is a fancy guy with a specific coffee blend for morning, noon and evening :) | 09:15 | |
RabidGravy | try building it on a rev 'B' Raspberry Pi, you'd be able to get in a three course dinner rather than just coffee ;-) | 09:16 | |
azawawi | RabidGravy: i have two boards over here :) | ||
RabidGravy: it is very slow... already did that :) | 09:17 | ||
DrForr | Oo, three-course meals. I had that for lunch by accident in Lyon :) | ||
azawawi | RabidGravy: the CPU on a RPi is garbage compared to www.intel.com/content/www/us/en/com...stick.html :) | 09:18 | |
RabidGravy | I've got an Intel Galileo knocking around somewhere | 09:21 | |
09:21
rindolf joined
|
|||
azawawi | did anyone try compiling rakudo on an Intel compute stick? | 09:22 | |
09:23
quester left
09:26
sa_ left,
polettix left,
dakkar joined
|
|||
RabidGravy | I guess if I saw one in Maplins or something I would buy it, but not sufficiently motivated to buy one online | 09:28 | |
azawawi starts using rakudobrew on windows :) | |||
tadzik++ | 09:29 | ||
09:29
pmurias joined
|
|||
tadzik | :) | 09:31 | |
yoleaux | 10 Nov 2015 18:38Z <nine> tadzik: github.com/tadzik/File-Find/pull/15 | ||
tadzik | oh | ||
yay, fixes :) | |||
RabidGravy | PRs! PRs! | ||
;-) | |||
azawawi | tadzik: i would remote the SETX advice... btw | 09:32 | |
tadzik: SETX has just truncated my Path back to 1024 lol | |||
tadzik | ( ° ー°) | ||
azawawi | tadzik: superuser.com/questions/387619/over...-with-setx | ||
tadzik: so remove it :) | 09:33 | ||
tadzik | I have no idea about windows :) | ||
I'm gonna need PRs | |||
azawawi | tadzik: also in the windows instructions, SET PATH=%USERPROFILE%\rakudobrew\bin;%PATH% | ||
tadzik: and that you shall have, champion of the rakudo land :) | 09:34 | ||
pmurias | I'm planning to apply for a TPF grant to work on rakudo-js. I need to choose a use case to focus on, so I would love to know what people want to use it for. | ||
tadzik | haha, thank you :) | ||
"SETX has just truncated my Path" sounded like something spiritual and klingon to me | |||
RabidGravy | tadzik, while you're in the mood, fancy looking at github.com/tadzik/JSON-Unmarshal/pull/11 ? Then I can get on an do the next thing ;-) | ||
pmurias | blog post with a few ideas: blogs.perl.org/users/pawel_murias/2...first.html | ||
azawawi | tadzik: my path was truncated by the SETX :) | 09:35 | |
tadzik | RabidGravy: oh, right on it :) | ||
azawawi: ok, I get it now :) | |||
RabidGravy | you're a star | ||
09:36
xinming_ joined
|
|||
azawawi starts reading pmurias's post | 09:36 | ||
masak | url? | ||
tadzik | oh, btw | ||
masak | oh, I see it, nvm :) | ||
tadzik | can we leave the liberty of opening the links in the same or the new tab to the user, rather than taking it away from them, on modules.perl6.org? | 09:37 | |
azawawi | pmurias: cool. you need to look on github.com/fglock/Perlito/ then | ||
pmurias: and github.com/azawawi/perl6-electron/...ailador.p6 :) | |||
konobi | pmurias: npm and browser. you can take an npm package and get it spat out into browser aware code using browserify/webpack. | ||
masak | pmurias: the first one strikes me as the one I'd like to see the most. | 09:38 | |
pmurias: only thing that made me hesitate was the last one. :) but surely those two are related? | |||
tadzik | RabidGravy: I personally prefer my elses cuddles, but since you wrote the first else in that file I'll let you have dibs on the coding standard :P | ||
konobi | pmurias: reactjs/jquery/react.native don't make sense | ||
pmurias: btw... I'm happy to help out. I'm a nodejs commiter, community moderator, used to work at joyent... so been around node for nearly as long as it's existed and I know npm well, along with the authors. | 09:40 | ||
RabidGravy | tadzik, for a long time I was more in favour of the "curlies on their own line" style but have only gradually come round to the more common style ;-) | 09:41 | |
konobi | and no doubt someone could claim that I've had a bunch of Perl in my history too =0) | ||
pmurias | masak: having a simple REPL will be easy if rakudo-js is good enough to write a web app | ||
tadzik | you can pry my elses from their warm cuddles! :P | ||
RabidGravy: anyway, merged, thanks a lot :) | |||
RabidGravy | groove-tastic! love you long time | 09:42 | |
pmurias | konobi: the main tradeoff for targeting node.js is how much I should focus on supporting all the IO stuff | ||
azawawi | konobi: did you work on electron? is it easy to retrofit electron with a perl6 engine? :) | ||
09:43
eliasr joined
|
|||
pmurias | konobi: using npm/webpack would likely be a good way to package the perl 6 app for the browser | 09:44 | |
konobi | pmurias: none for now | ||
masak finds that he doesn't have a strong opinion either way on the cuddled-elses topic | |||
konobi | just support console.log in the meantime | ||
masak | I like it when people/code are consistent, though. | ||
azawawi | tadzik: strawberry perl's gcc make rakudobrew fail... needed a "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat" for it to work | ||
konobi | azawawi: no... electron came out of the atom folks. It's probably likely to be doable with perl6, assuming there are c++/c headers available | 09:45 | |
pmurias: after console.log() then you can see where the I/O takes you. | 09:46 | ||
browserify will give you some of that for free in the browser, for sure. | |||
azawawi | konobi: we already have an integration with it using my Electron module via a JSON RPC bridge but that is slow compared to direct API access ofcourse | ||
azawawi checks his electron module again :) | 09:47 | ||
pmurias | azawawi: it should be possible to embed moar as a node.js module | ||
09:47
srvsh left
|
|||
azawawi | pmurias: that would be awesome | 09:48 | |
konobi | yeah... that may well be an easier approach | ||
azawawi: node native addons aren't too tricky | |||
RabidGravy | any travis ci afficionados in the house? WTF is travis-ci.org/sergot/http-useragen...s/90692923 all about | ||
azawawi | konobi: any links on that topic? | 09:49 | |
09:49
rindolf left
|
|||
konobi | azawawi: the nodejs docs... also look at the npm packages "bindings" and "nan". | 09:49 | |
iirc, rvagg is now doing a series of articles on the subject too | 09:50 | ||
pmurias: i had a think about your questions since last... and I think I know where the disconnect may be. | 09:51 | ||
where does nqp stop and where does p6 and p6 modules start | 09:53 | ||
azawawi | RabidGravy: restart the build to make sure via Travis CI ui | ||
RabidGravy: i bet it is a panda bug | |||
RabidGravy: pandas are known to love bugs :) | |||
09:54
rindolf joined
|
|||
konobi | azawawi: i'm on PST... but I'm happy to give pointers if/when needed | 09:54 | |
azawawi | konobi: github.com/TooTallNate/node-bindings and github.com/nodejs/nan, right? | 09:55 | |
konobi | yup | 09:57 | |
the node source is a good place to look at the c++/js bridge | |||
i've done several addons myself... but they've generally been fairly basic | 09:58 | ||
azawawi: but since moar already uses libuv... some things should be a bit easier | 10:01 | ||
10:03
duncan_dmg joined
|
|||
timotimo | shaunlebron.github.io/parinfer/ - this looks quite cute | 10:04 | |
konobi | azawawi: you probably want to start with plain node.js first... and then deal with hooking it up to electron | 10:06 | |
azawawi | timotimo: cool | ||
konobi | bative addons with electron are um... interesting | ||
10:06
andreoss joined
|
|||
konobi | *native | 10:06 | |
azawawi | konobi: that's the json bridge im using atm github.com/azawawi/perl6-electron/...pp/main.js | 10:07 | |
konobi | k... these sleepy meds are kicking in | ||
azawawi: nah... there's an electron-gyp that you need to use | |||
10:07
grondilu joined
|
|||
azawawi | konobi: i will look into it... good night :) | 10:09 | |
konobi | nn | ||
azawawi | konobi: thanks for info | ||
10:13
polettix joined
10:17
rindolf left
10:22
donaldh joined
10:28
llfourn left
10:30
rindolf joined
10:44
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:45
pmurias_ joined
10:49
pmurias left
10:53
pat_js joined
|
|||
jnthn | morning, #perl6 | 10:57 | |
abraxxa | hi! | 11:00 | |
RabidGravy | marnin | 11:01 | |
compare: | 11:04 | ||
m: my $str = "hsjsjs"; say $str{"foo"} | |||
camelia | rakudo-moar 3d7f84: OUTPUT«Type Str does not support associative indexing. in block <unit> at /tmp/qGApJZ7jjy:1Actually thrown at: in block <unit> at /tmp/qGApJZ7jjy:1» | ||
RabidGravy | m: my $str = "hsjsjs"; say $str{"foo"}:exists | ||
camelia | rakudo-moar 3d7f84: OUTPUT«False» | ||
11:05
TEttinger left
|
|||
RabidGravy | personally I'd be happier if the second blew up like the first | 11:05 | |
11:08
pyrimidi_ joined
11:10
Zoffix joined
|
|||
dalek | kudo/nom: 196c5ed | (Tomasz Konojacki)++ | / (4 files): fix nmake clean |
11:11 | |
kudo/nom: 92f9039 | jnthn++ | / (4 files): Merge pull request #581 from xenu/nom Fix "nmake clean" |
|||
11:11
pyrimidine left
|
|||
RabidGravy | 'cause there's no end to the stupid I type | 11:11 | |
jnthn doesn't feel too strongly either way on it | 11:12 | ||
I can see the convenience angle of being able to succinctly ask "will this indexing give me something" | |||
dalek | kudo/nom: a8560f5 | cygx++ | src/core/IO/Path.pm: use no longer new (but still shiny) open mode :x for spurt(:createonly) |
11:13 | |
kudo/nom: f522533 | jnthn++ | src/core/IO/Path.pm: Merge pull request #575 from cygx/createonly-x use no longer new (but still shiny) open mode :x for spurt(:createonly) |
|||
ilmari | where does the "nope" list live? | 11:15 | |
moritz | "nope" list? | ||
ilmari | list of things that are officially out of scope for 6.christmas | ||
jnthn | It's not really been maintained, but gist.github.com/jnthn/040f4502899d39b2cbb4 | 11:16 | |
ilmari: Is a PR to fix the encode buffer overflow still on your todo list, btw? | 11:18 | ||
ilmari | jnthn: yes | ||
jnthn | OK, thanks :) | ||
11:21
dayangkun left
|
|||
donaldh | jnthn: is Mu.Capture intended to handle classes? It doesn't seem to have sensible behaviour for primitives, e.g. Int or ranges | 11:29 | |
m: (1..*).Capture.say | |||
camelia | rakudo-moar 3d7f84: OUTPUT«\(:max(Inf), :min(1))» | ||
donaldh | m: (1..*,).Capture.say | 11:30 | |
camelia | rakudo-moar 3d7f84: OUTPUT«\(1..Inf)» | ||
jnthn | Those both do as I'd expect, I think | ||
Mu.Capture takes the attributes declared with an accessor | |||
donaldh | m: 1.Capture.say | ||
camelia | rakudo-moar 3d7f84: OUTPUT«\()» | ||
jnthn | And makes them be named args | ||
That in turn supports unpacking | |||
It's fairly reasonable to want to unpack a range into its min and max, I think | 11:31 | ||
Just as a Rat can be unpacked into its numerator and denominator | |||
And presumably complex into the components | |||
For Int/Num/Str, it's not really clear you'd even want to unpack them | 11:32 | ||
donaldh | Int doesn't capture | ||
jnthn | m: say \(1) | ||
camelia | rakudo-moar f52253: OUTPUT«\(1)» | ||
jnthn | Note that this is the syntax for writing a Capture literal | ||
.Capture exists primarily for the purpose of saying "give me something to bind against a signature", the use case being unpacking | 11:33 | ||
moritz | blog.burntsushi.net/transducers/ # storing ordered sets and hashes (with integer values) in a finite state machine | ||
jnthn | We could in theory override .Capture on Int/Num/Str and make it have a value named parameter, but again, given the use case is unpacking, it's not clear why you'd want it. | 11:34 | |
donaldh | I thought it should capture positionals too? | ||
But a list of 1 is ambiguous | |||
moritz hasn't really had a cause to work with Capture objects directly | |||
11:35
azawawi left
|
|||
donaldh | Well, nor I but I'm golfing a NPE on JVM and realized I don't understand the behaviour | 11:35 | |
r: 1.Capture.say | 11:36 | ||
camelia | rakudo-jvm 3d7f84: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar f52253: OUTPUT«\()» | |||
jnthn | donaldh: .Capture does *not* mean the same as \(...) | ||
It means "turn yourself into something we can unpack during a signature bind" | |||
The only things that populate the list part of a capture are List and Match | 11:37 | ||
donaldh | m: (1,2,3).Capture.list.say | 11:38 | |
camelia | rakudo-moar f52253: OUTPUT«(1 2 3)» | ||
donaldh | m: (1).Capture.list.say | ||
camelia | rakudo-moar f52253: OUTPUT«()» | ||
jnthn | m: (1,).Capture.list.say | ||
camelia | rakudo-moar f52253: OUTPUT«(1)» | ||
jnthn | m: (1).list.Capture.say | ||
camelia | rakudo-moar f52253: OUTPUT«\(1)» | ||
jnthn | .Capture does not consider a single item to be a degenerate list | ||
If it did that then you'd not be able to unpack rationals, complexes, pairs, objects, etc. | 11:39 | ||
donaldh | I guess intuitively I expect it to behave as a parameter list would. | ||
jnthn | It doesn't, as I've now said about 5 times. | ||
donaldh | I realise that. | ||
jnthn | And it can't if it's to support unpacking | 11:40 | |
We could introduce yet another method that we can call to get soemthing to signature unpack | |||
But given a Capture is what you bind against a signature, it's the obvious fit. | |||
What Int/Str/Num would do in response to .Capture is a reasonable question. | 11:41 | ||
donaldh | Yes. I think that's the issue | ||
m: "str".Capture.say | 11:42 | ||
camelia | rakudo-moar f52253: OUTPUT«\()» | ||
jnthn | It is, but in a sense it also explains why we've never run into the issue in real code: you'd never write an unpack of a Str parameter in a signature | ||
(Because there's nothing to destructure) | 11:43 | ||
donaldh | Sure. | ||
jnthn | I agree it looks odd to have the value "vanish" | ||
I'm just not sure what the most logical thing to do is, especially when whatever we do will probably meet about zero real world use. | 11:44 | ||
donaldh | Document it maybe? | ||
masak | "But ultimately, because the parser for the language is written in the language itself, it means you can change the parser as you need to, without all the problems of source code filtering." -- perlhist.com/perl6/damian-conway/ | 11:46 | |
donaldh | Thanks for helping me understand it. I'll look at the underlying NPE. | ||
jnthn | m: class A { }; A.Capture | ||
camelia | ( no output ) | ||
jnthn | j: class A { }; A.Capture | ||
masak | I think what Damian has identified may be a necessary condition -- maybe -- but it's not a sufficient one :) | ||
camelia | ( no output ) | ||
jnthn | Hmm, I thought that might explode too | ||
masak | because if it were, then we'd have language mutability already :) | ||
jnthn | j: class A { }; say A.Capture | ||
camelia | rakudo-jvm 3d7f84: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/5KMCGOnGzC:1» | ||
jnthn | Ah | 11:47 | |
j: say Capture.new | |||
camelia | rakudo-jvm 3d7f84: OUTPUT«\()» | ||
donaldh | Yep, it's the say method that explodes | ||
Capture.say that is | |||
jnthn | donaldh: At a guess, $!list or $!hash ends up not set and somehow we don't check for it in a good way | ||
Probably .gist or .perl | |||
masak: We do have it already | |||
masak: It's just not very comfortable or convenient to do :) | |||
masak | ok, granted. | 11:50 | |
I guess even switching "all the problems of source code filtering" for inconvenience can be considered a step up ;) | 11:51 | ||
jnthn | Aye. Now we "just" need to make it relatively easy, safe, and beautiful, to do it. :) | ||
And with an API we're willing to support for decades. | 11:52 | ||
dalek | osystem: be1540f | RabidGravy++ | META.list: Add JSON::Infer github.com/jonathanstowe/JSON-Infer |
||
masak | jnthn: sounds like a plan. | ||
masak has a "slang typology" blog post brewing in the back of his mind | |||
11:53
polettix left
|
|||
RabidGravy | I was going to wait until december 3 to do that (so it took a year) but there's no point in sitting on it | 11:53 | |
masak | RabidGravy++ # gun-jumping | ||
jnthn | m: say 'bookkeeper' ~~ /[(.)$0]+/ | 11:55 | |
camelia | rakudo-moar f52253: OUTPUT«「ookkee」 0 => 「o」 0 => 「k」 0 => 「e」» | ||
jnthn | Hmm | 11:56 | |
Under the definition TimToady gave for backref yesterday, that can now only match "oo" | |||
moritz | doesn't sound very composable | ||
11:57
andreoss left
|
|||
jnthn | Basically 'cus you look at the first capture to $0 and the latest one and take the substring $first.from ..^ $latest.to | 11:57 | |
donaldh | ugh, perl Configure.pl blows up | 11:58 | |
jnthn | I'll end up not using the backref method anyways 'cus we're smart enough to compute backrefs without having to fully assemble a Match object | ||
But what I've got is semantically equivalent to the one added yesterday | |||
I wonder if we should require the matches we factor in to be contiguous. | 11:59 | ||
donaldh | gist.github.com/donaldh/5b61e9da8bbfa967a35c | ||
RabidGravy | if anyone's bored sticking some Perl 6 examples on notejam.net/# might be a fun project | ||
jnthn | That'd still address rt.perl.org/Ticket/Display.html?id=88340 without, I think, breaking the test | ||
moritz: Any thoughts? :) | 12:00 | ||
12:00
andreoss joined
|
|||
jnthn | donaldh: Is that blowing up, or just being noisy? | 12:00 | |
jdv79 | RabidGravy: maybe i've been burnt more times than its helped by why do that? | 12:01 | |
masak remembers fondly how he got 'bookkeeper' ~~ /[(.)$0]+/ to work under GGE years ago :) | |||
donaldh | First run I didn't get a Makefile. Now I seem to. | ||
jdv79 is reminded of ws-* and soap | |||
moritz | jnthn: sorry, on the phone | ||
donaldh will investigate | 12:02 | ||
jdv79 | working with json directly is pretty easy so maybe i'm missing the benefits you are looking for | ||
jnthn | donaldh: It was probably fallout from the cross-compile patches applied some days back. They bust the Windows configure totally, but seems there's a couple more issues. | 12:04 | |
RabidGravy | jdv79, I'm not seeing the part where I suggested you were compelled to use it | ||
jdv79 | you didn't and i didn't infer that either. i merely asked out of curiousity your opinion of why that's cool. | 12:06 | |
12:07
mayuresh_ joined,
mayuresh_ left
12:08
zakharyas left
|
|||
jnthn | moritz: np. :-) fwiw, I've implemented what I suggested and it seems to keep the ookkee working and fix the issue in the ticket | 12:08 | |
12:08
xpen_ left
|
|||
RabidGravy | I actually hate REST/JSON interfaces but acknowledge they are nearly ubiquitous because all the cool kids can't be bothered with reading specifications so don't like more formally defined things | 12:09 | |
this stuff makes some of the reasons it irritates me go away | 12:10 | ||
jdv79 | ah | 12:11 | |
moritz | RabidGravy: I like them, because they are much easier than the average XML-based RPC call | ||
12:12
kid51 joined
12:13
aborazmeh left
|
|||
RabidGravy | moritz, that seems to be the common position (my cynicism aside,) but the lack of formal descriptions means that in a large number of cases there's a lot of donkey work that a machine could do for you | 12:13 | |
moritz | RabidGravy: agreed | ||
jnthn | D'oh, turns out fixing the backreferences to have the Perl 6 semantics we want has busted some :P5 modifier tests. | 12:14 | |
moritz | RabidGravy: something like SOAP with less bloat and fewer confliciting variants wouldn't be bad :-) | ||
jdv79 | my guess is the current state of things is part of a violent overreaction to the ws-* era type stuff | ||
12:15
mayureshkathe joined
|
|||
jdv79 | maybe the pendulum will swing back a bit | 12:15 | |
12:15
pmurias_ is now known as pmurias
|
|||
moritz | aye | 12:15 | |
mayureshkathe | it always does swing back. :) | ||
jnthn | Most things in software seem to be cyclic. | ||
mayureshkathe | it's like all events in software are on a spring. | ||
moritz | the last time I tried to call a SOAP service, it wanted to use HTTP basic authentication, but when one didn't submit the header, the answer was a 200 OK with the error encoded in the XML | ||
jnthn | Apart from addiction to facilitating large scale re-use, which seems constant :P | ||
mayureshkathe | everything is almost the same, just that things move a bit forward | 12:16 | |
mostly that is. ;) | |||
moritz | so LWP::UserAgent refused to send the credentials, because it wanted to learn the realm first | ||
mayureshkathe | hello everybody. :) | ||
jdv79 | i'm more sympathetic to the new ways though. where i used to work a partner created a "webservice" for us in 100% .Net style. we are a perl5 shop so were unable to talk to it. | ||
moritz | that's a very typical problem with SOAP: it tries to be indepenent of the transport layer, and so everybody has a different idea about how it interacts with the transport layer | ||
jdv79 | very ws-*-ish type of situation. | ||
moritz | hello mayureshkathe :-) | 12:17 | |
mayureshkathe | moritz, you might know me as "mayuresh" the guy with 'pxn' on his mind. | ||
just that someone stole my nick. :( | |||
moritz | :/ | 12:18 | |
mayureshkathe | que sera sera ... ;) | ||
btw, anyone out here has tried out "telegram" that new messager? | 12:19 | ||
RabidGravy | yeah, SOAP is somewhat hobbled by attempting to be transport agnostic | ||
mayureshkathe | it's a great replacement for whatsapp! | ||
anyways, the good thing is they have an open protocol and an api | |||
so we can write clients using what ever we wish to | 12:20 | ||
be our language of choice. :) | |||
message == messenger. :/ | |||
dang, i am getting nuttier with every passing moment | |||
messager == messenger. :) | 12:21 | ||
moritz | take a break/walk/meal/sleep? | ||
mayureshkathe | yeah, sleep. | ||
jdv79 | i wrote a "trasnport agnostic" frame for my llast employer but it used http as it was meant (mostly) and abstracted up a layer the transport switching | ||
mayureshkathe | haven't done that in a couple of day. | ||
moritz | m: say <walk meal sleep>.pick | ||
camelia | rakudo-moar f52253: OUTPUT«meal» | ||
mayureshkathe | :D | ||
jdv79 | that was fun; kinda | 12:22 | |
moritz | at $work we currently use AMQP/RabbitMQ and a custom, JSON-based protocol on top | ||
works with both events and RPC-style | |||
RabidGravy | a long time ago we had a soap thing over SSH | ||
jdv79 | soapy ssh - cleaner than all the rest | 12:23 | |
moritz loves SSH as a transport layer, as long has he doesn't have to manage the keys | |||
mayureshkathe | :) | ||
12:23
cygx joined
|
|||
RabidGravy | moritz, yeah I kind of over-used that JSON/MQ pattern in my last gig | 12:23 | |
moritz | RabidGravy: overused? how so? | 12:24 | |
jdv79 | moritz: how "custom"? | ||
12:24
mayureshkathe left
|
|||
cygx | ugexe: Net::HTTP does a `try require IO::Socket::SSL`, which makes precompilation fail with 'Missing serialize REPR function for REPR VMException' | 12:25 | |
jnthn: ^^ should VMException to be serializable? | |||
moritz | jdv79: very custom :-). Basically a structure with header and payload, where the header defines things like message ID, response address, and message type; then the message type (and version) is used to locate a json schema to validate the body | 12:26 | |
jnthn | cygx: Not really | ||
cygx: Not sure how we could sensibly do that | |||
cygx: Is it doing that "try require" at BEGIN time? | |||
jdv79 | oh, schema'ed. makes sense. we just flew schemaless. | 12:27 | |
moritz | the schema files are a bit of a paint to write, but very useful | 12:28 | |
jdv79 | well, yeah. i guess we basically did the same dance but just in raw code. | ||
cygx | jnthn: it's in the mainline of a module that gets precompiled | ||
jdv79 | fastest to market and all. whatever works first:) | 12:29 | |
cygx | ( github.com/ugexe/Perl6-Net--HTTP/b...ler.pm6#L3 specifically ) | ||
jnthn | cygx: Hmm. Maybe make sure to clear $! | ||
cygx | jnthn: adding a $! = Nil does the trick | 12:31 | |
dalek | p: a54139b | jnthn++ | src/QRegex/Cursor.nqp: Fix backref semantics with multiple captures. We now look at the most recent contiguous sequence of captures, and the backref is the string from $first.from ..^ $last.to. |
||
p: 6bd8e5b | jnthn++ | src/QRegex/ (2 files): Still use simple backref semantics for :Perl5. |
|||
12:32
kaare_ joined
12:34
Skarsnik joined
|
|||
RabidGravy | moritz, over-used in the sense that what could have been otherwise evolved into a type of service bus thingy | 12:35 | |
jnthn | m: say ~('aaaaa' ~~ /(\w)+$0/) | 12:36 | |
camelia | rakudo-moar f52253: OUTPUT«aaaaa» | ||
12:36
azawawi joined
|
|||
azawawi starts working on pg arrays for DBIish | 12:36 | ||
abraxxa | azawawi: about your question, DBDish::Oracle still fails for queries with bind values | 12:38 | |
azawawi | abraxxa: hi | ||
Skarsnik | azawawi, \o/ | ||
azawawi | abraxxa: where is its repo? | ||
Skarsnik | and hello there | ||
abraxxa | azawawi: github fork of DBIish | 12:39 | |
azawawi | abraxxa: link it plz | 12:40 | |
dalek | kudo/nom: fdf95de | jnthn++ | tools/build/NQP_REVISION: Bump NQP for backref semantic correction. |
||
abraxxa | azawawi: github.com/abraxxa/DBIish | ||
dalek | ast: eff792a | jnthn++ | S05-capture/dot.t: Tests to cover RT #88340. |
||
azawawi | abraxxa: why not add it and we add an experimental tag on it? | 12:42 | |
abraxxa | azawawi: if the bind value is a Str it started working after calling explicitly-manage on the passed var | ||
12:42
srvsh joined
|
|||
dalek | kudo/nom: 43e9d37 | jnthn++ | src/core/ (2 files): Remove backref methods. We don't need to construct the entire match object just to backref things. |
12:42 | |
abraxxa | azawawi: but sometimes the value in the DB is null | ||
i *guess* that the pointer telling OCI if a value is null or not isn't pointing to a memory location full of zeros | 12:43 | ||
but as NativeCall doesn't seem to have a debugging mode and I don't have C knowledge I can't debug it | |||
floats and ints don't work at all | |||
azawawi | Skarsnik: initial example github.com/azawawi/DBIish/blob/mas..._arrays.p6 to start working on it | 12:44 | |
RabidGravy | azawawi, re your asking what else would be good to support in DBIish - an ODBC would be good, UnixODBC on the not-Windows should get it going | 12:45 | |
that way people can get at least some of the things that are not explicitly supported | |||
abraxxa | i haven't found anyone who could help me debugging it but I'd be glad if somebody could | 12:46 | |
azawawi | abraxxa: how about we add it as an experimental driver for oracle, while detailing in its documentation its problems. Please cleanup the code a bit and submit a PR. I do not want your hard work to be lost :) | ||
abraxxa | azawawi: I want it at least pass the current test suite | 12:47 | |
Skarsnik | azawawi, pg return string value without "" around it if there is no space like {test, "test 2"} | ||
andreoss | masak: have you had a change to take a look at my PR for ufo? | ||
RabidGravy | abraxxa, I'd offer to help but I really, really cannot be arsed to install Oracle as I'm still recovering having worked with it for five previous years | 12:48 | |
Skarsnik | but thx for improving DBIish x) | ||
azawawi | Skarsnik: the mapping is wrong as per github.com/perl6/DBIish/issues/29 | ||
abraxxa | RabidGravy: i'm using a Docker container for it | ||
takes just as long as it takes you to download about 9GB | |||
RabidGravy: but remote support would be great for me too | 12:49 | ||
RabidGravy | Ooh I didn't even know that was a thing | ||
azawawi | abraxxa: which oracle database edition are you using? | ||
abraxxa | i'm using this one hub.docker.com/r/wnameless/oracle-xe-11g/ | ||
azawawi: XE for dev, Enterprise in Prod | |||
12.1c instant client | |||
jnthn | .tell TimToady The backref thing ended up with a "latest contiguous matches" constraint being wanted (unless we want to bust another use case). Also, because we are smart enough already to be able to locate captures without constructing the full Match object, the backref methods on Match/Array weren't useful, so I tossed them. | 12:50 | |
yoleaux | jnthn: I'll pass your message to TimToady. | ||
masak | andreoss: no -- this is the first I hear about it. will look now. | ||
jnthn | Phew, that was the last regex engine RT before xmas :) | ||
abraxxa | I mainly need help with NativeCall itself and it's 'is rw' feature as OCI is full of pass by pointer | ||
jnthn | And another off the list :) | 12:51 | |
RabidGravy | jnthn++ # phew | ||
masak | andreoss: merged. thanks. | ||
Skarsnik | azawawi, well it's an example of what the current Pg.pm give me {Romance,"Alternate Universe","Slice of Life"} | 12:52 | |
12:53
ely-se left
|
|||
jnthn | lunch & | 12:54 | |
13:00
polettix joined
13:03
[particle] left,
sufrostico joined,
sufrostico left,
sufrostico joined
13:04
CIAvash left
13:05
[particle] joined
13:07
eliasr left
|
|||
azawawi | abraxxa: how about we add it as an experimental driver for oracle, while detailing in its documentation its problems. Also please cleanup the code a bit and submit a PR. I do not want your hard work to be lost :) | 13:08 | |
13:08
ely-se joined
|
|||
RabidGravy | and TODO the currently failing tests | 13:09 | |
it would make it easier for others to contribute | |||
13:12
domidumont joined
|
|||
RabidGravy | ook, that oracle docker image is truly the image that ate the whole world | 13:14 | |
good thing I have another machine to run it one | |||
13:16
AlexDaniel joined
|
|||
moritz | .oO( just put it in the cloud ) |
13:17 | |
abraxxa | RabidGravy: why? I run it in the background all the time without noticing | ||
13:17
nys joined
|
|||
RabidGravy | abraxxa, despite being an i7 room heater with plenty of memory the laptop is often challenged by a bunch of services that I run for testing stuff plus FreeBSD kvm and so forth | 13:21 | |
abraxxa | mine is a i5 with 8gb mem and a 256gb ssd on ubuntu with win7 as kvm if needed | 13:22 | |
RabidGravy | mind you this other machine appears to also be running rabbitmq, couchdb, liquidsoap and icecast | ||
azawawi | Skarsnik: after looking at the array problem, pg returns us a string that we need to transform back to a Perl 6 array | ||
Skarsnik: grammars to the rescue :) | 13:23 | ||
Skarsnik | azawawi, I know, just be careful about the single unquoted word x) | ||
azawawi | give me an example please :) | ||
abraxxa | rabbitmq here too ;) | 13:26 | |
Skarsnik | azawawi, {Romance,"Alternate Universe","Slice of Life"} the Romance string is unquoted because no space | 13:27 | |
and " are escaped with a \ | 13:28 | ||
13:29
kid51 left
|
|||
RabidGravy | it's just plain old CSV with curlies round it I guess | 13:29 | |
azawawi | Skarsnik: i see | 13:30 | |
Skarsnik | it probably follow savage.net.au/SQL/sql-99.bnf.html#array specification | 13:31 | |
13:33
yqt joined
13:35
cygx left
|
|||
Skarsnik | I wonder if I should write a module that work a bit like www-mechanize-tree-builder | 13:38 | |
it's pretty useless per se, since you can do my $xmldoc = $htmlparser->parse(LWP::Simple.get()); and search stuff on it with $xmldoc.elements(search pattern); but it's... slow | 13:43 | ||
13:44
telex left
|
|||
El_Che | Hi, pretty basic question: To get GNU type command line parameters through sub MAIN. Is it ok to duplicate something like this in the parameter signature: sub MAIN( Bool :$debug = False, Bool :$d = $debug) { } | 13:45 | |
I want the --debug and the -d as synonimes | |||
moritz | Bool :d(:$debug) but I don't know if that's implemented | 13:46 | |
psch | m: sub f(:$d($debug)) { say $d }; f :debug; f :d | ||
camelia | rakudo-moar 43e9d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tgCOI9zXnAShape declaration with () is reserved; please use whitespace if you meant a subsignature for unpacking, or use the :() form if you meant to add signature info to the function's typeat /t…» | ||
13:46
telex joined
|
|||
psch | m: sub f(:d($debug)) { say $d }; f :debug; f :d | 13:46 | |
camelia | rakudo-moar 43e9d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3hhYOPqVGwVariable '$d' is not declaredat /tmp/3hhYOPqVGw:1------> 3sub f(:d($debug)) { say 7⏏5$d }; f :debug; f :d» | ||
zengargoyle | ^^ moritz | ||
it's worked for me before | |||
psch | oh, long form only i think | ||
moritz | m: sub MAIN( Bool :d(:$debug) ) { } | ||
camelia | ( no output ) | ||
moritz | zengargoyle: ^^ | ||
El_Che | (my naive example does not work) | ||
moritz | m: sub MAIN( 42, Bool :d(:$debug) ) { } | 13:47 | |
camelia | rakudo-moar 43e9d3: OUTPUT«Usage: /tmp/clP0hPreLg [-d|--debug] 42 » | ||
moritz | at least for the help text it recognizes both | ||
Skarsnik | there is not something like getopt? | ||
13:47
Actualeyes joined
|
|||
psch | yeah, having both variables on the inside isn't supported | 13:47 | |
that's where i went wrong in my example | |||
moritz | Skarsnik: so far nobody seems to have bothered to write one | 13:48 | |
zengargoyle | there's some sort of getopt module, haven't looked at it. | ||
arnsholt | Well, sub MAIN covers most of your basic getopt needs | 13:49 | |
zengargoyle | but MAIN style forces --flag=value vs --flag value | ||
El_Che | the sort notation *is* pretty basic | ||
moritz | there's nothing wrong with writing a Getopt module for the ecosystem. | ||
psch | there's also a bitrotten PR around somewhere that uses a grammar to parse the CLI opts | 13:50 | |
El_Che | true, but a built-in for something like that is a big win | ||
psch | ...bitrotted? | ||
El_Che | certainly for small command line applications | ||
moritz | El_Che: which is why MAIN is built in :-) | 13:51 | |
and it's built in because it integrates tightly with the language | |||
psch | github.com/rakudo/rakudo/pull/324 in case anyone wants to pick this up, i might give it another go in a few weeks too if no one else does | ||
moritz | a generic option parser doesn't | ||
El_Che | moritz: have you met UNIX sysadmins? they are lazy so they use the short switches :) | ||
psch | it kind of got warnocked back then, thanks for moritz++ at least to comment :) | ||
moritz | fwiw I still think it's dumb to join things just to reparse them later on :/ | 13:52 | |
psch | i don't disagree in general, but i haven't found a better solution there... | 13:53 | |
well, "hadn't found a better solution". i didn't really spend any time on it again after "lets wait what other devs say" :) | 13:54 | ||
zengargoyle | what does ++BUG ++/BUG enable/do? | 13:55 | |
ShimmerFairy | fwiw, I thought we agreed the ++BUG stuff was silly and shouldn't be around anymore :) | ||
zengargoyle | i've seen it mentioned a few times, but not IRL | ||
psch | ShimmerFairy: if we did that was probably after 2014-10-25 :) | 13:56 | |
moritz | zengargoyle: it's meant to do some namespacing | ||
zengargoyle: like, options for different subsystems | |||
ShimmerFairy | psch: it was :) . The consensus as I recall was that it's awkward, its purpose is unclear (the most useful idea for it, ++BUG, is never elaborated on), and it probably was one of those "I bet this would be cooool!" things :) | 13:57 | |
arnsholt | psch: From the looks of it, it should be possible to parse an argument list using just a variable to keep track of whether you're inside a delimited argument list or not | ||
Since it looks like they don't really nest | |||
ShimmerFairy | I'd much prefer ImageMagick's use of simple ol' parentheses to group together objects, if we needed core Perl 6 to do it in the first place :) | 13:58 | |
arnsholt: actually, S19 does allow for nesting, by add more pluses! | 13:59 | ||
*adding | |||
moritz | so you need a stack of delimiters | ||
so, parse with small PDA | 14:00 | ||
ShimmerFairy | Honestly, unless someone can come up with a real justification for the ++FOO ++/FOO stuff, I think the best course of action is to take that outdated cruft out of S19, and let modules handle that kind of desired option parsing. Core Perl 6 certainly hasn't needed it. | 14:01 | |
masak | agree, but ++FOO ++/FOO is only a symptom of the real ailing S19 is suffering. | 14:03 | |
psch | well, ++BUG was intended for debuggers, which could already be hooked up with e.g. Debugger::CommandLine | ||
whether it's actually useful or not is a different question | |||
masak | which is that it tried to lead the way by being visionary. then reality largely caught up, and S19 hasn't updated. | ||
S19 is perhaps the synopsis currently the most fleshed out and then out-of-date. | |||
psch | anyway, i don't really have any chips in that pot, i just wanted to link to an approach that exists in case its of use for anyone | 14:04 | |
ShimmerFairy | psch: to clarify my request for justification, is there something in our current implementation that's dying for that kind of namespacing/nesting | ||
psch | ShimmerFairy: that sounds like a circular argument to me. "we don't need this feature because we don't use it yet" | ||
ShimmerFairy | masak: yeah, I've typically found the higher-numbered synopses have suffered more from being out-of-date :) | 14:05 | |
masak | I'd really like to see an updated S19, but I don't have the energy/tuits to make it happen. | ||
ShimmerFairy | psch: I mean in terms of "# XXX Could really use ++FOO here", in the same that, say, src/core/MAIN.pm had those kinds of notes about allomorphs. | ||
masak | the best I can offer is to stand by the sidelines, cheer, and review the edits of whoever does. | ||
I suggest many small iterations. | |||
I'd be delighted if S19 also took on the spec'ing of flags to *scripts*, which to me seems much more important than the ++FOO business | 14:06 | ||
i.e. what I mentioned the other day with -e'1' vs -e='1' | |||
zengargoyle commutes & | 14:07 | ||
14:08
skids joined
|
|||
El_Che | ugly workaround for my use case: sub MAIN( Bool :$debug?, Bool :$d?) { my Bool $debug_i = ($debug.defined or $d.defined) ?? True !! False; say $debug_i } | 14:08 | |
it feels like unpacking @_ | |||
El_Che ducks | |||
(of course, it will explode for things like Str values) | 14:09 | ||
flussence sometimes wishes he could throw most arg-parsers in a fire and replace with something better, not just p6's | |||
Skarsnik | the xml module is annying me to no end xD | ||
flussence | (I've used a lot of ffmpeg...) | ||
psch | ShimmerFairy: i suppose that's a fair point. i didn't see any spot where that'd be the case, but i'm not poking around in MAIN.pm or thereabout much recently | ||
masak | today's topic: annoyances :) | 14:10 | |
psch | El_Che: nameds are optional by default. also, did you see moritz++' :d(:$debug) example? | ||
ShimmerFairy | El_Che: AFAIK, :d(:$debug) will support both on the command-line (and anything else that calls the sub), it's just that you only have a $debug variable declared in the signature | ||
which means you won't have $d available in MAIN() { }, but that shouldn't be too much of an issue I don't think :) | 14:11 | ||
psch | and if you want $d just do :debug(:$d) :P | ||
El_Che | let's see | 14:12 | |
ShimmerFairy | flussence: I can't help but wonder if step 1 in fixing arg-parsers is telling shells not to "help" us by splitting on /\s+/ :P | ||
RabidGravy | I'm almost certainly being very dumb here but: | ||
m: grammar Foo { regex TOP { <e>* }; regex e { \{ } }; say Foo.parse(q%example.com/~{username}/%); | |||
camelia | rakudo-moar 43e9d3: OUTPUT«(Any)» | ||
RabidGravy | how do I match a '{' in a string | 14:13 | |
psch | m: say 'string{' ~~ / \{ / | ||
camelia | rakudo-moar 43e9d3: OUTPUT«「{」» | ||
AlexDaniel | pmurias: having a REPL in a web browser is the best idea, IMO | ||
psch | m: say 'string{foo}' ~~ / '{' ~ '}' .+ / # trying to anticipate the follow-up question... | 14:14 | |
camelia | rakudo-moar 43e9d3: OUTPUT«「{foo}」» | ||
El_Che | :d($debug) throws a | 14:15 | |
psch | RabidGravy: the grammar doesn't parse it because it wants to fit the whole Str afair | ||
m: grammar Foo { regex TOP { <e>* }; regex e { \{ } }; say Foo.subparse(q%example.com/~{username}/%); | |||
camelia | rakudo-moar 43e9d3: OUTPUT«「」» | ||
El_Che | Use of uninitialized value $debug of type Any in string context | ||
psch | El_Che: the alias needs to be named too | ||
:d(:$debug) | |||
not :d($debug) | |||
El_Che | yes, that's what I have in my code | 14:16 | |
RabidGravy | psch, told you I was being dumb | ||
flussence | ShimmerFairy: I think there'd be riots in the streets if we started changing things from under the hardcore bash users (those exist :) | ||
RabidGravy | got hung up on the '{' and didn't notice the actual problem | ||
ShimmerFairy | flussence: as long as Perl 5 still has to check for shells that think true is false, I'm not sure we should put too much faith in what shells and their users think :P | 14:17 | |
El_Che | psch: paste.ubuntu.com/13238598/ | 14:18 | |
psch | El_Che: it works locally, as here gist.github.com/peschwa/1dc68ed6c8675320e7b8 | ||
ah | |||
but not passing it doesn't set it false locally | |||
just unitialized | 14:19 | ||
14:19
duncan_dmg left
|
|||
psch | yeah, that's the same issue | 14:19 | |
El_Che | psch: thx! | 14:20 | |
14:20
duncan_dmg joined
|
|||
El_Che | psch: I set the default to false and it works like intended | 14:20 | |
psch | El_Che: typing as Bool is probably the best bet. it's still somewhat iffy (in that you need -/d to get an actual False)... or add a default, yes | 14:21 | |
m: say ?Bool | |||
camelia | rakudo-moar 43e9d3: OUTPUT«False» | ||
El_Che | it's a little non-obvious though. Should it be documented somewhere? | ||
14:23
sprocket joined,
raiph joined
|
|||
El_Che | I may be an old unix graybeard, but It's looks pretty important to me :) | 14:24 | |
14:25
tokuhiro_ left
|
|||
psch | well, if you declare it a Bool opt it behaves properly in semantically fitting context | 14:27 | |
but yeah, it kind of creates a "if $option { #`[[ do option things ]] }" pattern for nameds to MAIN | |||
well, unless you make them required | 14:28 | ||
14:28
mr_ron joined
|
|||
Skarsnik | hm, is 'lookfor' is a good name for a method that try to find XML::Element on an XML::Element according to a query. | 14:31 | |
donaldh | github.com/rakudo/rakudo/pull/582 | 14:33 | |
Skarsnik | eg: my $extradiv = $storydiv.lookfor(:TAG<div>, :class<extra_story_data>, :SINGLE); (it's just a shortcut for $storydiv.elements(:TAG<div>, :class<extra_story_data>, :SINGLE, :RECURSE);) | ||
donaldh | ^ Fixes build on JVM. | ||
El_Che | just a last question about the built-in command line parsing magic. Can I call the builtin-usage myself (ie. with no user provided sub USAGE {}). I think e.g. for doing some basic parameter checking and callig a bsic USAGE when needed. | ||
(I know I can create an USAGE myself, just looking for shortcuts, like in the case when a certain parameter required except when you use --help or --version and the like) | 14:34 | ||
psch | El_Che: make the parameter required and add a multi candidate the only takes --help? | 14:36 | |
dalek | kudo/nom: 1a7af1a | donaldh++ | Configure.pl: Unbust Makefile generation in Configure.pl. fill_template_file was getting called before the common_bootstrap_sources had been read. |
||
kudo/nom: 25f032a | FROGGS++ | Configure.pl: Merge pull request #582 from donaldh/configure Unbust Makefile generation in Configure.pl. |
|||
psch | s/the/that/ | ||
El_Che | I'll try that. I though that would make the USAGE output incorrect | 14:37 | |
14:37
azawawi left
|
|||
psch | USAGE lists every candidate | 14:37 | |
although it doesn't note if a named is required, which it maybe should | 14:38 | ||
El_Che | It looks like someone thought hard about this stuff :) | ||
RabidGravy | okay, so this might be my last stupid grammar question for the day | ||
jdv79 | if i use fatal can i unuse it in a lower scope? | 14:39 | |
El_Che | psch (and *): that's for your effort. It works indeed as designed | 14:40 | |
14:40
perlawhirl joined,
xpen joined
|
|||
El_Che | If I need to document the alias for short options, ping. I am pretty sure I am not the only one that will hit that bump. | 14:41 | |
RabidGravy | assuming I have a rule that matches a thingy of the form '{term:1}' and its friends in <expression>, how would I match "example.com/dictionary/{term:1}/{term}" say? | ||
El_Che | I will write a small blog post about it in the meantime | 14:43 | |
RabidGravy | obviously .*<expression>+.* only gets the first expression | ||
14:44
AlexDaniel left,
zengargoylew joined,
srvsh left
|
|||
sjn | r: say .^methods # could be more useful? | 14:45 | |
camelia | rakudo-moar 43e9d3: OUTPUT«(Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new cache Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|668…» | ||
..rakudo-jvm 3d7f84: OUTPUT«(Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new cache Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Me…» | |||
RabidGravy | like | 14:46 | |
psch | m: say 'abc {ABC} def {DEF}' ~~ / [ $<a>=['{' ~ '}' <-[{]>+] ]+ % <-[{]>+/ # ..? | ||
camelia | rakudo-moar 43e9d3: OUTPUT«「{ABC} def {DEF}」 a => 「{ABC}」 a => 「{DEF}」» | ||
RabidGravy | m: say .^methods>>.name # like | 14:47 | |
camelia | rakudo-moar 43e9d3: OUTPUT«(EXISTS-KEY DELETE-KEY DELETE-POS cache list flat eager List Slip Array hash Hash elems end keys kv values pairs antipairs invert pick roll iterator classify categorize rotor reverse combinations permutations join nodemap duckmap deepmap tree push append u…» | ||
psch | m: say 'abc {ABC} def {DEF}' ~~ / [ $<a>=['{' ~ '}' .+?] ]+ % <-[{]>+/ # bit more concise | ||
camelia | rakudo-moar 43e9d3: OUTPUT«「{ABC} def {DEF}」 a => 「{ABC}」 a => 「{DEF}」» | ||
Skarsnik | hm, what operator I need to overload to write my T $t; $t{'stuff'} (same for <> I guess?) | ||
psch | Skarsnik: no operator, method AT-KEY | 14:48 | |
Skarsnik: doc.perl6.org/language/subscripts#Custom_types | |||
xenu | 15:33 < donaldh> github.com/rakudo/rakudo/pull/582 | ||
whoops, sorry about breaking that | |||
for* | 14:49 | ||
Skarsnik | thx psch | ||
RabidGravy | psch, this is why I shouldn't be allowed near grammars my poor branes can't parse that at all | 14:50 | |
but I think the ' % <-[{]>+' is what I am looking for | 14:52 | ||
psch | RabidGravy: gist.github.com/peschwa/02e594f87303f2ddd9c2 | 14:53 | |
well, minus the off-by-one for the group positions :P | 14:54 | ||
RabidGravy | cheers, let me have a look | 14:56 | |
PerlJam | psch: In P5-land there's a module called YAPE::Regex::Explain. IF such a thing existed in P6-land, that could have saved you some time :) | 14:57 | |
donaldh | github.com/rakudo/rakudo/pull/583 | 14:58 | |
^ FIxes noisy Configure.pl on JVM | |||
15:04
khw joined,
Moskon joined
15:06
Mouq joined
15:09
Moskon2 joined
|
|||
dalek | rl6-roast-data: 5a55032 | coke++ | / (9 files): today (automated commit) |
15:13 | |
psch | PerlJam: yeah, that might be a cool thing to have eventually | ||
PerlJam: for it's not yet at the point where (wanting to) explain regexen happens often enough that i'd save time by writing it... :) | 15:14 | ||
PerlJam | yeah. same here. I've thought about it off and on for a few years now and it's never bubbled up to the stage where I want to actually do it. | 15:15 | |
RabidGravy | psch, cheers matey with your decisive input I got it: | ||
m: my regex expression { '{' .+? '}' }; my regex bits { <-[{]>+ }; say 'abc {ABC} def {DEF} ghi' ~~ / <bits> <expression>+ %% <bits>/ | 15:16 | ||
camelia | rakudo-moar 25f032: OUTPUT«「abc {ABC} def {DEF} ghi」 bits => 「abc 」 expression => 「{ABC}」 bits => 「 def 」 expression => 「{DEF}」 bits => 「 ghi」» | ||
15:20
pippo joined
|
|||
pippo | o/ #perl6! | 15:20 | |
zengargoylew | hrm... class HTTP::Header does Associative is Iterable { ... # would thing it does Iterable | ||
jdv79 | is there a way to "no fatal"? | 15:21 | |
b2gills | m: 'a b'.words.map: -> $a?,$b? { say $a,$b} | ||
zengargoylew | or is HTTP::Header really a sub-class of Iterable in that example? | ||
camelia | rakudo-moar 25f032: OUTPUT«(timeout)ab(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)(Mu)…» | ||
15:24
brrt joined
|
|||
jnthn | jdv79: Yes, "no fatal;" :) | 15:26 | |
m: say (try { +'beer' }).WHAT; say $!; | |||
camelia | rakudo-moar 25f032: OUTPUT«NilCannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5beer' (indicated by 7⏏) in block <unit> at /tmp/aNmZVeciIv:1» | ||
jnthn | m: say (try { no fatal; +'beer' }).WHAT; say $!; | ||
camelia | rakudo-moar 25f032: OUTPUT«(Failure)(Any)» | ||
jnthn | Works fine :) | ||
jdv79 | yes. thanks. my fault. | 15:27 | |
jnthn | :) | 15:28 | |
dalek | kudo/nom: d510899 | donaldh++ | Configure.pl: Fix noisy Configure.pl on JVM backend. was complaining with: Use of uninitialized value {sysroot} in concatenation (.) or string at Configure.pl line 229. |
15:29 | |
kudo/nom: 3b15628 | jnthn++ | Configure.pl: Merge pull request #583 from donaldh/noisy Fix noisy Configure.pl on JVM backend. |
|||
15:35
gtodd joined
15:42
domidumont left
|
|||
gtodd | Util: what is the state of bluetiger ( perl5 to 6 converter script) these days? I assume it doesn't work perfectly .. happily so due to accelerated advance to Xmas :-) but I remember it being pretty good ! | 15:43 | |
15:43
domidumont joined
|
|||
RabidGravy | gtodd, see also DrForr's Perl::ToPerl6 | 15:47 | |
El_Che | I love memes as the next guy, but I don't think it has it's place in the standard documentation: doc.perl6.org/language/classtut#I_c...z_state%3F | ||
gtodd | RabidGravy: cool thanks! Maybe a deluxe set of those kind of tools is maybe more of a post Xmas thing :-) | 15:50 | |
15:50
tokuhiro_ joined
|
|||
DrForr pricks up his ears. | 15:51 | ||
gtodd | esp. with Inline::Perl5 the perlitos etc. | ||
flussence | El_Che: you're right, but you're also the only person who's complained in 3 years apparently :) | ||
gtodd | ... the neat thing about bluetiger was it written in perl5 (correct?) so one could be learning perl6 and using one's perl5 at the same time | ||
DrForr | So's Perl::ToPerl6 :) | 15:53 | |
El_Che | flussence: I'll do a PR | ||
RabidGravy | and it works (though I haven't looked for a while :) | ||
El_Che | and let's the powers that be decide :) | ||
15:54
lostinfog joined
|
|||
gtodd | DrForr: :-) | 15:54 | |
15:55
tokuhiro_ left,
pmurias left
15:56
ely-se left
|
|||
RabidGravy | psch, in case you were curious where all that was going it was for github.com/jonathanstowe/URI-Template - the grammar thing is all worky now :) | 15:56 | |
gtodd | DrForr: was Perl::Perl6 a less difficult task than it might seem? perl6 is so ... organized ... with ermm ... a grammar of itself (?!) | ||
brrt | can i use q:x in an if statement | 15:57 | |
i'm doing | |||
if q:x(dot -Tx11 foo.dot) { say "OK" } | |||
and, it doesn't work | |||
jnthn | It's probably the parens | ||
brrt | in the q:x | 15:58 | |
jnthn | Try a different quoter? | ||
brrt | ? | ||
jnthn | m: say q(hi) | ||
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KTBM63mHj4Undeclared routines: hi used at line 1 q used at line 1» | ||
jnthn | foo(...) will be interpreted as a function call | ||
flussence | El_Che: thinking about it, I kinda agree now might be a good time to tidy things up. having random lolcat references is effective for repelling unsavoury people but... lolcats have their own programming language. And I think we can come up with something better to reference :D | ||
brrt | oh, right | 15:59 | |
i was thinking of perl5 qw() | |||
gtodd | DrForr: I am half expecting something like a switch for Perl::Tidy one day: perltidy --5to6 | ||
DrForr | That'll never happen, at least at perltidy's level of fidelity. | ||
16:00
yqt left
|
|||
gtodd | DrForr: yeah ... and probably people will get by without it :) | 16:01 | |
DrForr | Moving whitespace around is one thing, moving operators is harder but doable. Strings are rough, especially when you consider interpolation. | ||
El_Che | flussence: a theme is nice to keep a narrative. But in this case, we're making it too easy for trolls and people with prejudices | ||
;) | |||
16:02
pmurias joined
|
|||
hoelzro | good morning #perl6 | 16:04 | |
jdv79 | is there a way to get {map...} to not become a block? | ||
{} is quite nicer than Hash.new() | |||
when it works | |||
jnthn | %(...) is another alternative | ||
16:04
xpen left
|
|||
stmuk | ok pl6anet.org has a simple google custom search box (based on perl6 urls with rss feeds) | 16:05 | |
jdv79 | ah | ||
stmuk | maybe of some use | ||
jnthn | m: say hash { map { $_ => $_ * 2 }, 1..10 } # maybe this | 16:06 | |
camelia | rakudo-moar 3b1562: OUTPUT«Odd number of elements found where hash initializer expected in block <unit> at /tmp/vnOU4HdLVL:1» | ||
jnthn | Or not :) | ||
m: say %( map { $_ => $_ * 2 }, 1..10 ) # should work nicely | |||
camelia | rakudo-moar 3b1562: OUTPUT«1 => 2, 10 => 20, 2 => 4, 3 => 6, 4 => 8, 5 => 10, 6 => 12, 7 => 14, 8 => 16, 9 => 18» | ||
16:07
pmurias_ joined
16:09
diana_olhovik left,
brrt left
|
|||
jdv79 | ah. i get why i was confused a bit | 16:09 | |
m: Hash.new(map {$_,$_*2},1,2,3).perl.say | |||
camelia | rakudo-moar 3b1562: OUTPUT«{"1" => 2, "2" => 4, "3" => 6}» | ||
jdv79 | m: %(map {$_,$_*2},1,2,3).perl.say | 16:10 | |
camelia | rakudo-moar 3b1562: OUTPUT«Odd number of elements found where hash initializer expected in block <unit> at /tmp/cxnwFbZ6uW:1» | ||
16:10
pmurias left
|
|||
jdv79 | nice inconsistency type deal | 16:10 | |
got it though, thanks | |||
16:10
ely-se joined
|
|||
jnthn | m: %(map {|($_,$_*2)},1,2,3).perl.say | 16:12 | |
camelia | rakudo-moar 3b1562: OUTPUT«{"1" => 2, "2" => 4, "3" => 6}» | ||
16:12
f3ew_ is now known as f3ew,
xfix joined
|
|||
ambs | suggestion regarding perl6.org, make the link to rakudo.org/downloads/star/ apper somewhere else than under Windows section, as it includes source tarballs as well | 16:13 | |
16:13
donaldh left
|
|||
ambs | or if users follow the suggestion in the download page will get an outdated version: curl -O rakudo.org/downloads/star/rakudo-st....02.tar.gz | 16:13 | |
when 2015.07 is available | |||
stmuk | is anyone actively maintaining docker builds of star? hub.docker.com has a bunch | 16:14 | |
hoelzro | stmuk: I am | ||
there's an official docker build | |||
hub.docker.com/_/rakudo-star/ | 16:15 | ||
stmuk | hoelzro++ | ||
PerlJam | hoelzro++ nice | 16:17 | |
stmuk | that probably should be on rakudo.org/how-to-get-rakudo/ | 16:18 | |
16:18
zakharyas joined
|
|||
jnthn | m: say "" | 16:18 | |
camelia | rakudo-moar 3b1562: OUTPUT«» | ||
stmuk | or that page basically imported onto perl6.org otherwise | ||
jnthn | m: use Test; is q :heredoc :c "EOF", "2+3=5\n", ':c applied after :heredoc has effect'; 2+3={2+3} EOF | 16:19 | |
camelia | rakudo-moar 3b1562: OUTPUT«not ok 1 - :c applied after :heredoc has effect# Failed test ':c applied after :heredoc has effect'# at /tmp/Nh_kzYhb5k line 1# expected: '2+3=5# '# got: '2+3={2+3}# '» | ||
16:19
ely-se left
|
|||
jnthn | m: use Test; is q :heredoc :w "EOF", <omg wtf bbq amazing cat>, ':w applied after :heredoc has effect'; omg wtf bbq amazing cat EOF | 16:19 | |
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3qOIP9D1VXHeredoc adverb must be the last oneat /tmp/3qOIP9D1VX:1------> 3use Test; is q :heredoc :w7⏏5 "EOF", <omg wtf bbq amazing cat>, ':w a» | ||
16:21
yqt joined
|
|||
dalek | c: aa50021 | (Steve Mynott)++ | doc/Language/faq.pod: faq reference to official rakudo star docker image |
16:22 | |
16:23
Moskon2 left,
ribasushi left
|
|||
Skarsnik | hm, how I pass NULL to a nativecall function? | 16:26 | |
hoelzro | Skarsnik: if the parameter is a char *, I believe just passing Str will do it | ||
I think any type object is marshalled as NULL | 16:27 | ||
jdv79 | m: (my $a, my $b) = 1,2; say $a; say $b; # ok | ||
camelia | rakudo-moar 3b1562: OUTPUT«12» | ||
jdv79 | m: (my $a, my \b) = 1,2; say $a; say b; # huh? | ||
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/a3lsxqkNL7Term definition requires an initializerat /tmp/a3lsxqkNL7:1------> 3(my $a, my \b7⏏5) = 1,2; say $a; say b; # huh?» | ||
jnthn | jdv79: You can't list-assign to a \foo | 16:28 | |
jdv79 | :( ok | ||
jnthn | jdv79: It's a "single static assignment" form and needs the initializer placed directly upon it | ||
There's an RT from someone who wants it to work, but there's not an obvious way to do so. | 16:29 | ||
jdv79 | semantically it is, isn't it? | ||
jnthn | Either way, it's not getting addressed this side of 6.c | ||
jdv79 | ok, so maybe later but its on purpose kinda | ||
jnthn | If we make anything work, then it will be my ($a, \b) = 1, 2 | 16:30 | |
Note that you can sig-bind | |||
m: my ($a, \b) := 1, 2; say $a; say b; | |||
camelia | rakudo-moar 3b1562: OUTPUT«1(Any)» | ||
jnthn | heh, or I thought you could :) | ||
That one probably should work already | 16:31 | ||
But my ($a, $b) = 1, 2; actually desugars to my $a; my $b; ($a, $b) = 1, 2; | |||
jdv79 | oh ok | ||
jnthn | At which point you can see why it's a bit tricky to handle :) | ||
jdv79 | i should probably look at the ast once in a while | 16:32 | |
yes | |||
thanks | |||
jnthn | np | ||
16:32
ZoffixW joined
|
|||
jnthn | It's one of those things that visually looks like it wants to work some day... :) | 16:32 | |
ZoffixW | ambs, do you mean suggestion for rakudo.org/how-to-get-rakudo/ and not perl6.org? | ||
dalek | kudo/nom: 8d4da82 | jnthn++ | src/Perl6/Grammar.nqp: Apply adverbs after :heredoc/:to to herelang. This means they affect the language that we parse inside the heredoc, which is rather more useful than affecting the language we parse the heredoc terminator with. |
||
jdv79 | i tried the my ($a,\b) and assumed it my () was wrong | 16:33 | |
dalek | ast: 7a7165d | jnthn++ | S02-literals/quoting.t: Tests for RT #120788. |
||
jdv79 | s/it/the/ | ||
jnthn | Another xmas RT down :) | ||
jdv79 | woohoo@ | ||
! | |||
ZoffixW | jnthn++ | ||
jnthn | That one was actually less hard to fix than I was fearing. :) | 16:34 | |
ZoffixW | ambs, I think it's fine the way it is for the reason that the *nix section mentions the system's package manager and then suggests building from source due to current rapid releases. And the instructions in Build from Source fetch fresh sources from git | ||
dalek | ast: 98520ce | jnthn++ | integration/advent2013-day04.t: Unfudge now-passing todo heredoc test. |
16:35 | |
jnthn | ZoffixW: It'd probably be nice if we had a shiny "get Perl 6" page right on perl6.org rather than linking away from it | 16:36 | |
gtodd | jdv79: so %(map {$_,$_*2},1,2,3) is trying to make a hash before the mapping happens and Hash.new(map {$_,$_*2},1,2,3) makes the hash out of the map ? or ?? | ||
jnthn | ZoffixW: With a direct link to the MSI | ||
ambs | ZoffixW: exactly that page, sorry, didn't notice the redirection | ||
Skarsnik | Interesting, I need to write is export { * } if I put no space before the { (aka is export{) it complain for a missing block x) | ||
gtodd | jdv79: just trying to make what might appear to be an inconsistency seem ... erm .. sensible | ||
16:36
ribasushi joined
|
|||
dalek | ast: 82c7b6b | jnthn++ | integration/advent2013-day04.t: Remove no-longer-needed line endings hack. |
16:37 | |
ZoffixW | jnthn, but that'd only apply to Windows users :P | 16:38 | |
16:38
raiph left
|
|||
jnthn | ZoffixW: Well, and appropriate other things for other platforms | 16:38 | |
ZoffixW: Like, tabs/headings by OS or so | |||
Skarsnik | m: sub foo is export{}; foo(); | 16:39 | |
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vTKguZ22AlA unit-scoped sub definition is not allowed except on a MAIN sub;Please use the block form.at /tmp/vTKguZ22Al:1------> 3sub foo is export{};7⏏5 foo();» | ||
Skarsnik | m: module A {sub foo is export{ say "hi"}}; foo(); | ||
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M8bBbam4ntMissing blockat /tmp/M8bBbam4nt:1------> 3module A {sub foo is export{ say "hi"}7⏏5}; foo(); expecting any of: new name to be defined» | ||
Skarsnik | m: module A {sub foo is export { say "hi"}}; foo(); | 16:40 | |
camelia | rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oRSIfzcYlTUndeclared routine: foo used at line 1» | ||
jnthn | Skarsnik: Yes, the curlies probably get parsed as a postcircumfix on export | ||
ambs | ZoffixW: a link to that folder of releases in the "Manual installation" wouldn't hurt :) | ||
Skarsnik | is that a bug? | ||
jnthn | No | ||
It's the reason is export(:foo, :bar) parses | |||
It works just like the colon pair syntax | 16:41 | ||
m: sub foo(:&bar) { bar() }; foo :bar{ say 'hi' } | 16:42 | ||
camelia | rakudo-moar 3b1562: OUTPUT«hi» | ||
jnthn | So you could use it to pass a block to a trait_mod | ||
pmurias_ | jnthn: other than IO/concurrency/introspecting unicode/runtime module loading are there things that I should avoid having on the list of roast tests that should work on rakudo-js? | ||
16:43
pmurias_ is now known as pmurias
|
|||
jnthn | pmurias: Well, other OS interaction maybe | 16:43 | |
pmurias: If you're going in the "focus on the in-browser use case" direction | |||
Skarsnik | I still don't know see why x) ( and { are not the same. or could I write is export{some block} {sub def} ? | ||
pmurias | jnthn: the "in-browser use case" seems to be what the people want | 16:44 | |
hoelzro | pmurias: that reminds me to comment on your post =) | ||
jnthn | pmurias: *nod* | ||
dalek | c: b9ed04d | [email@hidden.address] | doc/Language/classtut.pod: Replace lolcat by neutral title |
||
c: 51a087c | (Zoffix Znet)++ | doc/Language/classtut.pod: Merge pull request #196 from nxadm/master Replace lolcat by neutral title |
|||
hoelzro | or should I just leave feedback with you here on IRC? | ||
pmurias | hoelzro: what's more convinient for you | ||
hoelzro | here, tbh =) | ||
jnthn | Skarsnik: You could write that, yes, though the export trait doesn't actually know what to do other a block | ||
16:44
colomon left
|
|||
hoelzro | pmurias: I guess I would just echo the desire for browser stuff; that's what got me working on nqp-js the little bit I have | 16:45 | |
jnthn | pmurias: MoarVM's oplist basically is a complete set of "things the runtime has to provide" | ||
pmurias: So you could look through that too :) | |||
RabidGravy | pmurias, I'm holding out for the couchdb query server myself ;-) | ||
16:46
colomon joined
|
|||
Skarsnik | jnthn, I don't want to be annoying, but should a better error message could be nice? I mean it's not really obvious a missing whitespace here make it fail x) | 16:46 | |
jnthn | std: sub foo is export{1} | 16:47 | |
camelia | std : OUTPUT«No such file or directory» | ||
jnthn | aww | ||
:) | |||
ZoffixW | jnthn, that would require some sort of code to mirror the content and only Windows users benefit since on other platforms Rakudo's site recommends using perlbrew. | ||
ZoffixW leaves that to better minds to solve | |||
camelia | std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory» | ||
jdv79 | gtodd: thanks. i'm still not used to p6's list handling | ||
jnthn | Was going to see if STD did a better error there, but not sure it does | ||
16:48
mr_ron left
|
|||
jnthn | Skarsnik: Perhaps so, though you learn pretty quickly in Perl 6 to not be cheap with whitespace around infixes and anything that could be taken as the start of a postfix. :) | 16:48 | |
Skarsnik: Feel free to file it as an LTA error. We can probably work something out. | 16:49 | ||
gtodd | jdv79: I don't know for sure if I am correct ? | 16:51 | |
jdv79 | not sure. its but a drop in the bucket of what i'm doing so i moved on or i'll never finish. | 16:53 | |
thanks though! | |||
16:54
AlexDaniel joined
|
|||
pmurias | sp_* ops are spesh ones? | 16:55 | |
jnthn | pmurias: yes, you can ignore everything once you reach those | 16:56 | |
(Since they're not allowed in bytecode files) | |||
pmurias | most of the ones in MoarVM seem familiar, some of the p6* ones in rakudo seem less obvious | 16:59 | |
16:59
mr_ron joined
|
|||
jnthn | pmurias: I'd not worry about those | 17:00 | |
pmurias: They are mostly bits of control flow trickery, signature binding interaction, and so forth. | |||
pmurias: Or to improve code-gen | |||
pmurias: They don't do I/O and so forth | |||
jdv79 | is there a way to index into a pos or assoc container with the same syntax? | 17:01 | |
jnthn | No; we don't confuse the two (and some objects can provide both) | 17:03 | |
psch | you can try both in sequence at best | ||
17:03
domidumont left
|
|||
jdv79 | that's what i'm doing. just trying to tersen it up a bit | 17:03 | |
ok | |||
17:04
kjs_ joined
|
|||
jdv79 | Perl6 refuses to be as confused as me. I guess that's a good thing;) | 17:04 | |
pmurias | a lot of the more complex features seem to be built out of simpler building blocks and code in the setting, so assuming I get the building blocks right a lot of the more complex Perl 6 features should just work? | 17:05 | |
jnthn | pmurias: Yes | 17:06 | |
pmurias: A lot of complexity lies in the compiler too, written in NQP | |||
pmurias: Experience has been that getting to having a running Rakudo is a good bit of effort, but once you're at the point of being able to run Test.pm you find you've already got a heck of a lot working. | 17:07 | ||
pmurias | thanks, seems a lot of better than having to battle for every single test ;) | 17:08 | |
17:08
pmurias left
17:09
ZoffixW left
17:11
softmoth_ left
17:19
domidumont joined
|
|||
jnthn | masak: About? | 17:26 | |
dalek | kudo/nom: 74fcb36 | jnthn++ | src/Perl6/ (2 files): Ignore \n and \r\n during heredoc dedenting. We probably make the optimizer a little extra constant folding work with this solution, but it's unintrusive and uses the already complex enough heredoc handling logic to do the heavy lifting. |
17:27 | |
ast: 0416b13 | jnthn++ | S02-literals/quoting.t: Tests for RT #125543. |
17:28 | ||
17:29
softmoth_ joined
|
|||
jnthn | colomon: ping | 17:30 | |
colomon | pong? | ||
jnthn | colomon: Were you talking about the heredoc and \t issue the other day? | ||
colomon | jnthn: yes | ||
jnthn | Or am I remembering wrong? :) | ||
ah, cool | |||
I've fixed 2 of the 3 heredoc tickets flagged for xmas and the \t one is the third | |||
17:31
muten joined
|
|||
jnthn | In rt.perl.org/Ticket/Display.html?id=120895 | 17:31 | |
It gives the example of an explicit \t | |||
colomon | I started to look at it, and it looks to me like rakudo is hard coded to use tab stops of 8 | ||
(rakudo’s source, I mean) | |||
jnthn | Rather than actual tab literals in the source | ||
colomon | I think that was the source of what I was seeing. | ||
muten | m: my uint8 $i = 200; say $i | ||
camelia | rakudo-moar 74fcb3: OUTPUT«-56» | ||
muten | Is that a known issue? | ||
17:32
mr_ron left
|
|||
jnthn | muten: Yes, unsinged int types are only paid attention to for the purpose of NativeCall and native arrays for now. | 17:32 | |
colomon: For your use case, do you have \t in your source? | |||
Or actual tab chars? | |||
muten | Ah, okay. Thanks | ||
17:33
pippo left
|
|||
jnthn | colomon: Because my inclination is to make a \t escape in the source not be considered at all as part of the dedenting, which I *think* will fix the vanishing tab problem | 17:33 | |
colomon: At least so far as the ticket goes. But I wanted to check in on your use case too. | 17:34 | ||
17:34
dbrock joined
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 6a05e9e | (Zoffix Znet)++ | / (5 files): Build script now successfully builds db and restarts app |
17:36 | |
TimToady | the dedenting is supposed to be pre-interpolation of any sort | ||
yoleaux | 12:50Z <jnthn> TimToady: The backref thing ended up with a "latest contiguous matches" constraint being wanted (unless we want to bust another use case). Also, because we are smart enough already to be able to locate captures without constructing the full Match object, the backref methods on Match/Array weren't useful, so I tossed them. | ||
jnthn | TimToady: Just made it so for things like \r\n and \n | 17:37 | |
TimToady | the only purpose of the dedent is to pretend there was a different left margin in the whitespace of the *program* | ||
saw that | |||
jnthn | Right, so same treatment for \t and \r now building | ||
TimToady | cool | ||
jnthn | My question is more "is that sufficient to consider the RT resolved"? | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 44e5f9f | (Zoffix Znet)++ | / (50 files): Rename "web" directory, since it no longer does web stuff |
17:38 | |
jnthn | Where "the RT" is rt.perl.org/Ticket/Display.html?id=120895 | ||
17:38
llfourn joined
|
|||
jnthn | Got a patch that fixes the actual case in the RT :) | 17:38 | |
17:38
zakharyas left
|
|||
jnthn | So I guess "yes" :) | 17:39 | |
17:40
diana_olhovik joined
|
|||
skids | There is a pr, BTW, for something related. Though it has gone stale. | 17:42 | |
colomon | jnthn: sorry for disappearing there. I have an actual tab in my source. My impression (possibly wrong) is that \t will do the same thing as an actual tab here? | ||
jnthn: like I tried to say, I’m suspicious my problem is that I’m using tab stops of 4 in my source code, but Rakudo wants tab stops to be 8. | 17:43 | ||
but I haven’t had time to investigate properly. | |||
17:43
pat_js left
|
|||
skids | PR#543 | 17:43 | |
zengargoylew | i dunno, but Perl 6 has a butterfly for a mascot/logo and »ö« and Tolkein, i don't see an issue with lolcats occasionally in the doc. Perl 5/6 documentation seems to have a bit of fun now and then. | ||
17:45
abraxxa left,
dbrock left,
^elyse^ joined
|
|||
jnthn | colomon: Now \t will behave differently | 17:46 | |
colomon: A \t will be ignored by the heredoc dedenting | |||
skids | .oO(son't I rmember a passage in The Hobbit where Frodo climbs a tree in Mirkwood and sees sunlight and butterflies?) |
17:47 | |
colomon | Actually I just tried that and it did not work | ||
exact same result as a real tab | |||
Isn’t variable interpolation and special chars done before passing to dedent? | 17:48 | ||
jnthn | colomon: Sorry, I meant "wiht my local patch" | ||
Not any more | |||
Well, \t used to be | |||
But now it's not | |||
colomon | oh. | ||
jnthn | \n used to be also; I've fixed that one already | ||
colomon | for what it’s worth, I thing explicit \t is a bad thing | ||
it makes the heredoc much uglier. | |||
skids | s/Frodo/Bilbo/ | 17:49 | |
jnthn: which parts of PR#543 should I resubmit, then, since that is now taken care of? | |||
jnthn | OK. The ticket as filed was about a \t | ||
colomon | jnthn: I really think the problem I’m seeing mostly has to do with tab stops being 8 | 17:50 | |
dalek | kudo/nom: 2cac8c1 | jnthn++ | src/Perl6/Actions.nqp: \r and \t in heredoc don't participate in dedent. |
||
ast: 51ef478 | jnthn++ | S02-literals/quoting.t: Test to cover RT #120895. |
17:51 | ||
jnthn | colomon: OK, then I think that's quite out of scope for the ticket in question. | ||
colomon | jnthn: fair enough. | ||
17:52
diana_olhovik left
|
|||
jnthn | (So, I count this as done; please file an RT with your case if you think something's wrong in Rakudo.) | 17:52 | |
colomon | what is the $?TABSTOP constant supposed to do? I mean, why the ? twigil? | ||
17:52
tokuhiro_ joined
17:54
perlawhirl left
|
|||
jnthn | That means "compile time constant" | 17:54 | |
17:56
tokuhiro_ left,
FROGGS joined
|
|||
FROGGS | o/ | 17:57 | |
jnthn | o/ FROGGS | 17:58 | |
Just fixed one of your RTs ;) | |||
17:58
dakkar left
|
|||
FROGGS | jnthn: yeah, seen it :/ | 17:59 | |
jnthn | Why the :/ ? | ||
FROGGS | $work has just been too much lately | ||
I wanted to do stuff too | |||
jnthn | Ah, I meant "one you filed", not "one you'd taken to fix" :) | ||
skids | colomon: $?TABSTOP went through some churn and landed at "should be assignable but only at compile time", which probably means we're in need of a :tabstop adverb to Str.indent() these days, and last time I checked the "assignable at compile time" part was NYI, IIRC. | ||
jnthn | Ah | ||
$work can do that :/ | 18:00 | ||
Whew. On the same day I did the last regex related xmas ticket, I also got all the heredoc related ones nailed. :) | 18:01 | ||
colomon | skids: right, assignable at compile time doesn’t seem to work. I guess we could have an adverb for heredocs, too? | ||
FROGGS | I mean, there were challenging and fun tasks at work, but working more than ten hours every day is a bit unfun after a few weeks | ||
wow | |||
jnthn++ | |||
skids | colomon: I think heredocs are supposed to use the compile-time part, lexically scoped. | ||
jnthn | FROGGS: Yeah, ten hours is...a bit much | 18:02 | |
FROGGS | jnthn: especially when it is like much more than ten :o) | ||
jnthn | Ouch | ||
Can see why you've not had time, anyway | 18:03 | ||
moritz | any it's better not to burn out | 18:04 | |
jnthn | TimToady: Today's hopefully-not-too-hard design ruling request: rt.perl.org/Ticket/Display.html?id=71112 . It boils down to whether sub foo { @_ } is equivalent to sub foo(*@_) { }. Assuming so, is the following fine: | ||
m: sub foo(*@_) { @_[0] = 1; say @_[0] }; foo(0) | 18:05 | ||
camelia | rakudo-moar 74fcb3: OUTPUT«1» | ||
jnthn | That is, can you modify your own slurpy array? | ||
18:05
zakharyas joined
|
|||
jnthn | (Given the lack of "is raw", you're not in any way affecting the callee, so if it passed foo($a) then $a would be unaffected) | 18:05 | |
My take: the status quo is fine, we can reject the RT. | 18:06 | ||
But you previously expected it to blow up, so... :) | |||
skids: About your PR, I think only 79487c1d346 is invalidated by my fix; the other two stand | 18:10 | ||
(Since they are about the indent method itself) | |||
skids | jnthn: OK, should other vertical space characters considered line endings in normal code not behave that way? | 18:11 | |
18:11
ggoebel joined
|
|||
dalek | osystem: 00c7478 | (Zoffix Znet)++ | server/updatelist.pl: Normalize source urls |
18:11 | |
href="https://modules.perl6.org:">modules.perl6.org: 31b9712 | (Zoffix Znet)++ | web/lib/P6Project/Info.pm: Normalize dist URLs Otherwise, we often end up missing github repo URLs from dists |
18:12 | ||
jnthn | skids: Anything that's expressed as an escape sequence shouldn't be considered in the dedent | ||
skids: Anything that's literal whitespace can be | 18:13 | ||
18:13
ifim joined
|
|||
jnthn | skids: I think indent handling over things matching \v makes sense | 18:13 | |
18:17
andreoss left
18:18
muten left,
Oatmeal left
18:19
sufrostico left
|
|||
dalek | ast: 6d71025 | jnthn++ | S13-overloading/typecasting-long.t: Correct wrong CALL-ME tests. SomeType() is always a coercion type literal, and shorthand for SomeType(Any). Therefore, we don't expect it to lead to a CALL-ME invocation. Use SomeType.() to force that. Replace bogus tests with tests that these forms really are coercion type literals. Resolves the last issue in RT #114026. |
18:19 | |
zengargoylew | m: my &safelog = &log o &abs; say safelog -e; | 18:21 | |
camelia | rakudo-moar 2cac8c: OUTPUT«1» | ||
18:22
espadrine left
|
|||
zengargoylew | i did not know about compose... | 18:22 | |
jnthn | TimToady: I figure you'll be happy with the call I made in 6d71025; let me know if not. :) | 18:23 | |
18:23
yqt left
|
|||
zengargoylew | anybody know the name of the unicode version of the 'o' there? | 18:24 | |
jnthn | m: say uniname('∘') | 18:25 | |
camelia | rakudo-moar 2cac8c: OUTPUT«RING OPERATOR» | ||
zengargoylew | thanks much. | 18:28 | |
TimToady | I'm okay with @_ defaulting to 'is copy' semantics, so we can close 71112 | 18:29 | |
jnthn: and I think 6d71025 is going the right direction | 18:30 | ||
zengargoylew | i fear Perl 6 will make me find a good terminal/font setup. xterm bitmap fonts are a bit lacking in readability and character coverage. | 18:31 | |
flussence uses nice, safe, bland dejavu sans mono | |||
skids | currently I use pterm, which despite the Windows "heritage" is pretty solidly better than everything based on the common widget sets. Though I had to hack in the second paste clipboard. | 18:32 | |
jnthn | TimToady: Thanks. | 18:33 | |
TimToady | though something bothers me about the contiguous backref rule, because contiguity is independing of the scoping, and we'd really like it to pay attention to the [], not the contiguity | 18:34 | |
*independent | |||
skids | zengargoylew: github.com/skids/customizations/tr...ster/putty # patch to add second clipboard to pterm, and why I chose it over others. | ||
zengargoylew | i haven't experimented in a while. last time i tried gnome-terminal like things with their client/server approach all too often i ended up blowing up one terminal and loosing all of my terminals. | 18:35 | |
that and the lack of right-button-extend and middle-button-paste turned me away. all those libvte based terms are the same. | 18:36 | ||
TimToady | I mean, on some level, the correct answer is to use () outside instead of [], because we designed $0 to transcend [] scope, so the contiguity rule feels like a complete hack to me | ||
it's kinda like the fake lexical scopes that P5 installs here and there | 18:37 | ||
skids | zengargoylew: yeah, so after rejecting anything based on VTE, there was not much left, and when I looked at the rxvt source trying to mod it I ran away screaming and promising never to use it in a security-sensitive environment. | 18:38 | |
TimToady | and what happens if your $0 is accidentally contigous with the previous iteration? | ||
18:38
polettix left
|
|||
TimToady | *guous | 18:38 | |
18:38
polettix joined
|
|||
TimToady | jnthn: so I think my .backref plan is still correct, and we should force the other usage to use () rather than [] | 18:39 | |
zengargoylew | i'd believe that. i saw occasional weirdness using rxvt. | ||
TimToady | well, correcter, given Array.from/.to is a different kind of hack | ||
jnthn | TimToady: I can remove the contiguous rule and update the tests | 18:40 | |
TimToady: I don't think we need a .backref method; it's easy (and way faster) to figure the same thing out by looking at the cursor stack | |||
TimToady | I'm thinking users might want .backref too | 18:41 | |
since ~$0 produces the other thing | |||
jnthn | Hm | ||
18:41
krunen joined
|
|||
skids | zengargoylew: anyway someday I'll get fed up enough to add an option to bump-the-screen-up-but-don't-use-the-alt-window and life will be perfect. | 18:41 | |
jnthn | OK. Even if it survives, I still don't think I'll end up deoptimizing backrefs in regexes to construct a match object and call it | 18:42 | |
And that means we can maybe pick a better name than .backref | |||
TimToady | why would it constuct a match object? .backref just returns a string | ||
jnthn | You implemented it on Match and Array | 18:43 | |
18:43
polettix left
|
|||
jnthn | At the point we see the $0 in something like /(\w)$0/ we didn't build a Match object yet | 18:43 | |
TimToady | you already have a Match or an Array in that case | ||
jnthn | Not automatically, given we build them lazily | ||
TimToady | well, I'd still like to cursors in flight to pretend to be match objects at some point | 18:44 | |
*to allow | |||
jnthn | And we still have to search the cursor stack | ||
I guess I can then call .backref on what I get | |||
TimToady | but I'm fine with faking it for internal | ||
jnthn | Well, .MATCH.backref | ||
OK | |||
18:44
Khisanth left
|
|||
zengargoylew | skids: i'll give it a test drive, thanks. | 18:45 | |
18:45
jesper_ joined
18:46
Ven joined
18:49
Khisanth joined
18:50
krunen left
|
|||
dalek | ast: 19c27b7 | jnthn++ | S (60 files): Expect Exception, not X::AdHoc. The test suite we ship for 6.christmas should ideally be a subset of the 6.d suite, and later ones. Testing against `Exception` frees us to add further typed exceptions without breaking the promise in the existing tests. Testing againt `X::AdHoc` does not. |
18:51 | |
18:53
ilbot3 joined
|
|||
dalek | ast: 8b28ff8 | jnthn++ | S06-signature/unspecified.t: Bring tests in line with RT #71112 ruling. |
18:54 | |
18:55
kjs_ left,
duncan_dmg left,
pippo joined
|
|||
pippo | exit | 18:55 | |
18:55
pippo left
|
|||
jnthn | Phew, back down to 21 pages of tickets, not 22 :P | 18:55 | |
18:56
krunen joined
|
|||
skids | jnthn++ | 18:56 | |
jnthn | TimToady: Time for dinner/rest here so I'll deal with the backref thing tomorrow. | ||
TimToady | .oO(6.d should have a liskovian relationship to 6.c) |
18:59 | |
yoleaux | Sorry, I couldn't find a definition for 'should have a liskovian relationship to 6.c)'. | ||
TimToady | say wot? | ||
jnthn | .d annoying | ||
yoleaux | annoying (/əˈnɔɪɪŋ/): adj. Causing irritation or annoyance — is.gd/bxwfAt | 19:00 | |
jnthn | heh :) | ||
RabidGravy | I wot not what | ||
TimToady | .foobar.d baz | ||
yoleaux | Sorry, I couldn't find a definition for 'baz'. | ||
jnthn | TimToady: One other thing to ponder: should you be able to callsame multiple times? ( rt.perl.org/Ticket/Display.html?id=125783 is the ticket in question) | ||
19:00
softmoth_ left
|
|||
jnthn | TimToady: At the moment callsame essentially pulls from an iterator | 19:01 | |
TimToady: And so "consumes" | |||
TimToady | well, so that the child might also consume | ||
jnthn | Right, well, that was the idea, that you were going to do a callsame each step of the way :) | 19:02 | |
19:02
yqt joined
|
|||
jnthn | But if you do multiple you break things | 19:02 | |
You can't do this with nextsame/nextwith | |||
TimToady | maybe we need a way to take a ref to what would be called | ||
jnthn | So it's only the callsame/callwith variants that need thinking | ||
We could do that. Or I can probably amke it Do The Right Thing with a well-placed .clone :) | |||
*make | |||
At the price of the clone. | 19:03 | ||
TimToady | right | ||
not sure we want to penalize everyone for that | |||
jnthn | *nod* | ||
Thus why I didn't think it was an obvious "yeah, bug" :) | |||
TimToady | maybe have a callpeek that returns the front | 19:04 | |
jnthn | Could do :) | ||
TimToady | except...that doesn't actually work out | 19:05 | |
since the child still needs the trimmed list each time, presumably | 19:06 | ||
well, callpeek trims the list but returns the ref | |||
jnthn | Yeah, the latter would do it | ||
TimToady | wouldcall | ||
peek kinda says it doesn't shift it, which it does | 19:07 | ||
19:07
zakharyas left
19:08
diana_olhovik joined
|
|||
jnthn | Yeah | 19:08 | |
TimToady | or nextref, or somethin | ||
jnthn | aye... | ||
TimToady | callnextref would be good huffman :) | 19:09 | |
nextcallref is maybe clearer | |||
19:09
MadcapJake joined,
Ven left
|
|||
jnthn | Yeah | 19:10 | |
TimToady | since the former could be taken to imply a call | ||
19:10
MadcapJake left
|
|||
jnthn | Something with callee in may also work | 19:10 | |
But I can't quite nail it | |||
TimToady | nextcallee wouldn't be so bad | ||
jnthn | But it avoids call (verb) being confused with call (noun) | ||
19:11
MadcapJake joined
|
|||
TimToady | and I'm in favor of avoiding the "ref" meme | 19:11 | |
19:11
MadcapJake left
|
|||
TimToady | all in all, I'm pretty happy with "nextcallee" | 19:12 | |
19:12
MadcapJake joined,
rangerprice joined
|
|||
jnthn | OK, thanks. | 19:12 | |
So, that's a ticket I can plug away at tomorrow :) | 19:13 | ||
19:13
diana_olhovik left
|
|||
MadcapJake | Is there Perl6ish reason why using a C library with nativecall is always ending in a segmentation fault (always after successfully completing all the native calls I make) | 19:13 | |
jnthn | And there's another one about deferal too, so I'll look at it. | 19:14 | |
MadcapJake: Probably means memory was mis-managed somewhere along the way | |||
hoelzro | MadcapJake: which library? could you show us a failing example? | 19:15 | |
jnthn | MadcapJake: Running it under something like valgrind or ASAN will likely show up the details | ||
OK, I should go tend to the cooking. o/ | |||
19:16
rangerprice left
|
|||
MadcapJake | i tried gdb, haven't tried valgrind yet. (I am a complete C newb), let me put this up in a gist, brb | 19:16 | |
gist.github.com/MadcapJake/c92646b1124744888667 | 19:18 | ||
19:18
virtualsue joined
|
|||
MadcapJake | btw, I tried `gdb -ex r --args perl6 file.p6` but that says "no executable". Am I doing it wrong? | 19:18 | |
moritz | MadcapJake: perl6 is actually a shell script (wrapper around moarvm) | 19:19 | |
MadcapJake: which gdb doesn't like | |||
MadcapJake: there's a perl6-gdb-m installed along with perl6-m that runs your perl 6 program under gdb for you | 19:20 | ||
MadcapJake | yeah i figured that, just noticed that in python you could do that form that I posted above, so thought maybe it was an accepted standard for shell scripts to interface to gdb | ||
oh sweet | |||
"Program received signal SIGSEGV, Segmentation fault." o_O | 19:21 | ||
19:22
Moskon left
|
|||
mrf | evening | 19:25 | |
psch | jnthn: i think i have #74414 figured out, but it apparently somehow messes with Range.new ordering | 19:29 | |
jnthn: as in, we don't reach the Complex candidates for some reason... | 19:30 | ||
jnthn: i guess in the end that means i don't have it figured out... :P | |||
19:30
kjs_ joined
|
|||
psch | jnthn: as in, i've got a MultiCache patch that pays attention to rwness, but somehow that messes with Range.new candidate ordering | 19:30 | |
19:31
jesper_ left
|
|||
RabidGravy | MadcapJake, if you haven't alreadt figured it out, you can find what it thought it was doing by typing 'bt' at the gdb prompt | 19:33 | |
19:34
kjs_ left
|
|||
timotimo | earlier today people talked about the "ws-*" era; what was that about? all i know ws for is "websockets", but that doesn't seem old enough to already be called an "era" of the past | 19:36 | |
RabidGravy | sometime I find valgrind more useful for these as it shows where you messed up the memory | ||
timotimo, Web Services | 19:37 | ||
i.e the ws-security etc related to soap | |||
19:39
^elyse^ left,
ifim left
|
|||
psch | hm, apparently (Whatever, Mu) ends up narrower than (Mu, Complex) on my current rakudo state | 19:40 | |
didn't verify against nom HEAD yet though... | 19:41 | ||
MadcapJake | RabidGravy: How do I use valgrind with perl6? | 19:42 | |
19:43
softmoth_ joined
|
|||
FROGGS | MadcapJake: perl6-valgrind-m myscript.pl | 19:43 | |
RabidGravy | perl6-valgrind-m :) | ||
19:43
virtualsue left,
polettix joined
|
|||
MadcapJake | lol xD | 19:43 | |
FROGGS | *g* | ||
RabidGravy | (assuming you have valgrind installed) | ||
19:43
polettix left
|
|||
psch | welp, confirmed. something in my rwness patch on rakudo level pushes (Complex \min, \max) and (\min, Complex \max) out of the tie group the Whatever candidates are in... | 19:44 | |
MadcapJake | i do, i just can't grok the output :P | ||
oh, it wasn't done yet, it's quite slow | |||
RabidGravy | yeah instruments all the memory allocations | 19:45 | |
MadcapJake | lol "19496 errors from 211 contexts" | ||
zengargoylew | MadcapJake: what's the signature for the string inputs on those library calls? i know with strings there's sometimes a need to tell NativeCall not to free the strings until you tell it to. | ||
FROGGS | MadcapJake: just look for invalid read and invalid write | 19:46 | |
zengargoyle: that's also what I am thinking btw | |||
zengargoylew | i.e. does the library make its own copy of the strings you pass in or not? | ||
everything elso looks ...simple-ish... | 19:47 | ||
MadcapJake | oh, here's one of the native subs "sub fluid_synth_sfload(FluidSynth, Str, int64) is native(&libfluidsynth) { * }" | ||
FluidSynth is a `repr('CPointer')` | |||
zengargoylew | right, is that Str a char * or a const char * or what in the actual headers/library | ||
psch | FROGGS: that's pretty much the same behavior as with the portaudio bindings i asked you to look at, isn't it? | ||
RabidGravy | what's the C signature of the above? | ||
psch | as in, it extends beyond C strings | 19:48 | |
MadcapJake | ohh, yeah it's a `constant char *` | ||
RabidGravy | explicitly-manage($string) then | ||
MadcapJake | Around the argument when calling it or in the declared parameters? | 19:49 | |
RabidGravy | you need to guarantee that perl won't dick with the string after the function returns | ||
before you call the sub, on the string you pass as an argument | 19:50 | ||
btw +1 on a fluidsynth binding :) | |||
zengargoylew | method set(Str:D $setting, Any $val) { probably explicitly-manage($setting) # but you might have to make your own copy first since it's an arg??? # i dunno that | 19:51 | |
or maybe for $val when it's Str | |||
FROGGS | psch: I don't remember what the issue was... | ||
MadcapJake | oi, well that doesn't have a `const` keyword in the C docs | 19:52 | |
zengargoylew | then it's probably the one you have to do it on. .. | ||
psch | FROGGS: "SEGV or coredump" iirc. maybe not actually related... | ||
zengargoylew: explicitly-manage is called from the trait "is explicitly-managed" iirc..? | |||
zengargoylew | try both and see if it still bombs. :) | ||
i haven't had to use it yet... my one library thing does ints and strings that it *has* to copy and muck about with. | 19:53 | ||
i'll try and remember that trait though.. | 19:54 | ||
19:54
sufrostico joined
|
|||
RabidGravy | psch, I am going to get back to portaudio at some point | 19:56 | |
20:00
geraud joined
|
|||
MadcapJake | So I added explicitly-manage to all the const char * calls and it still is giving me segmentation fault | 20:00 | |
I updated the gist: gist.github.com/MadcapJake/c92646b1124744888667 | 20:01 | ||
20:01
^elyse^ joined
|
|||
psch | RabidGravy: well, you've got a commit bit :) | 20:02 | |
20:03
RabidGravy left
|
|||
Skarsnik | MadcapJake, when does it crash? after the delete stuff? | 20:04 | |
20:05
vendethiel joined
|
|||
MadcapJake | `is explicitly-managed` didn't work, says it's an unknown trait | 20:06 | |
Skarsnik: yeah after that | |||
Skarsnik | that's weird x) | 20:07 | |
psch | yeah, i was wrong about explicitly-managed as a trait | ||
Skarsnik | I suspect delete get called twice | 20:08 | |
20:08
darutoko left
|
|||
Skarsnik | like on exit the GC call delete on the object? | 20:08 | |
MadcapJake | well i am specifying my own delete, should i be naming that differently? | 20:09 | |
Skarsnik | yes, but maybe something like that happend: You call delete manually, then p6 call delete on exit | 20:10 | |
add some say on the delete stuff? | |||
hoelzro | the Perl 6 GC shouldn't perform any additional deletion on pointers from NativeCall'd subs | ||
hoelzro .oO( there's that word "should" again ) | |||
psch | yes, a suspicuous word it is | 20:11 | |
like, my "rw is tighter than non-rw" *should* not influence ordering of (and tie-breaking between) different typed method that all don't use rwness... | |||
but it does vOv | 20:12 | ||
+patch | |||
MadcapJake | `:%s/delete/del/g` still gives me seg faults | ||
20:12
RabidGravy joined
|
|||
psch | i think !sort_dispatchees_internal is borked | 20:15 | |
that's a somewhat reaching accusation, because i'm not completely sure what it actually does | |||
but i see the same candidate in two different tie-groups on nom HEAD | |||
20:18
kjs_ joined
|
|||
MadcapJake | how can i capture ouput from perl6-valgrind-m? I tried `>>` and it only gives me any stdout that i've printed. | 20:20 | |
psch | MadcapJake: 2> (and 2>>) redirects STDERR | 20:21 | |
MadcapJake: combining them is 2>&1 or 2&>1, i always have to look up which myself :P | 20:22 | ||
MadcapJake | ohh cool! | ||
psch | MadcapJake: man bash ;P | ||
psch .oO( bash: P: command not found ) | |||
MadcapJake | It's just &>> apparently | ||
moritz | 2>&1 | ||
also, perl6-valgrind-m $program |& tee file.log | 20:23 | ||
|& pipes both stderr and stdout into a single command | |||
psch | |& less recently became a favorite of mine | 20:24 | |
20:24
spider-mario joined
|
|||
psch | i guess that's a decent mnemonic, the & is after the | there, so it also has to be after the redirect | 20:24 | |
moritz++ # bash knowledge | |||
20:25
diana_olhovik_ joined
|
|||
Skarsnik | hm something like void(* GumboDeallocatorFunction)(void *userdata, void *ptr) | 20:28 | |
Should be the size of a void*? | |||
hoelzro | probably | ||
I think that pointer size equality is not guaranteed | |||
but it usually matches up | 20:29 | ||
C leaves a lot up to the implementation | |||
Skarsnik | I forgot a field >< | ||
20:30
domidumont left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: fade303 | (Zoffix Znet)++ | / (8 files): All styling is done |
20:30 | |
20:31
AlexDaniel left
|
|||
MadcapJake | Starting from the first delete call, there are thousands of invalid read and invalid write errors | 20:31 | |
20:31
AlexDaniel joined
|
|||
Skarsnik | hm, did you try with gdb? valgrind is quite.. verbose | 20:32 | |
MadcapJake | In fact after deleting FluidSettings, there are no invalid read or write errors | ||
20:33
Peter_R joined
|
|||
MadcapJake | i tried gdb and `bt` but i couldn't grok anything useful, i might just not know what I'm looking for xD | 20:33 | |
20:34
ilbot3 left,
ilbot3 joined
|
|||
psch | MadcapJake: well, if the bad free happens in the fluidsynth lib you probably just get addresses | 20:34 | |
MadcapJake: building moar with --debug should give you symbols for moar at least, so that should be intelligable | 20:35 | ||
MadcapJake | I just looked over fluidsynth docs and found this little tidbit: "NOTE: Other users of a synthesizer instance, such as audio and MIDI drivers, should be deleted prior to freeing the FluidSynth instance." | ||
i'm not deleting my audio driver (the tutorial didn't know that specifically), so maybe this is what i need to do | 20:36 | ||
Skarsnik | that's... sucks: Cannot put a type constraint on an 'our'-scoped variable | ||
psch | Skarsnik: i think that's just NYI | 20:37 | |
Skarsnik | I need to expose a C global with export, but I can't affect it to something typed just behind if I don't type it | ||
psch | Skarsnik: patches welcome :) | ||
Skarsnik | oh it's just NYI? | 20:38 | |
MadcapJake | haha, that was totally it! Well thanks for the exploration of C debugging tools and bash wisdom. I'm gonna keep hacking on this fluidsynth module, see ya all! | 20:40 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 88389a5 | (Zoffix Znet)++ | db-builder/ (2 files): Add --no-app-start option to the build script |
20:41 | |
Skarsnik | is there something to display the memory used by a perl6 program? | ||
in the code | 20:42 | ||
tracking top display is not really useful x) | |||
RabidGravy | MadcapJake, look forward to seeing it, need more Audio:: modules ;-) | ||
20:43
adhoc joined
|
|||
hoelzro | Skarsnik: I wrote a little NQP/MoarVM patch a while ago that adds a binding to meminfo | 20:43 | |
but it's not intended for being included | |||
I also wrote a little Perl 5 script to track memory usage of a Perl 6 one | |||
psch | hrm | ||
so i accidentally lost my rakudo changes (mishandling of git stash and git reset...) and redid them by memory | 20:44 | ||
zengargoylew | i got really say when you can't do sub foo(Str *@things) 'cause no typed slurpy | ||
psch | and now i don't get the Complex misdispatch and candidate misordering anymore | ||
vOv | |||
programming is weird, let's go programming | |||
zengargoylew | man $work keyboard is messing with my typing today. | ||
moritz | psch: ... and here I wanted to give you advice on how to recover a lost "git stash" :-) | ||
psch | moritz: i popped the stash, but resetted over it | 20:45 | |
hoelzro | would the stash be in the reflog? | ||
psch | moritz: i gather it might still sit around somewhere, but it worked out in the end, apparently... | ||
hoelzro | even after popping? | ||
Skarsnik | maybe there is a something in /proc with the mem info? | ||
hoelzro | Skarsnik: there is | ||
/proc/$pid/statm | |||
Skarsnik: gist.github.com/hoelzro/86ad3e184efa1042d9d0 | |||
moritz | hoelzro: probably not in the reflog, but in git fsck --no-reflog | 20:46 | |
hoelzro | ahhh | ||
psch | now i gotta fork moar... | ||
20:46
Actualeyes left
|
|||
moritz | also if you have the hash of stash in some terminal window, you can just apply it with "git stash apply $hash" | 20:47 | |
20:47
Amnez777_ joined
|
|||
psch | yeah, i came across apply recently, i think it also works with the top of the stash | 20:47 | |
as in "git stash apply" | |||
which is probably the better workflow than pop | 20:48 | ||
Skarsnik | I guess there is a $*PID variable? | 20:49 | |
hoelzro | m: $*PID | 20:50 | |
camelia | ( no output ) | ||
hoelzro | m: say $*PID | ||
camelia | rakudo-moar 2cac8c: OUTPUT«8849» | ||
Skarsnik | thx :) | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 9605950 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Model/Dists.pm: Documentation for ModulesPerl6::Model::Dists |
20:53 | |
20:56
hpd joined,
virtualsue joined
|
|||
hpd | hi! perl6 -M JSON::Tiny -e 'say "Hello World"' takes over a second for me, the same thing with HTTP::UserAgent over 11. Might I be doing something wrong? I installed rakudo-2015.09 from archs AUR, which uses moarvm | 20:58 | |
dalek | ast: 3fe83cf | usev6++ | S32-exceptions/misc.t: Add tests for RT #126091 |
||
hoelzro | hpd: I'm guessing that both modules are not precompiled; that's kind of a WIP | 20:59 | |
if they were precompiled, they would load a good deal faster | 21:00 | ||
hpd | hoelzro: ok, thanks. Is it possible to precompile them with panda? | 21:01 | |
btw, panda --help also takes over 7 seconds :) | |||
hoelzro | hpd: panda doesn't precompile things, I'm afraid | 21:02 | |
Skarsnik | hm say slurp("/proc/"~$*PID~"/statm"); show nothing (but work with cat proc/id/) | ||
hoelzro | Skarsnik: you can also do /proc/self/statm | ||
timotimo | wow, i made it through the backlog | 21:03 | |
MadcapJake: are you still fiddling around with valgrind? | |||
hoelzro | hpd: I've been rather bad about keeping up with Perl 6 the last two months or so, so the story may have changed | ||
21:03
rindolf left
|
|||
timotimo | MadcapJake: MoarVM will just exit when the program is done and not bother explicitly freeing things, so any heap sanitizer will scream "oh god, ALL THE MEMORY is LEAKED!" | 21:04 | |
hoelzro | I think that panda is going to delegate how and whether to precompile to the perl6 command | ||
21:04
diana_olhovik_ left
|
|||
Skarsnik | I am woried, my script take 0.1% more ram every second ~~ | 21:04 | |
hoelzro | Skarsnik: what does your script do? | 21:05 | |
I have a memory leak that I need to fix | |||
Skarsnik | m: say slurp("/proc/self/statm"); | ||
camelia | rakudo-moar 2cac8c: OUTPUT«24154 17370 5470 2 0 14071 0» | ||
Skarsnik | duh I get nothing | ||
timotimo | i usually "time" my perl6 programs, but that only gives you the peak memory usage | 21:06 | |
21:06
Amnez777_ left,
Amnez777_ joined
21:08
tokuhiro_ joined
|
|||
dalek | ast: 01a65f4 | usev6++ | S32-exceptions/misc.t: Add test for RT #126105 |
21:09 | |
Skarsnik | Basicly: parse a web page (happend every 15 sec?) get some id to call a json api with it (so a $ua.get) then create an object from it. and it grow like 0.1% of memory usage on top every second; (around 2Mo taken since mem is 2GB) | 21:10 | |
vendethiel 's glad he's mostly used .split("rn") and .ends-with | |||
hoelzro | if you're using any sub that has subsignatures, that leaks | ||
vendethiel | I only fixed a single script for $work /o/ | ||
hoelzro | I think TimToady found a leek with for loops too? | ||
s/leek/leak/ | |||
hoelzro waits for food jokes | 21:11 | ||
timotimo | .o( memory lead ) | ||
21:12
pmurias joined,
tokuhiro_ left,
softmoth_ left
|
|||
llfourn | m: my @a = <one two three>; for @a.kv -> $i,$num { @a.push("four") if $i == 0; say $num }' | 21:13 | |
camelia | rakudo-moar 2cac8c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FKCvGOoRg_Strange text after block (missing semicolon or comma?)at /tmp/FKCvGOoRg_:1------> 3{ @a.push("four") if $i == 0; say $num }7⏏5'» | ||
llfourn | m: my @a = <one two three>; for @a.kv -> $i,$num { @a.push("four") if $i == 0; say $num } | ||
camelia | rakudo-moar 2cac8c: OUTPUT«onetwothreefour» | ||
llfourn | I'm pretty sure that's cool | ||
hpd | hoelzro: I managed to precompile the all my installed modules and startup time for the second example did decrease by 10 seconds, thanks :) | 21:14 | |
hoelzro | \o/ | ||
timotimo | llfourn: yeah, that kind of thing happens when you have lazy iterators and such | ||
llfourn: if you want "the other meaning", you could .kv.cache or .kv.list or .kv.clone or something | |||
i shall try that | |||
m: my @a = <one two three>; for @a.kv.cache -> $i,$num { @a.push("four") if $i == 0; say $num } | |||
camelia | rakudo-moar 2cac8c: OUTPUT«onetwothreefour» | ||
hoelzro | hpd: you may encounter errors are version numbers when you upgrade rakudo; just so you're not surprised =) | ||
llfourn | :P | ||
timotimo | m: my @a = <one two three>; for @a.kv.clone -> $i,$num { @a.push("four") if $i == 0; say $num } | ||
camelia | rakudo-moar 2cac8c: OUTPUT«onetwothreefour» | ||
timotimo | m: my @a = <one two three>; for @a.kv.list -> $i,$num { @a.push("four") if $i == 0; say $num } | 21:15 | |
camelia | rakudo-moar 2cac8c: OUTPUT«onetwothreefour» | ||
timotimo | god damn it! :P | ||
Skarsnik | gist.github.com/Skarsnik/65af8fd9fd898ff6eb2a basicly it grow for 0.1% for each show_mem call | ||
hpd | hoelzro: thanks :) | ||
timotimo | Skarsnik: you should stop calling show_mem, then! with 0.1% growth, you'll soon go into the real part of the exponential growth curve! :P | 21:16 | |
Skarsnik: with --profile you'll be able to (by looking at the GC tab) figure out if the script is leaking memory into the gen2 or if it should be cleaning up everything, but something ends up leaking anyway | |||
Skarsnik: why are you using "eq" to compare against a number? | 21:17 | ||
Skarsnik | is there something else that the html output for profile? I think I saw a Qt thing | ||
I don't like == x) | |||
timotimo | huh, ok | ||
right, tadzik/p6profiler-qt on github | |||
that doesn't have the GC tab yet, and when i tried to implement it, i got annoyed by my lack of familiarity with qt's model/view framework :| | 21:18 | ||
Skarsnik: you'll want to --profiler-output (or --profiler-filename? i forget) to something with .json at the end, otherwise you'd have to manually cut out the json part from the html file | 21:19 | ||
Skarsnik | If I had less stuff to do I could look into it x) | 21:20 | |
llfourn | m: my @a = <one two three>; for [@a.kv] -> $i,$num { @a.push("four") if $i == 0; say $num }' | 21:21 | |
camelia | rakudo-moar 2cac8c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wGOhXsim_LStrange text after block (missing semicolon or comma?)at /tmp/wGOhXsim_L:1------> 3{ @a.push("four") if $i == 0; say $num }7⏏5'» | ||
llfourn | m: my @a = <one two three>; for [@a.kv] -> $i,$num { @a.push("four") if $i == 0; say $num } | ||
camelia | rakudo-moar 2cac8c: OUTPUT«onetwothree» | ||
Skarsnik | --profile is a huge slow down x) | ||
dalek | kudo-star-daily: 07bb6f0 | coke++ | log/ (3 files): today (automated commit) |
21:22 | |
mrf | test++ # spotting bugs | ||
timotimo | Skarsnik: it shouldn't be so terrible - only the output at the very end should be terrible :) | 21:23 | |
21:26
xfix left
21:27
diana_olhovik joined
|
|||
Skarsnik | It think the profiler does not like stuff that recurse too much x) | 21:27 | |
it take forever to get pass the 4-5 XML::Element.elements call | 21:28 | ||
21:30
lizmat joined
|
|||
MadcapJake | timotimo: it looked like all the errors were actually fluidsynth functions trying to apply settings to a synth that was deleted. It turned out that I needed to explicitly delete the audio driver first and then I could delete the synth. Docs weren't very clear on this but did have a little note that i glanced over xD | 21:30 | |
21:31
cygx joined
|
|||
cygx | hpd: I believe zef (an alternative module manager) does precompilation | 21:32 | |
see github.com/ugexe/zef | |||
lizmat waves from Miami | |||
mrf | .tell ugexe PR made with full passing tests and new RFC additions | 21:33 | |
yoleaux | mrf: I'll pass your message to ugexe. | ||
21:34
zhmylove joined,
TEttinger joined
|
|||
Skarsnik | timotimo, what should I look in GC part? (or do you want the output file?) | 21:35 | |
hoelzro | o/ lizmat | 21:36 | |
21:38
TrES2b joined
21:40
pRiVi joined
21:41
diana_olhovik left
|
|||
hoelzro | the exit status of the child isn't available via qq:x{...}, is it? | 21:43 | |
jdv79 | 25ms to deep clone:( its too slow | 21:44 | |
21:44
^elyse^ left
|
|||
jdv79 | is construction expensive? my profile has large jumps across new() calls. | 21:49 | |
hoelzro | jdv79: in my measurements that I haven't done for a while, I've found construction to be rather expensive | ||
jdv79 | also, is there a way to turn the profiler off and on at runtime? | ||
i would like to profile just a portion but have to run the rest... | 21:50 | ||
ok | |||
hpd | cygx: thanks. unfortunately it fails to run with "Undeclared routine: append used at line 58". Maybe my rakudo version is too old... | ||
21:50
kjs_ left
|
|||
dalek | rl6-most-wanted: 35b752c | RabidGravy++ | most-wanted/modules.md: Add URI::Template as a WIP |
21:52 | |
cygx | hpd: likely - the addition of append is fairly recent | ||
hpd | I see | ||
jdv79 | oh wow. my clone fumbly clone is faster than my constructor. but that makes sense since the constructor is running a grammar. | 21:53 | |
21:54
kaare_ left
|
|||
cygx | I've actually started to work on my own solution for precompilation | 21:54 | |
cf github.com/cygx/6make | |||
it's more of a hack than a proper solution, but I think it'll keep until Rakudo finally gets automatic precompilation | 21:55 | ||
llfourn | how does one precompile stuff now? | ||
tadzik | one doesn't | 21:56 | |
or one uses zef | |||
hoelzro | one does not simply precompile modules into Mordo^WPerl 6 | 21:57 | |
llfourn | ok I'll wait till one does simply prcompile things | 21:58 | |
[Coke] | jnthn++ for the roast commit on adhoc -> Excption | ||
hoelzro | llfourn: sorry; I think it's waiting on CURLI work | 21:59 | |
llfourn | hoelzro: it's ok I just saw a lotta talk about it so I thought it might be a secret --switch :) | 22:00 | |
hoelzro | you can do it by hand with --target=mbc and --output | ||
22:00
skids left
|
|||
[Coke] finally catches up with backlog... just in time to go into an hour long meeting | 22:01 | ||
llfourn | hoelzro: oohhh so there is a secret switch :) | ||
cygx | llfourn: just treat it like any other compiled language and add a Makefile to your project | ||
eg github.com/cygx/p6-tinycc/blob/master/Makefile | 22:02 | ||
RabidGravy | :) | ||
22:02
kjs_ joined
|
|||
llfourn | sounds good. The thing I'm writing now takes about 8 seconds to compile and 0.5 to run :\ | 22:02 | |
llfourn delves into precompiling | 22:03 | ||
22:09
FROGGS left
|
|||
dalek | kudo/for-mvm-pr291: 4e3eab6 | peschwa++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Don't bypass multicache for rwness-aware multis. This commit (and branch) depend on MoarVM pull request #291, and can be merged whenever that PR gets merged (or something equivalent implemented). |
22:09 | |
22:12
FROGGS joined
|
|||
RabidGravy | I've actually surprised myself I thought this uri template malarkey would be too much for my feeble brane and take a week or more, it appears I might have it by the weekend depending on how much beer is involved ;-) | 22:13 | |
cygx | RabidGravy: looking for the Ballmer Peak? | 22:14 | |
22:16
zengargoylew left
22:17
Travis_ joined
|
|||
RabidGravy | DEVELOPERS! DEVELOPERS! DEVELOPERS! I LOVE YOU! | 22:17 | |
22:18
Travis_ left,
polettix joined
|
|||
pink_mist | whee, #perl6 has its own Yaakov! :P | 22:18 | |
RabidGravy | just channeling Balmer | 22:19 | |
cygx | .oO( all is fun and games until the chairs start flying ) |
||
timotimo | Skarsnik: look for red pieces of bar. are they common or rare? | 22:21 | |
Skarsnik | in the Allocations tab? | 22:22 | |
22:23
Zoffix left
|
|||
Skarsnik | there is quite a lot of red bar in the GC part yes | 22:23 | |
timotimo | 'k | 22:24 | |
well, green means stuff that gets thrown out from nursery to nursery, yellow means things that survive into the next nursery, red means things that gets pushed to the old generation | |||
our old generation implements a free list through the whole thing, so it's possible to inflate it once and then have it riddled with holes | 22:25 | ||
but that's probably not the case here | |||
Skarsnik | 64Mo the html file ~~ | ||
timotimo | in the allocations tab you can have a look what gets commonly allocated and what routines do that | ||
yeah :( | |||
Skarsnik | I suppose I ignore bootcode/Scalar? since it's like a huge chunk of the aloc | 22:26 | |
there is a bind_one_param in bootcode that is all red | 22:30 | ||
22:30
kjs_ left,
Ven joined
|
|||
jdv79 | RabidGravy: you had a chocolate lager? was is musty or watery? | 22:31 | |
doesnt seem like that would be good. | 22:32 | ||
mrf | Chocolate porter on the outher hand :D | ||
timotimo | BOOTCode means we take closures | ||
RabidGravy | it was actually quite pleasant, strong chocolate flavour. I was skeptical too. | ||
Skarsnik | www.nyo.fr/~skarsnik/tmp/profile-14...08688.html if you are curious ~~ | 22:33 | |
22:33
virtualsue left
|
|||
RabidGravy | it had that complex chocolate malt flavour you get in a porter or a stout but was definitely a lager | 22:34 | |
jdv79 | ive never seen one. | 22:36 | |
timotimo wgets it | 22:38 | ||
RabidGravy | it's this www.hogsback.co.uk/product/montezumas/ - I'm vaguely acquainted with head brewer there - he always seemed quite a go-ahead guy | 22:39 | |
BooK | oh nice, there's a profiler for perl6? | 22:40 | |
arnsholt | There's a built-in profiler on Moar | 22:41 | |
Skarsnik | rakudo/moar offer a --profile option | ||
arnsholt | Yeah run it with --profile, and it'll write an HTML file with profiling info like what are expensive functions and how much time is spent in GC and such | 22:42 | |
jdv79 | whoa that color and choc would freak me out | 22:43 | |
like pepsi clear | |||
or whatever that was called | |||
still id have to try it if i saw it | 22:44 | ||
22:45
Ven left
22:46
Ven joined,
vendethiel left,
telex left
22:48
telex joined
22:49
Ven left,
Ven joined
22:52
FROGGS left
22:53
FROGGS joined
22:58
pmurias left
|
|||
Skarsnik | Good night here :) | 22:59 | |
22:59
Skarsnik left
23:09
cygx left
|
|||
RabidGravy | rarr! | 23:09 | |
psch | ...zipp? | 23:12 | |
Ulti | www.reddit.com/r/perl/comments/3sl...or_perl_6/ | ||
dalek | kudo/nom: f4e9d5e | lizmat++ | src/core/List.pm: Make List.roll(n) 50% faster + some streamlining |
23:13 | |
psch | pretty good answer by MattEOates++ there | ||
jdv79 | sigzero sounds familiar. pm? #perl? | 23:14 | |
maybe the x in y? | |||
psch | sigzero is an account on perlmonks at least | ||
23:14
spider-mario left
|
|||
psch | the perl6inyminutes is written by Ven++ | 23:14 | |
jdv79 | oh, util covered it well | ||
Ven | yes, hi | 23:15 | |
psch | ah, MattEOates is Ulti? | ||
23:16
tokuhiro_ joined
|
|||
psch | m: say 0 ~~ 0 ~~ 0 | 23:16 | |
camelia | rakudo-moar 2cac8c: OUTPUT«False» | ||
psch | that's such a weird thing to think about... | ||
Ulti | psch: thats me >:P | ||
psch | RT #81336, for reference rt.perl.org/Ticket/Display.html?id=81336 | 23:17 | |
Ulti: well, Ulti++ then too :P | |||
Ulti | karma \o/ | ||
but I linked more to see if any of you lot can think of something to add | 23:18 | ||
there are a lot of blogs but most arent really that instructional | |||
jdv79 | afaik thats all of it probably | 23:19 | |
23:20
tokuhiro_ left
|
|||
Ulti | the perltuts thing does have an open repo where you can write tutorials with live programming activities just in POD | 23:21 | |
RabidGravy | m: say "foo".Str(foo => 1); # is it safe relying on this not crapping out? | ||
camelia | rakudo-moar 2cac8c: OUTPUT«foo» | ||
Ulti | github.com/vti/perltuts.com-tutori.../master/v6 | 23:22 | |
which map to dev.perltuts.com/tutorials/perl-6-basics | |||
in case anyone is keen, the code boxes have a fairly recent version of rakudo on moarvm 2015.9 | 23:24 | ||
23:24
skids joined
|
|||
Ulti | oooo Docker! | 23:24 | |
RabidGravy | speaking of docker, if someone makes local (i.e AF_UNIX|AF_LOCAL) sockets work RSN I'll finish the Docker API client ;-) | 23:26 | |
anyway, bedtime for rabid | 23:27 | ||
toodlepip, play nicely | |||
lizmat | good night, RabidGravy | 23:28 | |
Ulti | same g'night | ||
23:31
RabidGravy left
23:34
Ven left,
Ven joined
23:35
lostinfog left
23:40
khw left
|
|||
lizmat | dinner& | 23:45 | |
23:45
Ven left
23:46
Ven joined
23:52
DrPete_ left,
stmuk left
|
|||
Hotkeys | what up party people | 23:53 | |
jdv79 | where is this party? | 23:54 | |
im kinda tired. almost bedtime | |||
Hotkeys | the p in perl stands for party dontcha know | ||
pink_mist | (who are you calling people?! :P) | ||
23:54
retupmoca left
23:55
boegel joined
|
|||
Hotkeys | the p also stands for people | 23:55 | |
pink_mist | it's a busy little p =) | ||
Hotkeys | yeah | ||
the busiest | |||
23:56
Gardner joined
|
|||
TrES2b | IM IN LOVE WITH THE COCO | 23:56 | |
23:56
hobbs joined
23:58
FROGGS left
23:59
DrPete_ joined
|