Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 [Coke] .tell pmurias I'm just using a shotgun here. Feel Free to fix any of my stupids. (esp in re: the _I variants which I know are wrong)
00:02 yoleaux [Coke]: I'll pass your message to pmurias.
00:11 dalek nqp: 72c955f | coke++ | docs/ops.markdown:
00:11 dalek nqp: Convert from Int -> Any
00:11 dalek nqp: review: https://github.com/perl6/nqp/commit/72c955f259
00:11 dalek nqp: 108c2d6 | coke++ | docs/ops.markdown:
00:11 dalek nqp: Add ops from Numerics::Basics
00:11 dalek nqp: review: https://github.com/perl6/nqp/commit/108c2d6468
00:11 dalek nqp: 7388952 | coke++ | docs/nqp-opcode.txt:
00:11 dalek nqp: Add pointer to new docs.
00:11 dalek nqp:
00:11 dalek nqp: (Remove ops already in new file)
00:11 dalek nqp: review: https://github.com/perl6/nqp/commit/7388952dc7
00:12 Psyche^_ joined #perl6
00:16 BenGoldberg r: say join "", "", "a".."z"
00:16 camelia rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz␤»
00:16 BenGoldberg r: say join "\c[combining low line]", "", "a".."z"
00:17 camelia rakudo 223075: OUTPUT«̲a̲b̲c̲d̲e̲f̲g̲h̲i̲j̲k̲l̲m̲n̲o̲p̲q̲r̲s̲t̲u̲v̲w̲x̲y̲z␤»
00:17 BenGoldberg r: say join "\c[combining double low line]", "", "a".."z"
00:17 camelia rakudo 223075: OUTPUT«̳a̳b̳c̳d̳e̳f̳g̳h̳i̳j̳k̳l̳m̳n̳o̳p̳q̳r̳s̳t̳u̳v̳w̳x̳y̳z␤»
00:17 BenGoldberg Quick question: do those three lines look like they're the same length (amount of screen width) as each other, to anyone?
00:17 krokite joined #perl6
00:18 BenGoldberg This is an irc viewer / unicode display question rather than a perl question, I hope no one minds :)
00:20 Mouq BenGoldberg: Yes
00:21 Mouq The "z␤»" is at the same place in all three for me; monospaced font here, though.
00:22 BenGoldberg On mIRC, the all look like they're different lengths (even though I'm using Courier New font, which is supposed to be monospaced)
00:22 Mouq I think the font renderer counts 25 characters that take up space and so renders it like that
00:22 Mouq I'm in iTerm
00:22 BenGoldberg Thank's Mouq... next question: do the second and third lines look like underlined (and double underlined) a-z?
00:23 timotimo the z isn't underlined in any of the lines (for a good reason)
00:23 TimToady the logs appear off-by-1 on the underlining, at least under firefox
00:23 fridim__ joined #perl6
00:23 BenGoldberg D'oh, combining means combine with previous, doesn't it?
00:23 Mouq ... no, they're all collapsed into a single space for me.
00:23 timotimo why the « gets one is a mistery to me, though
00:23 Mouq Except z
00:23 TimToady oh, wait, that's what you printed
00:23 timotimo why the z doesn't get one makes sense.
00:24 timotimo (because join)
00:24 TimToady combiners are supposed to follow their combinee
00:24 Mouq timotimo: because of the ""
00:24 timotimo oh!
00:24 BenGoldberg r: say join "\c[combining low line]", "a".."z", ""
00:24 camelia rakudo 223075: OUTPUT«a̲b̲c̲d̲e̲f̲g̲h̲i̲j̲k̲l̲m̲n̲o̲p̲q̲r̲s̲t̲u̲v̲w̲x̲y̲z̲␤»
00:24 timotimo you did that!
00:24 timotimo sneaky :)
00:25 TimToady many of the combiners are actually wrong in my terminal
00:25 BenGoldberg r: say join "\c[combining double low line]", "a".."z", ""
00:25 camelia rakudo 223075: OUTPUT«a̳b̳c̳d̳e̳f̳g̳h̳i̳j̳k̳l̳m̳n̳o̳p̳q̳r̳s̳t̳u̳v̳w̳x̳y̳z̳␤»
00:25 BenGoldberg Do those show up with the z underlined?
00:25 TimToady yes, and the NL after it :)
00:25 timotimo to me, yes (gnome-terminal)
00:25 TimToady but not the a
00:25 TimToady because gnome-terminal is buggy that way
00:25 timotimo huh? with my gnome-terminal, the a does get underlined
00:26 TimToady innersing
00:26 TimToady *sting
00:26 Mouq BenGoldberg: http://irclog.perlgeek.de/perl6/2013-09-18#i_7599829
00:26 Mouq In other words, yes
00:26 TimToady my firefix does it right but my gnome-terminal does it wrong
00:27 BenGoldberg r: say join "\c[synchronous idle]", "", "a".."z"
00:27 camelia rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz␤»
00:27 timotimo what the hell is that o_O
00:27 timotimo oh, wait, perhaps this isn't even gnome-terminal
00:28 TimToady lucky you
00:28 timotimo nope, it totally is
00:28 Mouq r: say join "\c[symbol for synchronous idle]", "", "a".."z"
00:28 camelia rakudo 223075: OUTPUT«␖a␖b␖c␖d␖e␖f␖g␖h␖i␖j␖k␖l␖m␖n␖o␖p␖q␖r␖s␖t␖u␖v␖w␖x␖y␖z␤»
00:28 Mouq :D
00:28 BenGoldberg r: say join "\c[information separator for one]", "", "a".."z"
00:28 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/P7jok7tdkI�Unrecognized character name information separator for one�at /tmp/P7jok7tdkI:1�------> [32my join "\c[information separator for one[33m�[31m]", "", "a".."z"[0m�»
00:28 BenGoldberg r: say join "\c[information separator one]", "", "a".."z"
00:28 camelia rakudo 223075: OUTPUT«abcdefghijklmnopqrstuvwxyz␤»
00:29 Mouq Oh \c[synchronous idle] is basically ^V
00:29 * TimToady is running gt 3.6.1
00:29 TimToady timotimo: what is your version?
00:30 timotimo 3.6.1 as well
00:30 Mouq Doensn't X manage fonts? I thought…
00:30 timotimo though maybe mint (or the ubuntu it's based on) has some patches in there?
00:30 timotimo monaco 9 is the font on my end, perhaps that has something right and your font has something wrong?
00:33 * TimToady is ubuntu, so maybe mint, font is just Monospace 17
00:34 Mouq https://en.wikipedia.org/wiki/FreeType
00:34 TimToady hmm, doesn't even provide Monaco, seemingfully
00:35 dalek nqp: 648a121 | coke++ | docs/ops.markdown:
00:35 dalek nqp: add trigonometric codes
00:35 dalek nqp: review: https://github.com/perl6/nqp/commit/648a121632
00:35 dalek nqp: 783df30 | coke++ | docs/ (2 files):
00:35 dalek nqp: Add Relational ins opcodes
00:35 dalek nqp: review: https://github.com/perl6/nqp/commit/783df309bf
00:35 TimToady lemme check from Mint
00:35 timotimo i installed monaco manually
00:36 Mouq I think you guys may be using FreeType, and if so, maybe different versino
00:36 Mouq Excuse my accent
00:38 TimToady buggy on mint too, with Monospace 10
00:38 timotimo hoelzro: when you said the github person followed through, did that refer to the pygments stuff and language guessing module?
00:39 * colomon is pondering if he could implement ISO 10303-11 in NQP as part of his current contract $work
00:40 BenGoldberg r: for (((0..15) X (0..15)).pick(64)) -> $f, $b { print "", $f, ",", $b,"X" }
00:40 camelia rakudo 223075: OUTPUT«8,1X,7X8,8X5,10X,1X8,4X7,10X6,10X2,11X,9X6,0X5,12X,11X6,13X3,12X,15X3,11X1,0X,2X,8X6,5X2,2X6,9X3,5X,2X,0X,10X8,3X2,0X6,12X9,12X,7X4,9X4,2X,0X,12X,14X7,5X,11X9,1X,14X,6X,13X,11X…»
00:41 [Coke] GAH.
00:43 BenGoldberg r: for (((0..15) X (0..15)).pick(64)) -> $f, $b { print "X" }
00:43 camelia rakudo 223075: OUTPUT«XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX»
00:44 BenGoldberg I wonder if there's a way to tell perl that (for a particular task) particular sequences should be treated as zero width sequences, for the purpose of measuring a string
00:45 dalek nqp: 965a55e | coke++ | docs/ops.markdown:
00:45 dalek nqp: add sections for more opcodes
00:45 dalek nqp: review: https://github.com/perl6/nqp/commit/965a55e7e7
00:45 Mouq colomon: sounds cool
00:45 colomon Mouq: it's a massive pain-in-the-neck I have to solve something.  doing it in NQP would just be a way to make it more interesting.
00:45 colomon s/something/somehow/
00:46 Mouq [Coke]++ #NQP documentation
00:47 Mouq colomon: Sounds even cooler :)
00:47 [Coke] Mouq: just grunt work at the moment, you're welcome. (and welcome to join in! I can give you a list of short op names if you want to fill in a section. ;)
00:49 cognominal joined #perl6
00:49 Mouq Sure
00:50 Mouq '/msg me if you want
00:51 [Coke] new fun game: when asked for your name when waiting for a food order, give the name of someone on channel instead of yours.
00:52 Mouq .oO( …And get the most out of that credit card you found at YAPC )
00:53 [Coke] (I hate giving out my name when they don't need it. :P)
00:59 * geekosaur reminded of old acquaintance who used "N. Ritchie Kernighan"
01:02 benabik joined #perl6
01:04 BenGoldberg Hi, my name is dalek and I'd like to order a ....
01:05 BenGoldberg Hi, my name is hugme and I'd like to order a double order of hugs :)
01:09 Mouq Hi, my name is dale- FLOOD ERROR
01:12 stevan__ joined #perl6
01:14 FROGGS_ joined #perl6
01:28 btyler joined #perl6
02:03 dalek joined #perl6
02:18 benabik joined #perl6
02:21 dalek nqp: 436f7a5 | Mouq++ | docs/ops.markdown:
02:21 dalek nqp: Add Hash opcodes to ops.markdown
02:21 dalek nqp: review: https://github.com/perl6/nqp/commit/436f7a5013
02:21 dalek nqp: 165d8e5 | jimmy++ | docs/ops.markdown:
02:21 dalek nqp: Merge pull request #131 from Mouq/master
02:21 dalek nqp:
02:21 dalek nqp: Add Hash opcodes to ops.markdown
02:21 dalek nqp: review: https://github.com/perl6/nqp/commit/165d8e5b24
02:21 FROGGS joined #perl6
02:26 btyler joined #perl6
02:55 Mouq When one is speaking about an array, does one say "…do this to array @a at position $i…"?
02:59 panchiniak_ joined #perl6
03:05 cognominal joined #perl6
03:06 preflex_ joined #perl6
03:11 bruges_ joined #perl6
03:12 [Coke] that seems reasonble.
03:12 bonsaikitten joined #perl6
03:13 kshannon joined #perl6
03:13 xenoterracide joined #perl6
03:13 JimmyZ_ joined #perl6
03:13 prammer_ joined #perl6
03:14 autumn joined #perl6
03:14 mattp_ joined #perl6
03:18 araujo_ joined #perl6
03:18 masak joined #perl6
03:18 Util joined #perl6
03:22 stevan_ joined #perl6
03:23 stevan_ joined #perl6
03:26 stevan_ joined #perl6
03:27 araujo joined #perl6
03:28 salv0 joined #perl6
03:38 dalek nqp: f6e2b7b | Mouq++ | docs/ops.markdown:
03:38 dalek nqp: Add Array opcodes to ops.markdown. nqp::splice not documented
03:38 dalek nqp:
03:38 dalek nqp: Someone who knows what they're talking about should document splice.
03:38 dalek nqp: review: https://github.com/perl6/nqp/commit/f6e2b7be12
03:38 dalek nqp: 5b1a452 | Mouq++ | docs/ops.markdown:
03:38 dalek nqp: [ops.markdown] s/$b/$v/
03:38 dalek nqp: review: https://github.com/perl6/nqp/commit/5b1a452582
03:38 dalek nqp: 3c4f80a | Mouq++ | docs/nqp-opcode.txt:
03:38 dalek nqp: Remove ops documented from nqp-opcodes.txt
03:38 dalek nqp: review: https://github.com/perl6/nqp/commit/3c4f80a973
03:38 dalek nqp: 677b1f1 | Mouq++ | docs/ops.markdown:
03:38 dalek nqp: [ops.markdown] (int %hash…) etc doesn't make sense
03:38 dalek nqp: review: https://github.com/perl6/nqp/commit/677b1f1ae8
03:38 dalek nqp: 1189dd6 | jimmy++ | docs/ (2 files):
03:38 dalek nqp: Merge pull request #132 from Mouq/master
03:38 dalek nqp:
03:38 dalek nqp:  Add Array opcodes to ops.markdown
03:38 dalek nqp: review: https://github.com/perl6/nqp/commit/1189dd6c26
03:39 Mouq Thanks JimmyZ
03:39 * Mouq → bed
03:40 JimmyZ_ good night
03:41 panchiniak_ left #perl6
04:58 slavik joined #perl6
05:14 FROGGS joined #perl6
05:42 moritz good morning
05:42 moritz I have given Mouq++ an NQP commit bit
05:45 JimmyZ morning
05:52 denis_boyun joined #perl6
05:56 denis_boyun__ joined #perl6
06:28 pernatiy joined #perl6
06:29 kaleem joined #perl6
06:33 FROGGS joined #perl6
06:40 slavik joined #perl6
06:51 slavik joined #perl6
06:51 FROGGS joined #perl6
06:54 FROGGS o/
07:02 woolfy joined #perl6
07:08 rindolf joined #perl6
07:09 zakharyas joined #perl6
07:10 dayangkun joined #perl6
07:12 domidumont joined #perl6
07:19 sqirrel joined #perl6
07:24 masak morning, #perl6
07:27 moritz \o masak, FROGGS, *
07:27 FROGGS morning :o)
07:28 GlitchMr joined #perl6
07:37 jlaire joined #perl6
07:38 domidumont joined #perl6
07:40 jlaire left #perl6
07:40 * nwc10 wonders how scary jnthn's alarm clock is today
07:47 mberends joined #perl6
07:54 dmol joined #perl6
08:01 frettled joined #perl6
08:05 yeltzooo joined #perl6
08:20 connectanot joined #perl6
08:34 hoelzro timotimo: yes
08:34 hoelzro (also, good morning #perl6)
08:34 SamuraiJack joined #perl6
08:35 trnh joined #perl6
08:45 masak nwc10: not so scary, it would seem :)
08:46 GlitchMr joined #perl6
08:47 nwc10 it's still morning. There's hope yet
08:48 jnthn morning o/
08:48 jnthn Didn't set alarm today :)
08:49 jnthn Wanted to get lots of sleep, 'cus I know I gotta be at the airport by 7am tomorrow... :)
08:49 nwc10 7am. Yuk
08:53 hoelzro can I haz rakudo commit bit? I'm rolling that failing case into a test file for the repository
08:53 hoelzro hmm
08:53 tadzik hoelzro: did you send the CLA?
08:53 hoelzro maybe I should check roast for an analogous test first, though...
08:53 moritz hoelzro: we don't hand out rakudo commit bits as liberally as for other repos
08:53 hoelzro ah
08:53 moritz hoelzro: you need to sign the CLA, and send in a few good patches
08:54 moritz until then you have to send old-fashioned patches or pull requests
08:54 tadzik I believe hoelzro's got the second point covered
08:54 hoelzro oh, ok
08:54 hoelzro it's not imperative
08:55 hoelzro whoa
08:55 hoelzro I just typed '$?VM' into rakudo-jvm (the REPL) and it freaked out
08:55 tadzik :)
08:55 tadzik I believe $*VM works
08:55 hoelzro try $?VM; see if you see what I saw
08:56 hoelzro because it's crazy
08:56 tadzik but here's exception
08:56 tadzik so throw me maybe
08:56 tadzik I'm sorry
08:56 hoelzro hahaha
08:57 masak tadzik++
08:57 dakkar joined #perl6
09:02 GlitchMr joined #perl6
09:04 daxim joined #perl6
09:10 GlitchMr joined #perl6
09:12 huf joined #perl6
09:20 pernatiy joined #perl6
09:21 masak rn: say "1a23b45c6" ~~ / [ \d <( <[abc]> )> \d ]+ /
09:21 camelia rakudo 223075: OUTPUT«「c」␤␤»
09:21 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«「a」␤␤»
09:21 masak I would like to make a case for the correct reply here being 「abc」.
09:21 masak thoughts?
09:21 jnthn :/
09:22 jnthn Not sure how what'd work
09:22 jnthn *that'd
09:22 masak the fact that Rakudo and Niecza disagree is interesting on its own.
09:22 masak OK, let's start with the conservative option, then: the above is disallowed.
09:23 masak or, more generally, <( )> inside a quantifier is disallowed.
09:23 jnthn Thing is, quantified things typically result in an array
09:23 jnthn But here we're talking about the top-level Match...
09:23 masak yeah.
09:23 masak I'm pretty sure there is a wonderful, correct answer. but I don't quite see it now.
09:23 jnthn Which is why I'm not sure what to do...
09:24 masak anyway, OK if I submit rakudobug for not following the conservative option?
09:24 pmurias joined #perl6
09:24 dalek rakudo-js: b55521f | (Pawel Murias)++ | / (11 files):
09:24 dalek rakudo-js: Make nqp-compiler.js pass a bunch of tests (using a cross compiled setting).
09:24 dalek rakudo-js:
09:24 dalek rakudo-js: Add NQP::Compiler, HLL::Compiler to nqp-compiler.nqp.
09:24 dalek rakudo-js: Support negative indexes in array lookup e.g. @foo[-1].
09:24 dalek rakudo-js: Implement nqp::islt_s.
09:24 dalek rakudo-js: Implement nqp::radix.
09:24 dalek rakudo-js: Implement nqp::ctxlexpad.
09:24 dalek rakudo-js: Implement nqp::ctxouter.
09:24 dalek rakudo-js: Stub nqp::lexprim.
09:24 dalek rakudo-js: Implement iterating over contexts.
09:24 dalek rakudo-js: Set WHO for knowhow STables.
09:24 dalek rakudo-js: Hashes numify to their number of elements.
09:24 dalek rakudo-js: Hack to allow numfixing nulls.
09:24 dalek rakudo-js: Make nqp::unshift work on type objects.
09:24 dalek rakudo-js: Implement nqp::preinc and nqp::predec.
09:24 dalek rakudo-js: Disable broken static vars inlining.
09:24 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/b55521f37a
09:25 GlitchMr joined #perl6
09:25 moritz IMHO we should forbid <( and )> inside a quantifier
09:25 jnthn masak: Maybe a spec ticket, if the spec doesn't alrady say (no, I didn't check...)
09:26 jnthn masak: Would prefer we file Rakudo bugs based on spec'd stuff, so spec ticket feels better to track the issue, then file a Rakudo one when the spec one is resolved.
09:28 masak jnthn: gotcha. filing.
09:28 jnthn I just looked through all mentions of <( in S05 and don't see any wording on it being inside a quantified thingy.
09:28 masak *nod*
09:29 moritz or more general
09:29 moritz repeated use of <(
09:29 moritz nr: say 'abc' ~~ /a<(b<(c/
09:29 camelia niecza v24-95-ga6d4c5f: OUTPUT«「bc」␤␤»
09:29 camelia ..rakudo 223075: OUTPUT«「c」␤␤»
09:29 moritz same problem
09:30 moritz niezca takes the first one, rakudo the last one
09:30 FROGGS nr: say 'abc' ~~ /a)>b<(c/
09:30 camelia rakudo 223075: OUTPUT«#<failed match>␤»
09:30 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Cannot be negative.␤Parameter name: length␤  at System.String.Substring (Int32 startIndex, Int32 length) [0x00000] in <filename unknown>:0 ␤  at Niecza.CtxMatchStr.Get (Niecza.Variable obj) [0x00…»
09:31 fhelmberger joined #perl6
09:33 masak https://github.com/perl6/specs/issues/60
09:33 moritz masak++
09:36 SamuraiJack_ joined #perl6
09:36 fhelmberger_ joined #perl6
09:37 masak rn: say "abc\n" ~~ /abc\n^^/ # why doesn't this match?
09:37 camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«Nil␤»
09:37 moritz rn: say "abc\n\n" ~~ /abc\n^^/
09:37 FROGGS ha, you included my rediculous example *g*
09:37 camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«「abc␤」␤␤»
09:37 moritz masak: because there is neither a line after the \n, nor the start of the string
09:38 masak isn't the position at the end of my string the beginning of an (empty) line?
09:39 moritz masak: an empty line would be "\n", not ""
09:39 moritz p5eval: "abc\n" =~ /abc\n^/m
09:39 p5eval moritz: No output
09:39 masak moritz: you're saying lines are \n-terminated, not \n-separated?
09:39 masak ...and whatever comes after the last \n is *not a line*?
09:40 FROGGS well, there is nothing
09:40 moritz hm
09:40 moritz p5eval: "abc\na" =~ /abc\n^/m
09:40 p5eval moritz: 1
09:40 moritz huh
09:40 moritz erm
09:40 moritz I call this inconsistent
09:40 moritz Perl 6 is consistent with Perl 5 here
09:40 moritz and both are inconsistent in themselves
09:41 masak fwiw, I was parsing a file when all this struck me.
09:41 masak currently trying to make the grammar work against all the cases.
09:41 masak will need to write tests for the grammar. :)
09:42 nwc10 I don't think that you should assume that Perl 5 is right, or good
09:42 nwc10 just because it's been paying for the party for the past decade or two
09:42 cognominal__ joined #perl6
09:43 moritz sure
09:43 masak well, of course.
09:43 moritz just wanted to check, because often p5 regexes behavior *is* well thought-out
09:43 masak aye.
09:44 masak here's my mental model, fwiw: a "line" is any maximal run of characters that don't contain a logical \n. thus ^^ at the end of a string that finishes with a "\n", should match.
09:45 moritz agreed
09:46 masak in defense of this interpretation, I'd also like to point out that there's absoltely nothing that says a (text) file has to end in a "\n".
09:46 masak (and thus that final "\n" doesn't so much end the previous line, as it begins a new one)
09:46 moritz there is something
09:47 moritz two decades of UNIX tradition
09:47 moritz (not saying that's valid, just that it exists)
09:47 bruges joined #perl6
09:47 masak indeed -- not contesting that there is tradition.
09:48 masak but I've also seen plenty of files not containing that final newline.
09:48 masak btw, all this reminds me about the special case put into Perl 5's &split.
09:48 masak feels like the same issue twice in slightly different guise.
09:49 moritz "the" special case? you mean there's just one? :-)
09:50 masak $ perl -E 'say for split /\|/, "a|b|c|"'
09:50 masak a
09:50 masak b
09:50 masak c
09:50 masak that one.
09:51 masak the one that says "the last delimited doesn't count if there's nothing after it".
09:51 masak delimiter*
09:51 moritz trailing empty elements are removed from split's output
09:51 moritz unless you add a -1 as limit
09:51 masak that's what I mean.
09:51 masak it doesn't happen for leading empty elements.
09:51 masak anyway, taking the delimiter as \n, we basically have our current case.
09:56 masak rn: .say for "a|b|".split('|')
09:56 camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«a␤b␤␤»
09:56 masak Perl 6 does *not* have the special case.
09:57 masak shouldn't for newlines either.
09:57 masak ...for newlines in grammars, I mean.
10:00 fhelmberger joined #perl6
10:00 FROGGS masak: you have convinced me fwiw
10:00 * masak submits rakudobug
10:07 * masak .oO( that brief moment when you look at the last line of PgUp'd backlog, and go "but moritz, we talked about this already? why bring it up again!?" ) :P
10:08 masak s/\?/./
10:08 moritz why do we have a file src/core/Any2.pm
10:08 jnthn hm, I thought we only had that in a branch...
10:09 moritz ah, it seems to be a pseudo-Any stuff
10:09 moritz jnthn: a branch named nom :-)
10:09 jnthn Part of the postcircumfix refactors, anyways
10:09 jnthn ah, I thought lizmat was keeping it more segregated than that...
10:09 jnthn Anyway, it's temporary.
10:10 masak &
10:15 fhelmberger_ joined #perl6
10:16 denis_boyun joined #perl6
10:17 hoelzro what are the roast/integration tests for?
10:17 hoelzro just general failures that we find and and test for regressions?
10:19 jnthn hoelzro: Tests that exercise multiple features together
10:19 hoelzro ok
10:19 hoelzro I'm just wondering where this belongs: https://gist.github.com/hoelzro/6607190
10:28 * hoelzro filed rakudobug
10:28 hoelzro we'll sort it out later
10:39 dalek rakudo-js: aa5c92c | (Pawel Murias)++ | runtime.js:
10:39 dalek rakudo-js: Fix nqp::isne_s.
10:39 dalek rakudo-js:
10:39 dalek rakudo-js: This was causing a bug in the precedence parses in nqp-on-js.
10:39 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/aa5c92cb62
10:50 rindolf joined #perl6
10:58 GlitchMr joined #perl6
11:10 GlitchMr joined #perl6
11:18 GlitchMr joined #perl6
11:31 pernatiy joined #perl6
11:34 denis_boyun joined #perl6
11:34 GlitchMr joined #perl6
11:38 * masak waves from a train!
11:38 * moritz trains from a wave
11:39 * tadzik traves from a wain
11:39 moritz .. in vain!
11:42 * masak .oO( always in this vein )
11:49 domidumont joined #perl6
11:54 pmurias jnthn: I don't fully undestand nqp::freshcoderef, it seems to clone the code ref and it's static how does the latter change?
11:54 yoleaux 00:02Z <[Coke]> pmurias: I'm just using a shotgun here. Feel Free to fix any of my stupids. (esp in re: the _I variants which I know are wrong)
11:59 jnthn pmurias: iirc, iIt's used to make sure the serializer knows the diference between different coderefs rather than them all being closure clones of the thunk on NQP::World or Perl6::World.
11:59 jnap joined #perl6
12:06 iSlug joined #perl6
12:07 ksh joined #perl6
12:07 FROGGS joined #perl6
12:12 PZt joined #perl6
12:12 rindolf joined #perl6
12:17 PZt joined #perl6
12:19 iSlug joined #perl6
12:26 GlitchMr joined #perl6
12:26 isBEKaml joined #perl6
12:32 GlitchMr joined #perl6
12:35 isBEKaml joined #perl6
12:37 denis_boyun joined #perl6
12:48 fridim__ joined #perl6
12:51 rindolf joined #perl6
12:51 kbaker joined #perl6
13:00 huf joined #perl6
13:02 prevost joined #perl6
13:03 lizmat joined #perl6
13:11 mberends o/ lizmat
13:11 lizmat mberends o/
13:12 moritz \o mberends, long time no see
13:12 mberends aye, nice to see you again :-)
13:13 lizmat too bad the two of you didn't meet at the RaNIW  :-(
13:13 nwc10 have to have another one. Obviously.
13:14 lizmat nwc10: will you attend then ?
13:14 nwc10 probably not. still.
13:14 lizmat .oO( one reason less to organize another one)
13:15 lizmat ;-)
13:16 ajr joined #perl6
13:36 flussence joined #perl6
13:37 lizmat moritz, jnthn: re: http://irclog.perlgeek.de/perl6/2013-09-18#i_7601349  it's already gone in my repo, but waiting to commit until after the release
13:38 * lizmat caught up on yesterdays/todays backlog and wonders whether she should look at the past weekend's backlog
13:39 moritz lizmat: would you mind pushing it into a branch?
13:39 lizmat I guess I could
13:39 lizmat without the upcoming release, I would have committed it already
13:43 moritz oh right, tomorrow is rakudoday!
13:45 prevost joined #perl6
13:46 dalek rakudo/method2sub: 031ff96 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files):
13:46 dalek rakudo/method2sub: Change op generation for [] and {} from method to sub
13:46 dalek rakudo/method2sub: review: https://github.com/rakudo/rakudo/commit/031ff96169
13:46 dalek rakudo/method2sub: 1cd2597 | (Elizabeth Mattijsen)++ | / (4 files):
13:46 dalek rakudo/method2sub: Remove method [] and {} handling, merge Any2 into Any again
13:46 dalek rakudo/method2sub:
13:46 dalek rakudo/method2sub: Still needs implementation of []:exists and {}:delete
13:46 dalek rakudo/method2sub: review: https://github.com/rakudo/rakudo/commit/1cd25970c8
13:47 moritz lizmat++
13:49 lizmat please also note that when this gets merged, we will need to implement lift
13:49 lizmat because classes will not be able to simply override [] and {} no more
13:49 lizmat *any more
13:49 jnthn We need to implement lift at some point anyway. :)
13:50 jnthn I highly doubt this case is any worse than the operator case, though.
13:50 jnthn Mostly I've seen people just override the single element case
13:51 xenoterracide joined #perl6
13:59 pmurias which unicode version does nqp supprt (for codepointfromname)
13:59 lizmat joined #perl6
14:01 timotimo it relies on the underlying backend i believe
14:01 jnthn Probably varies by backend.
14:02 timotimo so on parrot the icu version you linked against, moarvm has the super optimized self-made database thingie, JVM has whatever JVM has
14:02 jnthn Or with Parrot, even by which version of ICU is used, I guess.
14:04 jnthn The MoarVM one gets all its data from the standard UCD, I think at 6.0 was used to generate the current .c/.h etc.
14:08 colomon lift! lift!  lift!
14:09 timotimo is that like "chug! chug! chug!"?
14:09 moritz lift will totally trash inlining and other compile time optimizations
14:10 timotimo yeah, there'll be much to be done with JITs i fear :|
14:10 grondilu joined #perl6
14:10 moritz and the problem is that we need to do use lift virtually everywhere where operators are used in the setting
14:10 moritz which is, like, everywhere
14:10 jnthn Wait, what?
14:10 jnthn If you inline something that lifts, you throw away the lift.
14:10 jnthn And job done.
14:10 timotimo oh, huh
14:11 jnthn 'cus you're already in the caller's lexical scope.
14:11 * moritz category error
14:11 moritz just to make sure we're talking about the same thing
14:12 moritz sub do_something($a, $b) { lift &infix:<+>; return $a + $b }
14:12 moritz that uses the caller's &infix:<+>, right?
14:12 moritz let's rather use
14:12 moritz sub do_something(Int $a, Int $b) { lift &infix:<+>; return $a + $b }
14:13 moritz so the optimizer inlines the infix:<+>(Int, Int), because it knows that $a and $b are both Int
14:13 moritz and the caller has an infix:<+> for subtypes of Int
14:13 moritz and then the lift has no effect anymore
14:13 moritz WAT?
14:14 moritz or did I misunderstand lift?
14:14 moritz commute&
14:15 timotimo i think what jnthn means with "inline something that lifts" and "throwing away the lift" refers to inlining that do_something into the caller
14:16 jnthn timotimo: yes
14:16 ajr joined #perl6
14:16 jnthn Inlining a thing with a lifted op is a problem, I agree.
14:17 ksh joined #perl6
14:17 jnthn I was thinking about inlining of things that inside of them use lift.
14:17 btyler joined #perl6
14:20 alester joined #perl6
14:21 pmurias shouldn't it be sub do_something($a,$b) { return lift $a + $b }?
14:21 pmurias as "lift &infix:<+>;" is a noop
14:22 timotimo ah, that's how it's used, yes
14:23 pmurias is it allowed to use lift outside of a multi?
14:23 timotimo why wouldn't it be?
14:24 timotimo oh
14:24 timotimo lift allows access to lexicals without requiring variables to be defined "is dynamic"?
14:24 pmurias yes
14:24 timotimo there goes my lexical-to-local transformation optimisation for rakudo.
14:25 pmurias that's what I thought while reading the lift spec ;)
14:26 dalek nqp: 42dde67 | jimmy++ | src/vm/parrot/ops/nqp.ops:
14:26 dalek nqp: removed unused codes
14:26 dalek nqp: review: https://github.com/perl6/nqp/commit/42dde671e6
14:26 dalek nqp: 034ed97 | jonathan++ | src/vm/parrot/ops/nqp.ops:
14:26 dalek nqp: Merge pull request #108 from zhuomingliang/master
14:26 dalek nqp:
14:26 dalek nqp: removed dead code
14:26 dalek nqp: review: https://github.com/perl6/nqp/commit/034ed978c6
14:27 pmurias timotimo: if you could detect lift usage you could salvadge the optimisation
14:27 dalek nqp: a67c607 | (Peter Rabbitson)++ | tools/lib/NQP/Configure.pm:
14:27 dalek nqp: Saner git pull address
14:27 dalek nqp:
14:27 dalek nqp: The http:// is more likely to work in limited environments, hence it will
14:27 dalek nqp: work for more people trying to compile with --gen-X
14:27 dalek nqp: review: https://github.com/perl6/nqp/commit/a67c6071c3
14:27 dalek nqp: 9416e3b | (Peter Rabbitson)++ | src/NQP/Grammar.nqp:
14:27 dalek nqp: Remove parasithic lookaheads
14:27 dalek nqp:
14:27 dalek nqp: According to jnthn leftovers from when the LTM wasn't too smart
14:27 dalek nqp: review: https://github.com/perl6/nqp/commit/9416e3bc06
14:27 dalek nqp: f9578fe | jonathan++ | / (2 files):
14:27 dalek nqp: Merge pull request #128 from ribasushi/sanificationz
14:27 dalek nqp:
14:27 dalek nqp: Some minor grammar nit (vers 2)
14:27 dalek nqp: review: https://github.com/perl6/nqp/commit/f9578fe79f
14:28 pmurias sanificationz++
14:28 timotimo pmurias: but what if out of nowhere a new sub enters the picture and destroys everything! :(
14:28 jnthn pmurias: Didn't check the spec, but I'd hope it's only lifting calls, not variable access...
14:28 timotimo no, it lifts variable access, too
14:29 jnthn dammit
14:29 jnthn Well, we didn't implement that bit of spec yet anyways.
14:29 pmurias heh
14:29 jnthn I'll happily push for limiting it.
14:29 timotimo me, too :)
14:29 * jnthn checks exactly what is said
14:30 timotimo http://perlcabal.org/syn/S04.html#The_lift_statement_prefix
14:30 timotimo oh, i misread!
14:30 fhelmberger joined #perl6
14:31 pmurias timotimo: what did you misread?
14:32 timotimo "these are taken at face value"
14:32 * jnthn wonders exactly what this means:
14:32 jnthn Note that in each piece of lifted code there are references to
14:32 jnthn variables defined in the multi, such as C<$a>, C<$b>, and C<&f>.
14:32 jnthn These are taken at face value.
14:33 pmurias my understanding is that if you define something in the multi it takes precedence over the stuff from your callers lexical scope
14:33 jnthn I think it may only be talking about variables defined in the multi, not variables in general?
14:33 pmurias yes
14:33 pmurias if we defined a &infix:<+> in the multi it also would be taken at face value
14:34 jnthn Right
14:34 jnthn I'm not sure why lift should do anything about variables.
14:34 jnthn That is, I thought the point was entirely about operators.
14:34 timotimo i can't think of a good use case
14:34 pmurias aren't subroutines just variables with a fancy sigil
14:34 pmurias ?
14:34 jnthn Sure.
14:34 timotimo i wouldn't call it sigil o_O
14:34 pmurias the & sigil
14:35 jnthn And contextuals are just variables with a * twigil, and attributes are just variables with a ! sigil
14:35 timotimo all subroutines have the & sigil
14:35 jnthn But we handle both of those very differently. :)
14:35 timotimo oh, i misread *again*
14:35 timotimo i thought you said "operators are subs with a fancy sigil"
14:35 pmurias yes, because they have a twigil, which causes strange effects
14:36 jnthn Anyway, we probably want to look at constraining lift...
14:36 jnthn If nothing else, I don't have to implement it in NQP. :)
14:36 jnthn So we can always do the lexical -> local optimization there :)
14:36 pmurias can lift be use in multi methods?
14:36 pmurias s/use/used/
14:37 jnthn Yeah. Which also raises interesting questions. :)
14:37 jnthn 'cus if it's called via the proto then the proto's frame is on the stack.
14:37 jnthn But for the sub case auto-generated protos are inlined.
14:37 lichtkind joined #perl6
14:37 jnthn So "caller" varies :)
14:38 jnthn Anyway, we can see what TimToady thinks. It's possible the lift definition sucking in ordinary variables rather than just callable things isn't intended or is no longer desired
14:39 jnthn I spot one example also does Str::leg, which is almost certainly wrong nowadays :)
14:39 pmurias if lift is only used in multi subs and not multi methods then we could analyse it to an extent
14:42 lizmat pmurias: and multi subs is where they seem to be needed most atm
14:46 amkrankruleuen joined #perl6
14:46 amkrankruleuen joined #perl6
14:57 jnap joined #perl6
14:59 * TimToady is having trouble lifting his eyelids
15:00 timotimo chug some coffee?
15:00 TimToady you mean chug moar coffee
15:01 berekuk joined #perl6
15:01 dalek specs: 710337e | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
15:01 dalek specs: Sanitize @.delete|exists to define existence as being different from default
15:01 dalek specs: review: https://github.com/perl6/specs/commit/710337efaf
15:01 lizmat TimToady: just unlifted the meaning of @.exists and @.delete
15:02 lizmat can methods be "is export" , and if so, what does that mean ?
15:02 dalek rakudo-js: 5192fbb | (Pawel Murias)++ | / (4 files):
15:02 dalek rakudo-js: Implement nqp::codepointfromname.
15:02 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/5192fbbf9a
15:03 dmol joined #perl6
15:04 pmurias TimToady: could you clarify some things about lift? is it possible to use it from inside a multi method (as opposed to a multi sub), and from inside a sub?
15:04 jnthn lizmat: Yes, they are exported as if they were subs...
15:04 masak rn: class A { method foo is export { say "OH HAI" }; foo(A.new)
15:04 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse block at /tmp/bnlAwA_a3m line 1:�------> [32mclass A {[33m�[31m method foo is export { say "OH HAI" }; [0m�Couldn't find final '}'; gave up at /tmp/bnlAwA_a3m line 1 (EOF):�------> [32mo is export { …»
15:04 camelia ..rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4J_02QaA2tâ�¤Unable to parse expression in block; couldn't find final '}'â�¤at /tmp/4J_02QaA2t:1â�¤------> [32mo is export { say "OH HAI" }; foo(A.new)[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfi…»
15:04 masak rn: class A { method foo is export { say "OH HAI" } }; foo(A.new)
15:05 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/G3LN7_vTzTâ�¤Undeclared routine:â�¤    foo used at line 1â�¤â�¤Â»
15:05 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'foo' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36) â�¤  at /…»
15:05 masak er. I guess I have to import it too.
15:05 masak can that be done through p6eval? or do I need a .pm file?
15:05 jnthn rn: class A { method foo is export { say "OH HAI" } }; import A; foo(A.new)
15:05 camelia rakudo 223075: OUTPUT«OH HAI␤»
15:05 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method statement_control:import not yet implemented at /tmp/p321B1ZZ6k line 1:�------> [32mo is export { say "OH HAI" } }; import A[33m�[31m; foo(A.new)[0m��Unhandled exception: Unable to resolve method statem…»
15:05 TimToady lizmat: S12:1383 talks about exporting methods
15:05 synopsebot Link: http://perlcabal.org/syn/S12.html#line_1383
15:05 pmurias TimToady: and are normal $ sigiled variables accesible through lift (without an is dynamic on them)
15:05 pmurias ?
15:06 TimToady pmurias: not awake enough to think about lift yet
15:06 timotimo lifting ought to wake you up a bit :)
15:09 masak TimToady: when you're awake enough, it'd be nice to get some kind of ruling (or weighing in) on https://github.com/perl6/specs/issues/60.
15:11 masak TimToady: also, why do we have S05:792 but not the special case in split from Perl 5?
15:11 synopsebot Link: http://perlcabal.org/syn/S05.html#line_792
15:11 jnap joined #perl6
15:12 lizmat and finally UPS delivers our Rakudo Perl 6 tuits with a full-color  Camelia on them
15:12 moritz masak: because we don't use split in such cases, but comb
15:13 TimToady well, split(/^/) turned into lines()
15:15 timotimo today i'll be attending a perl mongers meeting \o/
15:16 tadzik \o/
15:16 moritz tadzik: have fun!
15:16 lizmat timotimo: Karlsruhe.pm
15:17 lizmat ?
15:17 tadzik moritz: thanks! :)
15:18 timotimo indeed
15:18 timotimo (they are apparently not yet .compose'd)
15:19 lizmat :-)
15:19 timotimo but i'll be giving them perl community tuits
15:19 timotimo that ought to help
15:19 lizmat hehe
15:21 tadzik timotimo: if you see pari, please slap him from me :)
15:22 timotimo is that supposed to be a friendly slap, or more like a mafia type of slap?
15:23 tadzik more like "obtw, tadzik slaps you"
15:24 timotimo how do i know it's pari?
15:24 tadzik maybe not slap him literally ;)
15:24 tadzik hm
15:24 timotimo i will lexically slap him :)
15:27 tadzik :)
15:29 skids joined #perl6
15:31 masak moritz: split and comb were two sides of the same coin, and which one to use depends on whether content or separator is easier to describe.
15:31 tadzik lizmat: wooah
15:31 tadzik pics?
15:31 tadzik (of tuits)
15:32 timotimo whoa, full-color?! i thought it would be b&w like all other tuits
15:32 timotimo pics please!
15:32 lizmat woolfy's working on pictures
15:33 woolfy Yeah yeah, hold your horses.  I'm just our of bed and my feet are cold.  :-)
15:33 timotimo beh, cold feet are the worst
15:34 * masak .oO( cold sausage is the wurst )
15:35 masak detrain &
15:41 mberends joined #perl6
15:48 tadzik fun fact: in python, backtrace is spelled traceback
15:49 timotimo at least it's a simple to spot anagram
15:49 timotimo not something like "kellerabzug"
15:49 tadzik it's like their ",".join(list)
15:55 prevost joined #perl6
15:59 arnsholt Join being a method on Str in Python annoys me
15:59 arnsholt Feels much more natural for it to be on lists
15:59 sjohnson how comes?
15:59 sjohnson oh right.
16:00 daxim perl6: [0..9].reverse.join(",").say
16:00 camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«9,8,7,6,5,4,3,2,1,0␤»
16:01 daxim pugs: [0..9].reverse.join(",").say
16:01 camelia pugs: OUTPUT«9,8,7,6,5,4,3,2,1,0␤»
16:03 arnsholt sjohnson: Yeah, it's mostly a Perl-ism
16:04 arnsholt Heck, now that I think about it, it -is- join(',', @list) in Perl 5
16:05 TimToady P6 too, for endweight considerations
16:05 sjohnson not sure why PHP decided to change join/split to implode/explode respectively.
16:06 sjohnson i have to use a visual mneumonic of stuff blowing up to remember it.
16:06 woolfy So you want to pictures of the Camelia Tuits?  The ones that came in today?
16:06 woolfy Well, I just made a few.  Now on my Flickr page.
16:06 woolfy http://www.flickr.com/photos/wendyga/sets/72157635619932186/
16:06 TimToady sjohnson: prior art from other languages, I believe
16:07 TimToady algol maybe
16:07 sjohnson hmm, interesting they had that technology for some of the older languages.
16:07 benabik woolfy++
16:07 geekosaur implode/explode is lisp
16:08 geekosaur (maclisp at least)
16:08 arnsholt woolfy: Oh, cool!
16:08 timotimo that is beautiful.
16:08 * arnsholt wants
16:08 TimToady obviously php is more like lisp than perl... :)
16:08 ajr joined #perl6
16:08 FROGGS sjohnson: implode/explode just take a string as delimiter instead of a regex, that is the difference
16:08 woolfy Want some of those Tuits?  Meet me somewhere...  :-)
16:09 FROGGS sjohnson: and in php you have to put a regex into a string, so it makes sense to have some different sub for saying: "I want to split by a string"
16:09 sjohnson FROGGS: not to mention preg_split and the like...
16:09 sjohnson a lot to remember!
16:10 sjohnson FROGGS:  i just keep forgetting which is which, implode, explode.. hence the visual mneumonic.
16:11 JimmyZ woolfy++
16:12 TimToady asplode should do explode then return the bits in random order
16:18 FROGGS sjohnson: true
16:19 Ulti joined #perl6
16:19 FROGGS and asplode should have another uncommon signature then
16:19 * TimToady suspects it only really works on type Brain
16:19 FROGGS like: asplode(limit, delim, string) or so
16:20 benabik limit.asplode(string, delim)
16:20 TimToady there is no limit on asploding branes
16:20 Ulti joined #perl6
16:20 TimToady they always asplode completely
16:22 PerlJam I find it really weird that I was in a meeting a few minutes ago talking about implode/explode/asplode and now when I look on IRC, you guys were talking about them too
16:23 FROGGS we were all there O.o
16:26 mberends woolfy++: very nice :-)
16:26 Ulti does .asplode break things into a byte array?
16:26 JimmyZ It's a coincidence
16:28 mberends some MoarVM hackers might find this C macro cross reference useful: https://gist.github.com/mberends/6606401
16:28 FROGGS woolfy: nice!!
16:29 FROGGS mberends++
16:29 benabik mberends++
16:29 PerlJam mberends: is that document the start of moarguts?  :)
16:29 mberends :) hopefully...
16:30 dalek rakudo/nom: 20854f0 | (Elizabeth Mattijsen)++ | src/core/List.pm:
16:30 dalek rakudo/nom: Simplify List.at_pos so that it doesn't refer to .exists anymore
16:30 dalek rakudo/nom:
16:30 dalek rakudo/nom: This is needed because at_pos will be needed by .exists in the future
16:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/20854f0bf9
16:32 jnthn It...it will?
16:37 denis_boyun joined #perl6
16:38 lizmat well, exists needs to determine whether the value is equal to the dafault
16:38 lizmat *default
16:39 lizmat if the index provided is in range and the self is DEFINITE
16:39 lizmat *or* we need a bit for each element in a list to check whether it exists
16:40 jnthn I thought we were gonna use nqp::null() as a magical value for that :)
16:43 * lizmat tries to recall the discussion but fails
16:44 ssutch joined #perl6
16:44 lizmat r: my $a = nqp::null
16:44 camelia rakudo 223075: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in block  at /tmp/5jEv0AVCxX:1␤␤»
16:49 lizmat r: my @a=0..10; @a.delete(0); say @a.exists(0)   # jnthn: exists/delete currently broken on []
16:49 camelia rakudo 223075: OUTPUT«True␤»
16:50 lizmat r: my @a=0..10; say @a.elems; @a.delete(10); say @a.elems; say @a.exists(10) # jnthn: only time exists/delete works
16:50 camelia rakudo 223075: OUTPUT«11␤10␤False␤»
16:51 * TimToady suspects that existence is a more basic concept than defaultness, but maybe that's because he is not a Platonist
16:52 lizmat r: my @a is default(42); say @a[1000]
16:52 camelia rakudo 223075: OUTPUT«42␤»
16:53 lizmat does @a[1000] exist or not?
16:53 TimToady no
16:54 benabik It's not unusual to say that if @a[1] exists, then @a[0] also exists.
16:54 TimToady r: my @a is default(42); @a[582] = 42; say @a[582];  # but this does
16:54 camelia rakudo 223075: OUTPUT«42␤»
16:54 jnthn Right, so it's not just default value
16:54 jnthn lizmat: not =, but :=
16:55 TimToady inverting those implies that it's impossible to set a value to the default without deleting it
16:55 jnthn aye
16:55 TimToady but those are specialized semantics for KeyHashes
16:56 TimToady we don't want to inflict those semantics on every Array/Hash
16:57 denis_boyun joined #perl6
16:57 lizmat on Hashes, we don't need to
16:57 lizmat because we can check for the existence of the key
16:57 lizmat but in Arrays, how do we check for existence of the index?
16:58 lizmat just 0 .. @array.end ?
16:58 TimToady by whether the slot is null or a pointer to something
16:58 jnthn lizmat: $idx < nqp::elems($!storage) && !nqp::isnull(nqp::atpos($!storage, $idx)) or so
16:58 jnthn In fact, you can skip the first check
16:59 jnthn As it's done inside the repr
16:59 lizmat ok, will try that
16:59 jnthn And delete should nqp::bindpos($!storage, $idx-to-delete, nqp::null()) or so
16:59 jnthn And I guess then shorten if we delete at the end.
16:59 lizmat ok
17:00 jnthn nqp::pop($!storage) while $!storage && nqp::isnull(nqp::atpos($!storage, nqp::elems($!storage) - 1)); # or so
17:01 dalek rakudo/nom: c2f7f74 | (Elizabeth Mattijsen)++ | src/core/List.pm:
17:01 dalek rakudo/nom: This approach was the wrong way  :-)  Nothing like commit driven discussion :-)
17:01 dalek rakudo/nom:
17:01 dalek rakudo/nom: This reverts commit 20854f0bf9f60215df876405bcc81e6d870cc832.
17:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2f7f74fce
17:03 krokite joined #perl6
17:04 TimToady we've done remarkably well at keeping the flaming egos out of Perl 6 development :)
17:04 TimToady well, except for mine...  :)
17:06 woolfy lizmat is listening to http://www.youtube.com/watch?v=2rjbtsX7twc and says "cool"  (ok, nothing to do with P6)
17:06 diakopter some peoples' egos overflow and wraparound
17:08 PerlJam woolfy: heh!
17:08 diakopter Infinities will make you cry
17:09 diakopter Kiss your fields goodbye
17:09 woolfy I am a bit sorry (hehe, not really) for taking away so many minutes of productivity from Perl 6 heroes...
17:13 jnap joined #perl6
17:15 SamuraiJack_ joined #perl6
17:19 SamuraiJack__ joined #perl6
17:22 kaleem joined #perl6
17:22 lizmat jnthn: seems the "$idx < nqp::elems($!storage)" is needed: QRPA: index out of bounds
17:22 lizmat in method exists at src/gen/CORE.setting:7664
17:22 lizmat in t/spec/S02-types/array_extending.t
17:23 d^_^b so is rakudo all I need to start writing Perl6?
17:23 d^_^b err rakudo star*
17:23 lizmat I would say yes to that
17:24 * d^_^b I am also johnny5_ btw among other nicks
17:24 lizmat jnthn: apparently for negative indexes
17:24 * d^_^b this is my vps account.
17:24 d^_^b lizmat: k
17:25 lizmat jnthn: $ perl6 -e 'my @a; say @a.exists(-1)'
17:25 lizmat QRPA: index out of bounds
17:25 lizmat should this be fixed at the nqp::at_pos level ?
17:25 lizmat I guess it is  :-)
17:26 spider-mario joined #perl6
17:28 jnthn lizmat: Hmm... For now I'd go with checking $idx >= 0 for now
17:29 lizmat yup, doing that right now
17:31 Rotwang joined #perl6
17:40 dalek specs: 4128913 | larry++ | S05-regex.pod:
17:40 dalek specs: Explain semantics of <( )> inside []* and ()*
17:40 dalek specs:
17:40 dalek specs: fixes #60
17:40 dalek specs: review: https://github.com/perl6/specs/commit/4128913f2b
17:42 [Coke] (camelia tuits) squee!
17:43 [Coke] no spectest diffs for a few days. Almost like everyone was busy or something.
17:44 lizmat also, upcoming release
17:44 [Coke] someone has that covered, ja?
17:44 * lizmat is about to break some non-parakudo tests
17:44 [Coke] today's run is already started, go for it. ;)
17:45 * [Coke] is in a much better mood at work today, and blames the workshop.
17:45 tadzik I was productive like crazy today
17:45 [Coke] \o/
17:45 lizmat good to hear!
17:46 lizmat this month's release is by masak, I'm told
17:46 [Coke] lizmat, woolfy: bought some kids books for my wife. didn't even thing of this at the time, but one of them is the very hungry caterpillar. Guess what he turns into at the end of the story!
17:46 lizmat :-)
17:46 tadzik VELOCIRAPTOR
17:46 woolfy [Coke]: a flying camel?
17:46 * lizmat suggests Karlsruhe.pm as the name for the release
17:46 [Coke] tadzik: YOU NEED TO WRITE THAT BOOK NOW.
17:47 tadzik [Coke]: I'm writing it down on my book ideas list
17:47 lizmat seems appropriate with timotimo going to the first Karlsruhe meeting in ages
17:47 [Coke] woolfy: a schmetterling, of course. :)
17:47 woolfy d'oh
17:47 woolfy Papillon
17:48 [Coke] ok, back to dayjob. later, peeps.
17:48 TimToady masak: Perl 6 considers \n to be a line terminator, and text files ending without a final \n to be aberrant, but tolerated
17:48 pmichaud good afternoon, #perl6
17:48 tadzik hello pmichaud
17:49 TimToady so "abc\n" ~~ /abc\n^^/ will not match
17:49 diakopter pmichaud: good afternoon
17:49 lizmat pmichaud: o/
17:50 TimToady \o
17:50 * lizmat wonders the message of a super hungry caterpillar in a kid's world with SuperSizeMe
17:50 lizmat *about
17:51 pmichaud how was the perl 6 course thingy this past weekend?
17:51 diakopter rn: say so "" ~~ /^^^^^^^/
17:51 camelia rakudo c2f7f7, niecza v24-95-ga6d4c5f: OUTPUT«True␤»
17:51 TimToady yes, ^^ always matches at the start of the string
17:52 diakopter r: say so "" ~~ /^^^^^^^$$$$$$$^$^^^$^$^$^$$^^^^$$$$^^^$^$/
17:52 camelia rakudo c2f7f7: OUTPUT«True␤»
17:52 TimToady ayup
17:52 lizmat pmichaud: the thingy went quite well
17:52 lizmat pmichaud: also check http://6guts.wordpress.com/2013/09/17/material-from-the-rakudo-and-nqp-internals-course/
17:52 pmichaud checking!
17:53 pmichaud oooh! course materials!
17:58 TimToady huh, interestingly, echo -n "this" >foo; wc -l foo returns a line count of 0
17:58 TimToady anyway, \n termination is considered normative
17:59 diakopter echo -n "this" | wc -l
18:00 TimToady I see no reason to make a whole bunch of code return final null elements just because normative is not completely enforced (lookin' at you, emacs)
18:02 dalek perl6-roast-data: ef0d847 | coke++ | / (3 files):
18:02 dalek perl6-roast-data: today (automated commit)
18:02 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ef0d8479bd
18:02 TimToady this particular consistency looks kinda hobgoblin colored to me
18:03 lizmat hmmm… in a recent spec change, I changed [].delete from taking multiple params to a single parameter only
18:03 * TimToady doesn't care what .delete does, but :delete has to be able to return the whole slice
18:03 lizmat indeed
18:04 lizmat that was my thought as well
18:04 * lizmat adjust spectest
18:04 benabik joined #perl6
18:04 * TimToady doesn't even care whether .delete exists (or .exist deletes, for that matter :)
18:05 TimToady as internal methods, they should probably be spelled differently anyway
18:05 lizmat if they are truly internal, then maybe they shouldn't be documented in S32 ?
18:06 TimToady that's what I've always thought, but didn't push it before :delete was implemented
18:07 TimToady didn't push it after either, for that matter :)
18:07 panchiniak joined #perl6
18:07 PZt joined #perl6
18:09 lizmat r: my @a=^10; @a.delete(*-1); say @a  # should .delete be smart enough to handle *-1 ?
18:09 camelia rakudo c2f7f7: OUTPUT«0 1 2 3 4 5 6 7 8␤»
18:11 TimToady why are you asking me about internal methods? :)
18:11 lizmat :-)
18:12 * lizmat goes on with further changing spectests
18:12 pmichaud it looked to me like lizmat was asking rakudo :)
18:12 TimToady it's really neat that rakudo is smart enough to understand comments now :P
18:14 lizmat rakudo is really getting good at reading between the lines, siriously  :-)
18:15 GlitchMr It would be nice if Rakudo would download the specification, and do exactly what it says.
18:15 GlitchMr (but that's impossible)
18:15 TimToady it's impossible for us too :)
18:16 TimToady I said from the very start that we were trying to do something impossible, and that we would fail, fsdo. :)
18:16 GlitchMr Perl 7 should support code golf, by allowing you to do everything with 0 bytes.
18:17 TimToady already possible with alternate settings
18:18 diakopter hah
18:18 telex joined #perl6
18:19 TimToady Perl 6 makes some impossible things merely hard, but a few of them it makes easy.  :)
18:22 [Sno] moritz: I figured out the parrot build error reported Monday (parrot_version.pir installed separately without being in config_lib.pir)
18:22 [Sno] moritz: it's because of parallel builds - avoid "make -jn" with n >= 2
18:22 FROGGS [Sno]: what was it?
18:22 FROGGS ahh
18:22 FROGGS good catch!
18:23 [Sno] but well, MoarVM is ready to be delivered before christmas :P
18:23 diakopter eh
18:23 [Sno] so I don't dig deeper and fix parrot
18:23 [Sno] but wait for MoarVM
18:23 [Sno] and flag lang/parrot for MAKE_JOBS_SAFE=no :)
18:24 moritz STEVE_JOBS_SAFE=no
18:25 [Sno] well, that's already been decided by cancer ;)
18:25 TimToady he's a lot safer than he used to be...
18:25 [Sno] but it fails securely on Darwin, SunOS and NetBSD
18:26 TimToady though that depends on whether the cult evolves into a religion
18:28 [Sno] well, I usually move around religions where ever I can
18:28 [Sno] so I cannot argue there
18:28 * TimToady hopes that Perl does not evolve into a religion after he is dead, or that if it does, he is not held responsible for it...  :)
18:29 [Sno] so let's evolve it while you're alive
18:29 pmichaud I'm afk for a while again
18:30 TimToady well, that worked for L. Ron Hubbard, but I'm not sure I want to share a circle of hell with him.
18:31 [Sno] this is the main problem of famous people: they don't have a choice
18:31 [Sno] their lambs do the choice - meh
18:33 hoelzro sweet
18:33 hoelzro my Parrot allocation tracker works!
18:34 hoelzro hmm
18:34 hoelzro of over 4 million allocations performed when compiling CORE.setting, over 2 million are Perl6::Grammar objects
18:35 tadzik ...Grammar?
18:35 tadzik that at least looks weird
18:36 hoelzro yeah, i was shocked too
18:36 lizmat hoelzro++
18:36 hoelzro hang on; I'll upload the results
18:36 arnsholt I think the cursor used to match will be a Perl6::Grammar
18:36 hoelzro that's what I figured
18:37 jnthn yes, it's Cursor objects
18:37 jnthn you allocate the grammar you're matching
18:38 arnsholt That works out to about 200 allocations of Perl6::Grammar per line of CORE.setting
18:38 hoelzro http://hoelz.ro/files/parrot-alloc-results.txt
18:38 arnsholt Don't think that's too shocking a result, given the complexity of the grammar
18:39 hoelzro how many Grammar objects need to be alive at a given time, I wonder?
18:39 hoelzro I was thinking of having an object pool for commonly allocated objects
18:40 arnsholt O(maximum depth of the parser recursion) probably
18:41 mberends joined #perl6
18:41 arnsholt An object pool for Cursor objects might make sense, I think. jnthn would know
18:41 * hoelzro waits for jnthn's response
18:43 diakopter A generic object pool for types detected high-churn would be nice too at the vm level
18:44 diakopter (Assuming we add the ability for user (byte)code to tell the VM it's ok to reuse a given object)
18:44 diakopter (when leaving a scope)
18:49 EvanTeitelman joined #perl6
18:56 TimToady most cursors should probably be C structs with dynamic particulars stored in a simple linked list rather than a hash
18:56 TimToady since most such lists will be very short
18:59 TimToady but mostly moving everything we can into the struct itself
19:03 dalek rakudo/nom: 6f86684 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
19:03 dalek rakudo/nom: Properly implement internals [].exists|delete, according to new semi-spec
19:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f8668484f
19:06 dalek roast: bc14b79 | (Elizabeth Mattijsen)++ | S (4 files):
19:06 dalek roast: Fudge/Unfudge for latest [].exists|delete fixes
19:06 dalek roast: review: https://github.com/perl6/roast/commit/bc14b79afc
19:06 dalek roast: fecf003 | (Elizabeth Mattijsen)++ | S (2 files):
19:06 dalek roast: Oops, some premature fixes slipped in
19:06 dalek roast: review: https://github.com/perl6/roast/commit/fecf00332c
19:10 jnthn TimToady: Cursor is a P6opaque and doesn't have any kind of Hash inside of it at present, just an integer array for backtracking marks and a (lazily allocated) object array for cursors we capture... There's no hash until Match construction.
19:10 jnthn TimToady: position is stored as a native int in the Cursor, for example...
19:12 hoelzro jnthn: would it be possible to recycle cursor objects?
19:12 hoelzro it seems like it would be a big win
19:13 jnthn hoelzro: Cursor objects generally follow the generational hypothesis: they either live for a long time 'cus they get attached into the overall parse result, or live for a very short time 'cus they fail.
19:13 hoelzro I figured
19:13 hoelzro but for each creation, the VM needs to find a chunk of memory, and it's another object to clean up later
19:14 iSlug joined #perl6
19:14 jnthn The first of those should be decidedly cheap on a good VM :)
19:15 hoelzro yes
19:15 hoelzro but considering what we have to work with =P
19:16 benabik Well, as time goes there's always moar things to work with...
19:17 jnthn I think the biggest win is to look into making places that want to explicitly produce a fail cursor re-use a single one
19:17 masak TimToady++ # hobgoblin colored
19:17 nwc10 and maybe other VMs will be captured in Perl6's .net
19:17 masak TimToady: and yes, I agree.
19:18 nwc10 jnthn: effectively, make a fail cursor singleton?
19:18 jnthn For example, when a protoregex has no matching thing, it does a !cursor_start, which produces a new, failed cursor. But if we cache one in ParseShared I *think* we can get away with it.
19:18 jnthn nwc10: Yeah, something like that.
19:18 jnthn It *may* save a lot of 'em.
19:18 nwc10 quick, find a minion. You've got 15 now :-)
19:18 nwc10 it doesn't sound like a terrible idea even if it only saves a few (thousand)
19:19 jnthn Well, it could save a lot
19:19 jnthn I mean, everywhere we call EXPR, at least the final attempt to find another infix will fail.
19:19 jnthn And !protoregex is an easy place to do this.
19:21 * moritz wonders if anybody noticed that parrot didn't have a release yesterday
19:21 nwc10 I did.
19:22 jnthn The 120,584 QAST::Var objects feels like a fair few...
19:22 PerlJam moritz: does that mean that rakudo shouldn't have one either?  ;)
19:22 jnthn As in, the ratio between QAST::Op and QAST::Var surprises me a bit
19:22 moritz PerlJam: tomorrow
19:22 trnh joined #perl6
19:22 trnh joined #perl6
19:22 zwut00 joined #perl6
19:23 masak moritz: well, technically... :)
19:23 masak moritz: two days after the Parrot release.
19:23 PerlJam (it certainly means that it's time to change that bit in the release_guide that talks about how rakudo's release schedule is based on parrot's release schedule)
19:23 masak aye.
19:23 lizmat maybe Util has some more info ?
19:23 masak anyway, I'm perfectly willing to cut a release tomorrow no matter what the release_guide says.
19:23 masak :)
19:24 PerlJam hoelzro: is there a way to easily find out how long-lived those objects are on average?
19:24 hoelzro PerlJam: my next step is to find out when they're dealloc'd
19:24 hoelzro mainly to find how many objects of each type are alive at one time
19:25 nwc10 I think the rakudo release happened on "time" even when parrot 5.0.0 was unfortunately late
19:25 lizmat hoelzro: on the way to Frankfurt, mberends was telling about measuring longevity of an object by number of bytes changed in the system between creation and garbage collect
19:25 PerlJam hoelzro: some measure of churn would be nice.
19:25 hoelzro lizmat: how would that measurement occur, though? brk()? malloc info?
19:26 lizmat maybe mberends has more pointers
19:26 * lizmat was driving at 100+ miles / hour at the time  :-)
19:26 * hoelzro does a rimshot
19:27 hoelzro get it? pointers? =P
19:27 * lizmat wrecks her brain to thing of a pun that would be to the point
19:27 lizmat *think
19:28 hoelzro the problem with measuring deallocations vs allocations is that just because an object hasn't been free()'d yet doesn't mean it's still reachable
19:28 hoelzro so for *really* reliable stuff, I'd probably have to invoke the GC on every call to nqp::create
19:28 hoelzro it would (hopefully) result in some interesting data, though
19:29 jnthn hoelzro: You could instrument !cursor_start and !cursor_start_all to see where most cursors are created
19:29 hoelzro ooooh
19:29 hoelzro that would be helpful =)
19:30 jnthn hoelzro: You could do similar for !cursor_pass to see how many of those pass.
19:30 jnthn So we know where the common failure paths are.
19:30 hoelzro cursors seem to be the big culprit here
19:30 hoelzro mhmm
19:30 jnthn Well, they're numerous, we can say that match.
19:30 jnthn uh, much
19:30 jnthn :)
19:30 nwc10 fingers in autopun mode?
19:30 * jnthn goes back to being sort-of-around...
19:31 nwc10 get packing!
19:32 PerlJam instrumenting !curpos_pass could tell you how much of a win that singleton fail-cursor will be
19:32 PerlJam er, !cursor_pass even
19:32 jeffreykegler joined #perl6
19:32 dalek rakudo/method2sub: 23e9d51 | (Elizabeth Mattijsen)++ | / (7 files):
19:32 dalek rakudo/method2sub: Move sub [] and sub {} to separate files for easier maintenance
19:32 dalek rakudo/method2sub: review: https://github.com/rakudo/rakudo/commit/23e9d51870
19:36 nwc10 [Coke]: you bought a German language copy of The Very Hungry Caterpilar?
19:40 lizmat r: my %h=a=>1; say %h{}:delete; say %h # another bug now exposed by moving to sub {}
19:40 camelia rakudo 6f8668: OUTPUT«("a" => 1).hash␤("a" => 1).hash␤»
19:40 d^_^b So one thing that I want to do consistantly is produce executables of my application. Right now on windows I am having to use cava packager. I am able to produce an exe natively in P6?
19:41 d^_^b well I don't want to do it per say, but it is easier to manage an exe vs a Perl installation on multiple machines.
19:42 ksh joined #perl6
19:42 FROGGS d^_^b: I think it is not yet available, but hopefully it is not impossible
19:42 FROGGS you could make it use the sfx-hack for example
19:43 d^_^b huh?
19:44 d^_^b self-extracting?
19:44 jnap joined #perl6
19:45 FROGGS I packed a Perl 5 game once (or twice), using a self extracting archive which runs the perl exe with the right command args to invoke the game
19:45 FROGGS there might be a nicer way (like perl5's staticperl) but this would be a lot more work I suppose
19:46 d^_^b cava works and does that. just its a hassle if the exe does work I have to go and add the dep that it missed when packaging.
19:46 FROGGS yeah
19:49 timotimo lizmat: sadly, there were only 3 people in karlsruhe.pm this time :( (including me)
19:50 lizmat it's a start
19:50 lizmat Amsterdam.pm had meetings with fewer people in the beginning  :-)
19:56 hoelzro sweet, the POD is building
19:56 * hoelzro laughs maniacally
19:56 FROGGS *g*
20:03 lue hello world o/
20:03 hoelzro ahoy lue
20:06 lizmat lue o/
20:08 timotimo lizmat: it's said there's either ~14 people or ~2 ;)
20:08 pernatiy joined #perl6
20:11 timotimo hoelzro: good work so far! :)
20:11 hoelzro thanks!
20:11 berekuk joined #perl6
20:16 iSlug joined #perl6
20:17 flussence joined #perl6
20:21 flussence joined #perl6
20:22 spider-mario joined #perl6
20:27 ajr joined #perl6
20:31 berekuk joined #perl6
20:42 hoelzro there's no DESTROY method in Perl 6, is there?
20:42 jnthn In the spec, yes. In Rakudo, no.
20:42 hoelzro I'd like to try out an object pool for cursors, but I'm not sure how I'm going to mark them as "free"
20:42 hoelzro ah
20:42 jnthn Object pool sounds fraught.
20:43 hoelzro yeah
20:43 timotimo wouldn't you like to try a constant "failure" cursor first?
20:43 jnthn Did you try the singleton fail cursor thing I suggested?
20:43 hoelzro I'd probably have to actually return cursors to the pool from the outside
20:43 hoelzro not yet
20:43 jnthn That's actually sane and reasonable-about.
20:43 timotimo or at least analyze how often, in relation, failure cursors are made
20:43 hoelzro I'm still wrapping my head around Cursor.nqp =/
20:43 hoelzro and I'm building the Perl6 docs
20:43 hoelzro which is taking 80% of my memory =S
20:44 diakopter I would guess that it's not the allocation or gc of all the objects that takes the most time, but the copying/initializing of their fields
20:44 jnthn Well, we don't know anything much about time either :)
20:44 jnthn We just know allocation counts.
20:44 hoelzro yeah
20:44 hoelzro I'm just going on a hunch
20:45 diakopter my point is that even with a pool, whether created by the qast compiler or by the vm, I don't think it'd remove the main cost
20:45 hoelzro that would be interesting to test
20:46 * hoelzro has to figure out how to dump some data on program exit in NQP
20:46 diakopter if it's just normal exit, have the qast compiler wrap the main
20:47 diakopter error exit, much harder I guess
20:47 hoelzro ah, good point
20:47 hoelzro normal exit should be fine
20:47 timotimo i suggest just streaming it out to stderr during run and collect the pieces externally
20:47 hoelzro oh yeah
20:47 hoelzro that's pretty much what I did for the alloc counts =/
20:47 timotimo that's failsafe
20:48 timotimo yeah, so what. this is a one-off as far as i'm concerned ;)
20:48 hoelzro indeed
20:48 hoelzro it's just some simple instrumentation
20:48 hoelzro I thought someone told me that Parrot has some sort of profiling of how long each opcode takes in a program?
20:48 hoelzro do we have any data on that?
20:50 hoelzro that would probably shed some light on time spent allocating/binding attrs/etc
20:50 * diakopter doesn't know... a different runcore or something?
20:51 timotimo i ran rakudo through perf once
20:51 timotimo i think it was mostly allocating stuff or something?
20:52 cjwelborn joined #perl6
20:54 hoelzro I'll try that
20:54 cjwelborn I was just reading "Masterminds of Programming" and the creator of Perl was talking about Perl6, it sounds cool. Is Perl6 code going to be backward-compatible with Perl5?
20:55 timotimo no, but there will be interop.
20:55 FROGGS cjwelborn: so one day you might be able to load Perl5 modules and run you Perl5 code inlined...
20:56 FROGGS like: use FooBar:from<Perl5>;
20:56 timotimo i don't know the status of (or even how to use) blizkost
20:56 cjwelborn Perl5 came with Ubuntu on my machine, i guess because they use perl scripts for some of their own stuff. Is it possible for me to install a copy of Perl6 side-by-side with Perl5?
20:56 timotimo yes, they will not conflict
20:56 cjwelborn awesome, thank you.
20:57 masak cjwelborn: Perl 6 is pretty cool. however, it has to compete with not just Perl 5 (which Perl, in its time, didn't), but all the other nice and successful dynamic languages that have blossomed since.
20:57 diakopter (and static)
20:57 masak which is not to say it isn't awesome -- it is.
20:57 cjwelborn masak: true, i'm actually a Python programmer (among a few other things) myself.
20:57 diakopter (and all other orientations)
20:57 timotimo ha! another one! ;)
20:57 timotimo i came to perl6 from python as well
20:57 masak it's just that it's awesome against a backdrop of not-too-bad.
20:57 masak I've been dabbling in Python lately :)
21:00 jnap cjwelborn:  just to let you know, if you do end up playing with Perl5 as well, I'd recommend side loading it with a tool like perlbrew, rather than use the Perl that came with ubuntu.  System Perls sometimes get upgraded or changed from under you and its annoying
21:01 cjwelborn good to know, ::looking up perlbrew::
21:05 dalek joined #perl6
21:05 tadzik I recommend plenv if perlbrew doesn't work for you
21:05 tadzik (perlbrew is a little quirky)
21:07 timotimo tadzik: did you listen to hellsongs - paranoid? it's pretty beautiful
21:12 tadzik timotimo: yeah, it's nice :)
21:12 tadzik I've listened to everything they published. On spotify, of course, legally, of course
21:13 tadzik it's nice to listen to it once or twice, but gets a bit tiring/boring after a while, imho
21:15 timotimo sure
21:16 jnthn Early flight...'night, #perl6
21:16 tadzik like all lounge coverers, I'd say
21:16 tadzik good knight jnthn
21:16 hoelzro night jnthn
21:16 tadzik but Hellsongs is one of the more interesting
21:17 donaldh joined #perl6
21:17 timotimo richard cheese is hard to top; the amount of showmanship put on top is quite something ;)
21:18 tadzik oh yes :)
21:18 tadzik one of the few performers from whom I prefer "live" recordings
21:20 timotimo gaaaah
21:22 tadzik hm?
21:23 timotimo i'm still struggling to create the compile-time switch between bindattr_i resolving to with or without hints
21:24 denis_boyun joined #perl6
21:27 yannickberthoud joined #perl6
21:28 timotimo IT COMPILES
21:40 timotimo huh. for none of the accesses through nqp::getattr_i it will actually successfully create a hint :(
21:40 timotimo oh, actually bindattr_i
21:44 pmurias joined #perl6
21:44 pmurias [Coke]: do you think we could (semi)easily have smartlinks to the tests in our ops docs?
21:45 masak 'night, #perl6
21:47 lizmat gnight masak!
21:48 FROGGS joined #perl6
21:55 timotimo Error while compiling op bind (source text: ":="): Cannot infer type from ''  :(
22:02 d^_^b so once rakudo ships with MoarVM will there be really any functionally different from a developers perspecitve?
22:03 diakopter not at first probably
22:03 d^_^b or is JVM work and MoarVM separate?
22:03 timotimo it's only partially separate
22:04 timotimo the parallelisation stuff is jvm-exclusive at the moment
22:04 lue jnthn's slides are fun to read (still on day 1). I think I'll go back after reading them and do the exercises :)
22:05 diakopter lue++
22:05 diakopter good fun! and have luck!
22:10 trnh joined #perl6
22:10 trnh joined #perl6
22:11 baest joined #perl6
22:18 BenGoldberg joined #perl6
22:21 PZt joined #perl6
22:22 FROGGS joined #perl6
22:26 timotimo i think i'm doing this thing with the compile time value wrong :|
22:27 timotimo - QAST::WVal(ParseShared) - this doesn't "has_compile_time_value" and/or  QAST::SVal($!highwater) - this doesn't has_compile_time_value
22:27 timotimo is has_compile_time_value the wrong approach?
22:27 timotimo because - QAST::Var+{QAST::CompileTimeValue}(lexical $?CLASS) - this does has_compile_time_value, curiously
22:29 timotimo i suppose i'll have to check for isinstance QAST::WVal and SVal respectively?
22:34 lizmat fwiw, feels right
22:35 timotimo a getattr is always right, right? even if a getattr_i/_n/_s would be "better"?
22:35 timotimo because i think i could turn getattr into getattr_$foo at compile time under the same circumstances that i can calculate the hint
22:37 timotimo invoke() not implemented in class 'QAST::IVal' - the what now?
22:37 lizmat da bin ich überfragt
22:38 timotimo :)
22:38 timotimo ich besichtige die sehenswürdigkeiten
22:39 lizmat :-)
22:45 timotimo what was that twilight fanfiction called that was kind of like friendship is optiomal?
22:46 lizmat no idea…  :-)
22:46 lizmat and also gnight #perl6!
22:46 timotimo gnite lizmat :)
22:47 timotimo now i can calculate the hint, but not add it to the op because it chokes on the IVal ;_;
22:50 timotimo DOH
22:51 timotimo DOH DOH DOH
22:51 timotimo i forgot the .new
22:51 [Sno] joined #perl6
23:01 jdv79_ joined #perl6
23:02 skids joined #perl6
23:04 timotimo so far i get no debug output when compiling rakudo with my optimisation ... :/
23:04 timotimo that kind of makes me sad
23:04 timotimo but perhaps the grammar etc benefitted a bit from this
23:05 timotimo oh, there we go! :)
23:05 timotimo nqp::getattr_i($param, Parameter, '$!flags') - that sounds helpful :)
23:09 timotimo nqp: say(nqp::r_elems(Str))
23:09 camelia nqp: OUTPUT«Cannot do repr_elems on a type object␤current instr.: '' pc 93 ((file unknown):61) (/tmp/Wg0GK39koI:1)␤»
23:09 timotimo huh
23:25 dalek nqp/awesome_bindattr: 1af1098 | (Timo Paulssen)++ | src/vm/parrot/ (3 files):
23:25 dalek nqp/awesome_bindattr: WIP on bind/set/getattr with hints
23:25 dalek nqp/awesome_bindattr: review: https://github.com/perl6/nqp/commit/1af1098993
23:25 dalek nqp/awesome_bindattr: b04f59f | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp:
23:25 dalek nqp/awesome_bindattr: this actually works!
23:25 dalek nqp/awesome_bindattr: review: https://github.com/perl6/nqp/commit/b04f59f11a
23:28 panchiniak left #perl6
23:28 timotimo i figured the _n ops wouldn't get used often, so i can just skip the crufty code
23:35 * lue now realizes why all the NQP node-related code looked familiar; it reminds him of Lisp a bit.
23:38 stevan_ joined #perl6
23:43 timotimo well yeah, it is a tree and trees tend to look like that :)
23:44 [Coke] nwc10: (caterpillar) ja.
23:44 timotimo probably also with op nodes having the op names in them at the beginnings makes it look much more like sexp
23:46 [Coke] .to pmurias - re smartlinks - let's start with checking to see if every variant listed in the docs has a test. (and that every variant in the code has  doc)
23:46 yoleaux [Coke]: I'll pass your message to pmurias.
23:47 lue Ending the construction of a QAST::Op with  ))));  doesn't help matters :P
23:47 [Coke] lue: indent often.
23:47 [Coke] ((it's the only way I can read those)
23:47 timotimo hehe
23:49 lue One thing I didn't like about elisp when I was getting to know it was how )))))) was somehow preferred over )\n)\n ... (with proper indentation of closing parens, of course)

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

Perl 6 | Reference Documentation | Rakudo