Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-02-13

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:06 robinsmidsrod joined #perl6
00:12 Juerd This is NOT a Perl 5 channel. Please do not ask or answer Perl 5 questions here, unless they're also related to Perl 6.
00:15 geekosaur they keep cominbg back here; apparently they've decided if they want this to be a perl5 channel, it is obligated
00:15 Juerd geekosaur: What do you mean?
00:17 uvtc left #perl6
00:17 perlhelp_ perl6 people are nicer.
00:17 perlhelp_ perl5 is scary
00:17 grondilu does you question involve a large bunch of code we should inspect?
00:19 perlhelp_ No.
00:19 perlhelp_ A small bunch of code.
00:19 Juerd Please, don't. Even if it's one line.
00:19 Harzilein i think one easy way to turn everything into a perl6 question is to add "after i get it to work on perl5, i want to port it to perl6." at the end ;)
00:20 perlhelp_ I think Juerd is in the wrong perl room :)
00:20 grondilu I'm curious now.  Ask me your question in private if you want.
00:22 timotimo Juerd: the amount of code you can put into a signle line is ... :)
00:31 colomon joined #perl6
00:33 Tene perlhelp_: No, you're in the wrong room.  You've been pointed to several other places for help with Perl 5.
00:40 swarley I don't think he's going to get it..
00:59 robinsmidsrod joined #perl6
01:05 alec__ joined #perl6
01:06 alec__ joined #perl6
01:23 skids r: my @a = [1,2,3],[4,5,6]; my @b = ^10; @b[@a[1]].say; @b[@a[1].flat].say; @b[@a[1].list].say
01:23 p6eval rakudo a3869a: OUTPUT«3␤4 5 6␤4 5 6␤»
01:23 skids r: my @a = [1,2,3],[4,5,6]; my @b = ^10; @b[|@a[1]].say
01:23 p6eval rakudo a3869a: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (lines 1, 1)␤»
01:26 swarley and then you have moments like these.. Moments where you can't remember, "Did I name that attribute, 'SerializationContext' or 'SerialContext'
01:27 skids That's why you should have named it "Fred"
01:27 swarley i know someone who names all of his methods after LoTR characters so that his work would have a hard time replacing him
01:30 skids Well, there's a balance to be struck between having meaningful names and being so blandly meanigful that you just pile up compounds until people's eyes glaze over.
01:32 skids I've worked on a few products that went to the latter part of the extreme; the docs were nearly incomprehensible because keeping track of what a "service group bundle" was versus a "bundle group service" is not natural to the human brain.
01:35 swarley o-O
01:35 swarley That sounds painfully dull
01:41 skids The amount of overloading on vernacular in networking tech is pretty abysmal.  And it's made worse by different vendors overloading in different ways.  E.g. what many vendors call a "trunk" Cisco calls a "etherchannel", and Cisco uses "trunk" for something else entirely.
01:41 swarley ugh I hate that
02:00 swarley Half way through serialization
02:01 diakopter swarley: good job :)
02:02 sqirrel_ joined #perl6
02:02 swarley thank you (: It's helpful to have jnthn's code to learn from. It's just my job to make sure that it's in Go for at this point really
02:02 swarley I don't have a very interesting job until the run time
02:05 timotimo masak: i enjoyed your blogpost
02:05 happydude joined #perl6
02:06 TimToady did you mean moritz?
02:06 phenny TimToady: 12 Feb 18:50Z <FROGGS> ask TimToady what @( code ) is supposed to do inside regexes (if it should do anything at all)
02:10 timotimo er, hold on
02:11 timotimo yes, i did mean moritz!
02:11 timotimo i just briefly glanced at the tab i had open and it was the gist by masak with the evaluator
02:11 timotimo it's past at least one bedtime for me, it seems!
02:15 swarley Finished stubbing serializationReader.go (albeit incorrectly, given that everything should be private) but I think that's enough for tonight
02:19 swarley not much to it yet, but if anyone wants to look at it and point out any issues, the file I'm working on is https://github.com/swarley/nqp-go/blob/master/src/sixModel/serializationReader.go there are probably a few minor syntax errors that will get sorted out later, I'm more worried about the binary read being incorrect
02:20 Vlavv joined #perl6
02:22 sqirrel__ joined #perl6
02:26 TimToady phenny: tell FROGGS it is as some have speculated; from the outside Perl 6 should not be able to tell @() from @foo; it is merely that it must work a bit harder to figure out (or create) the identity of the array before applying consistent array semantics
02:26 phenny TimToady: I'll pass that on when FROGGS is around.
02:32 census joined #perl6
02:33 aindilis joined #perl6
03:03 robinsmidsrod joined #perl6
03:09 robinsmidsrod joined #perl6
03:16 raiph joined #perl6
03:16 raiph_ joined #perl6
03:16 raiph__ joined #perl6
03:35 uvtc joined #perl6
03:37 jaldhar joined #perl6
03:38 uvtc Does Perl 6 have a literal syntax for sets?
03:39 sivoais joined #perl6
03:39 uvtc Oh darn, shapecatcher's not working for me atm.
03:42 sorear uvtc: no.  use set(1,2,3)
03:43 uvtc thanks, sorear .
03:43 gfldex joined #perl6
03:50 gry left #perl6
03:56 TimToady r: sub circumfix:<⦃ ⦄> (*@items) { set @items }; say ⦃ 1, 2, 3 ⦄.perl
03:56 p6eval rakudo a3869a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Confusedâ�¤at /tmp/fEwnnjoPrP:1â�¤------> [32mix:<⦃ ⦄> (*@items) { set @items }; say ⦃[33mâ��[31m 1, 2, 3 ⦄.perl[0mâ�¤    expecting any of:â�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤Â»
03:57 TimToady n: sub circumfix:<⦃ ⦄> (*@items) { set @items }; say ⦃ 1, 2, 3 ⦄.perl
03:58 p6eval niecza v24-23-g0520c7c: OUTPUT«set("1", "2", "3")␤»
03:58 TimToady uvtc: ^^
03:59 uvtc TimToady: That's neat. Do you expect Perl 6 will come with that built-in but not enabled by default?
04:00 uvtc TimToady: anyhow, thanks for the example. :)
04:06 TimToady it's not really the standard notation, so probably not built-in
04:06 TimToady but as you see, if you want it, it's not far away
04:07 TimToady standard notation is usually just normal braces, but we don't want to overload them for that
04:07 uvtc Right. I see what you mean. For example, in Clojure, hashes are {} and sets are #{}.
04:09 uvtc That's interesting that I can create a set by either `set(1, 2, 3)` or `set(@a)`. I'd've expected to need to use an `apply`...
04:09 uvtc Well, I mean, in Perl 5 I expect the flattening. Wasn't sure about P6.
04:10 uvtc (er, not sure if "flattening" is the right word there.)
04:11 swarley I think I'm going to give emacs a try for a bit and see how I like it
04:11 swarley I've been using vim for a good long while, maybe it's time to mix it up
04:11 TimToady Perl 6 likes its variadic arguments still
04:11 TimToady only we call them slurpies now
04:12 TimToady we still have "list context", but it is now determined by the signature being bound to
04:12 TimToady context is also lazy in Perl 6, unlike Perl 5 where it's eager
04:13 SamuraiJack joined #perl6
04:14 uvtc TimToady: so, the context provided to the args passed into a function is determined by the function signature? Is list context generally the most common?
04:15 TimToady depends on how you measure, of course
04:15 TimToady sub foo($a,$b,$c, *@list) {...}
04:16 TimToady there are three times as many positionals there as list arguments :)
04:16 TimToady this is all explained in S06
04:16 uvtc TimToady: I was about to say, "I should probably try reading the Synopses before asking". :)
04:16 gfldex joined #perl6
04:17 TimToady but the default is flipped from Perl 5, so by default you get scalar arguments, and have to ask for a slurpy with the *
04:18 uvtc Oh. Reminds me of Python there. Where it captures any extra args you pass and puts them into an array. Or like Clojure's `(defn [x y & z] ...)`
04:18 uvtc .
04:19 uvtc Er, shouldn't've added that last part. Right. The start reminds me of how Python does it.
04:19 uvtc *star
04:21 uvtc swarley: Emacs is nice because all commands are either Ctrl-something, Alt-something, (and sometimes Ctrl-Alt-something), or else one of those keyboard shortcuts is a prefix for the key that comes next.
04:21 uvtc So, if you've got a keyboard with easy access to Ctrl and Alt, you're set. :)
04:22 TimToady my pinky is starting to ache...
04:23 uvtc swarley: Ah, actually, speaking of easy Ctrl and Alt, I recommended a Kinesis keyboard to TimToady at least a couple/few years ago.
04:23 uvtc TimToady: ^^
04:23 uvtc :)
04:24 uvtc TimToady: http://kinesis-ergo.com/contoured.htm
04:25 uvtc You use your thumbs for the Ctrl and Alt (I actually shift mine just a bit from the defaults to be more symmetrical). Now all my pinkies have to do are the Shift keys (and you can even get a pedal for those, if you like).
04:26 uvtc Anyhow, I've got no interest in the company, except that I'm now addicted to their keyboards. :)
04:28 uvtc (Actually, my left pinky still does Tab too, but if it were a problem, I'd probably try to use a pedal for it.)
04:28 uvtc Sorry for going so far off-topic!
04:29 TimToady I have an arthritic thumb as well...
04:31 uvtc Hm. Sorry to hear that. If it helps, the keyboards are programmable, and you can remap any keys around that you need to. Between than and a couple of pedals (you'll feel like you're playing a pipe organ!), I bet you could put together a setup that works for you.
04:32 uvtc I also do the trick of taping a trackpad in the area between the keypads. Using the mouse makes my hand sore fast. The trackpad you barely have to touch.
04:33 uvtc s/Between than/Between that/
04:33 jdv79 i use the freestyle.  very nice.
04:35 uvtc jdv79: But the keys don't line up in straight lines on that one! :) Also, that one comes in two parts, so it would constantly fall off my lap. :)
04:37 uvtc jdv79: also, my thumbs are smart now and know where Ctrl and Alt are. I wouldn't want to give that job back to my pinkies. They'd go on strike!
04:39 jdv79 at home (at the moment) i'm using one of these - forget the name - http://www.dansdata.com/images/clicky2/spacesaver1280.jpg
04:40 jdv79 but the freestyle for serious work helps me a lot with "pre-rsi" (says the doc). to each his own.
04:41 uvtc jdv79: cool. Glad to hear it works for you.
04:41 thou joined #perl6
04:49 uvtc Oh, nice: `comb` is like `split`, except you specify what you *want*. :)
04:53 uvtc o/
04:53 diakopter bye :)
04:53 uvtc left #perl6
04:53 preflex_ joined #perl6
05:17 xinming_ joined #perl6
05:27 quester joined #perl6
05:39 moritz \o
05:39 diakopter good morning moritz
06:00 sorear o/
06:20 gfldex joined #perl6
06:30 alec__ joined #perl6
06:32 kaleem joined #perl6
06:44 gfldex joined #perl6
06:52 xinming joined #perl6
07:20 b1rkh0ff joined #perl6
07:24 quester left #perl6
07:26 wk joined #perl6
07:36 alec__ joined #perl6
07:43 wk joined #perl6
07:47 nwc10 oops, I seem to have launched a denial-of-service attack on jnthn
07:49 SamuraiJack joined #perl6
08:04 gfldex joined #perl6
08:12 cotto How does the break between nqp master and parrot master exhibit itself?
08:14 not_gerd joined #perl6
08:15 not_gerd cotto: http://irclog.perlgeek.de/perl6/2013-02-01#i_6401627 and https://github.com/perl6/nqp/issues/74
08:15 not_gerd cotto: however, I just built latest Parrot/NQP/Rakudo without issue
08:15 not_gerd no idea if the underlying issue got fixed or just hidden again
08:16 cotto not_gerd: much obliged
08:17 cotto I like build bugs.  They're hard to miss.
08:20 not_gerd if it really was a GC or memory corruption thingy, it might crop up again after another round of code reshuffling
08:20 * not_gerd keeps his fingers crossed
08:22 not_gerd joined #perl6
08:23 cotto not_gerd: an energetic developer could always debug using known-bad versions of nqp and parrot
08:23 cotto I'm glad that it doesn't appear to be an immediate problem.
08:25 moritz fwiw I think I was able to compile NQP again after a very thorough clean on parrot/master
08:26 moritz though it might have been on a different machine (but both 64bit)
08:49 not_gerd moritz: at most, it could have been interference from an installed Parrot
08:49 not_gerd on cygwin, it's normally enought to rename libparrot.dll.a
08:50 not_gerd I would be surprised if I had not tried that, but I can of course no longer be 100% certain
08:50 not_gerd I always could try it again, but at best, I'll look like a fool, so nevermind ;)
08:50 PZt joined #perl6
08:51 domidumont joined #perl6
08:51 moritz not_gerd: well, I think there were some NQP changes that the makefile didn't quite cope with
08:52 moritz on yet another machine I had trouble building NQP with the recommended parrot version of a while (which was about a week after the trouble on newest NQP, so it might or might not have been related)
08:57 kresike joined #perl6
08:57 kresike hello all you happy perl6 people
08:58 fhelmberger joined #perl6
09:13 fgomez joined #perl6
09:24 jnthn morning, #perl6
09:25 dakkar joined #perl6
09:27 moritz \o *
09:27 robinsmidsrod joined #perl6
09:33 dakkar_ joined #perl6
09:46 dalek rakudo/nom: 5a12919 | jnthn++ | tools/build/NQP_REVISION:
09:46 dalek rakudo/nom: Bump to an NQP with a build fix.
09:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a12919647
09:57 daxim joined #perl6
09:59 Liz_ joined #perl6
10:20 masak good forenoon, #perl6
10:20 jnthn o/ masak
10:24 daxim http://nethackwiki.com/mediawiki/index.php?search=forelimb
10:26 masak something tells me lue would really enjoy nethack... :)
10:32 dalek nqp: c83b4b5 | jnthn++ | src/QRegex/NFA.nqp:
10:32 dalek nqp: s/our/my/ in a place things needn't be our.
10:32 dalek nqp: review: https://github.com/perl6/nqp/commit/c83b4b5244
10:32 dalek nqp: d89a658 | jnthn++ | src/QAST/Compiler.nqp:
10:32 dalek nqp: Toss dead code-path.
10:32 dalek nqp: review: https://github.com/perl6/nqp/commit/d89a658b9b
10:32 dalek nqp: a746f77 | jnthn++ | src/QRegex/Cursor.nqp:
10:32 dalek nqp: Performance/portability tweaks to Cursor.
10:32 dalek nqp: review: https://github.com/perl6/nqp/commit/a746f77620
10:35 ObseLeTe joined #perl6
10:44 arnsholt masak: I hate and love nethack, all at once =)
10:46 masak arnsholt: I have a deep respect for nethack... but I've always been more of an angband man myself.
10:47 masak arnsholt: sometimes I accidentally spend *days* on angband, not noticing the time pass.
10:47 felher <3 nethack :)
10:47 felher masak: same here with nethack. :)
10:53 felher Hm, angband and nethack do seem to be quite alike, aren't they?
10:53 arnsholt I've never tried angband, actually
10:56 masak highly recommended.
10:56 masak oh, oh! I have an idea for a new loop control word. like 'last', 'next', and 'redo'.
10:57 masak I'm not proposing we put it into the language.
10:57 masak maybe this can be added through macros, or something.
10:57 masak I call it 'slip'. the semantics is "stay in this place of the code, but advance to the next iteration".
10:58 nwc10 would be useful to determine *if* it can be implemented as macros
10:58 nwc10 and if not, what stops it being so
10:58 masak yeah. I don't immediately see it.
10:59 masak the problem is something like, what the macro would need to act on would be the topology of the rest of the loop, not the keyword itself.
10:59 felher masak: do you already have a usage example for it? If so, I would like to see it :)
11:00 masak so, for example, I don't see a problem handling it with macros if I also did 'slipfor', 'slipwhile', etc.
11:00 masak felher: yes. inspired by perlhack I did some scraping yesterday using Perl 5.
11:01 masak felher: I first thought I'd use Web::Scraper to capture the data from the page, but I quickly decided to just parse out individual lines from the HTML instead. the HTML was computer-generated and regular enough for that.
11:02 masak felher: so what I ended up with was a loop like: 'my @os; my $o; for lines { if A { $o = ... } elsif $o && B { ... } elsif $o && C { push @os, $o; $o = undef } }'
11:03 masak with the 'slip' keyword, I could scope $o correctly and rewrite it as 'my @os; for lines { next until A; my $o = ...; slip until B; ...; slip until C; push @os, $o }'
11:03 masak also, it reads *really* well.
11:04 felher uhhh, this is pretty cool.
11:04 masak it's a bit like a CPS transform in the language.
11:06 masak (folding several iterations/states into "one")
11:07 masak actually, I can't properly estimate how many times my brain has done this trick manually: "oh, and the rest of the information is on the next line/record/whatever, so I need to, um, store intermediary information in this variable, `next`, and detect the state of affairs from there..."
11:09 felher masak: yeah, right. Actually, in your first example, before checking C, you would have to assert that B was true once, right? Something like 'elsif $o && $b-was-true && C {...}' instead of 'elsif $o && C'.
11:09 felher masak: to match the much nicer slip-code
11:10 masak felher: funny you mention that. the first time I ran the program, there was a bug that made B not trigger, and I got lots of undefinedness warnings. I somehow fixed it, but I never really figured out what was wrong or what the fix was. as far as I can remember, I did nothing and suddenly it worked.
11:11 masak yeah, so 'slip' is in a sense *safer*, too.
11:11 masak I guess, just like 'next', it should silently exit the loop if there are no more iterations. unless it should consider that an error, but I don't think so.
11:13 felher masak++ #yeah, nice idea.
11:14 masak nwc10: what a macro would need to do would be to essentially recreate the ifs-in-loop state machine from the 'slip's. so it'd need to work on the level of the loop, not on the level of the individual 'slip' statements.
11:15 masak fun challenge for someone: find RC examples that could be rewritten to take advantage of 'slip' :)
11:15 * felher -> lunch
11:20 dalek nqp-jvm-prep: 41c2723 | jnthn++ | nqp-src/NQPCORE.setting:
11:20 dalek nqp-jvm-prep: Add a couple more NQPMu methods.
11:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/41c2723edf
11:20 dalek nqp-jvm-prep: 17464f8 | jnthn++ | / (2 files):
11:20 dalek nqp-jvm-prep: Add/build a somewhat commented out QRegex.nqp.
11:20 dalek nqp-jvm-prep:
11:20 dalek nqp-jvm-prep: The uncommented bits all cross-compile; the commented out bits need
11:20 dalek nqp-jvm-prep: things to be implemented.
11:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/17464f882d
11:20 masak heh, a 'next' is like a 'slip' plus a 'redo' :) we've just not considered it as doing two different things up until now.
11:20 dalek nqp: 749768c | jnthn++ | src/ (2 files):
11:20 dalek nqp: Fix nqp::isinvokable to know invocation spec.
11:20 dalek nqp: review: https://github.com/perl6/nqp/commit/749768c9be
11:24 masak also, 'slip' has nice connections to 'take'. (in that it relinquishes control while also remembering its own state/PC)
11:25 * masak 's eyes glaze over thinking about 'slip LABEL'
11:30 masak man, I have to learn more about the CPS transform.
11:38 Timbus joined #perl6
11:39 nwc10 jnthn: #3All tests successful. on "my" machine.
11:39 jnthn nwc10: nice :)
11:39 moritz masak: 'slip' feels a bit like a goto into an inner scope
11:40 moritz masak: which Perl 5 deprecates, and Perl 6 explicitly doesn't support, IIRC
11:41 masak moritz: are you familiar with the CPS transform?
11:41 moritz masak: for your use case, it seems you'd rather write   my @lines := lines; while @lines { do stuff; manually call @lines.shift instead of slip }
11:41 moritz masak: no
11:41 masak hm, @lines.shift works in a 'for' loop, I guess, but not in a 'while' loop.
11:42 moritz erm, why not?
11:42 moritz I'd think it's the other way round :-)
11:42 masak hm, yes :)
11:43 masak moritz: briefly, the compiler rewrites what would have been a set of 'goto' into inner scopes, to a set of states in a state machine, often represented as a switch statement in a loop in a lambda.
11:43 masak moritz: the nice thing about it is how clean and general it is.
11:43 masak again, I am *not* proposing we stuff this into the spec.
11:45 masak moritz: section 2.2 of http://research.microsoft.com/en-us/um/people/gmb/papers/cs5full.pdf is a nice example of the technique.
11:46 moritz masak: now I wonder how CPS transform and ENTER/LEAVE phasers interact :-)
11:47 masak heh.
11:47 masak might be ENTER/LEAVE would have to attach to a "logical" block, one that's represented in source, but not in IL.
12:11 dalek nqp: 28961ee | jnthn++ | src/NQP/World.pm:
12:11 dalek nqp: Update a comment.
12:11 dalek nqp: review: https://github.com/perl6/nqp/commit/28961ee2a8
12:11 dalek nqp: da26f1c | jnthn++ | src/NQP/World.pm:
12:11 dalek nqp: Replace one use of nqp_get_package_through_who.
12:11 dalek nqp:
12:11 dalek nqp: This op really needs to go away.
12:11 dalek nqp: review: https://github.com/perl6/nqp/commit/da26f1c22f
12:11 dalek nqp: cf72dc1 | jnthn++ | src/NQP/Actions.pm:
12:11 dalek nqp: Eliminate final nqp_get_package_through_who use.
12:11 dalek nqp:
12:11 dalek nqp: This also means that Foo::Bar can now work on nqp-jvm.
12:11 dalek nqp: review: https://github.com/perl6/nqp/commit/cf72dc10b9
12:11 dalek nqp-jvm-prep: a7fe411 | jnthn++ | t/nqp/43-package-var.t:
12:11 dalek nqp-jvm-prep: With latest NQP, we pass 43-package-var.t.
12:11 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/a7fe41102a
12:11 dalek nqp-jvm-prep: 0ddb900 | jnthn++ | nqp-src/Q (2 files):
12:11 dalek nqp-jvm-prep: Uncomment Foo::Bar uses in QASTNodes and QRegex.
12:11 dalek nqp-jvm-prep:
12:11 dalek nqp-jvm-prep: Now we support it, we can compile quite a few more bits of both of
12:12 dalek nqp-jvm-prep: these.
12:12 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/0ddb900aad
12:13 ObseLeTe joined #perl6
12:18 masak $ nom -p -e '$_ = "foo"'
12:18 masak (write anything on the first line)
12:18 masak ^D
12:19 masak Cannot assign to a readonly variable or a value in block  at -e:1
12:19 masak may I please consider this a rakudobug? :)
12:21 leprevost joined #perl6
12:21 jnthn Hm, maybe a bug in -p handling?
12:21 moritz you can, and it's already submitted, afaict
12:22 leprevost joined #perl6
12:22 leprevost joined #perl6
12:22 moritz the problem is that I couldn't figure out how to make the $_ rw in the wrapper when fixing -n and -p
12:24 masak maybe it should be 'is copy'?
12:24 masak I mean, it's not like there's some outer scope to write back to.
12:24 moritz of course there is
12:24 moritz the one where -p prints it
12:25 masak yeah, but that's ultimately tied to $*IN.lines, or something like that, no?
12:25 masak which is very much readonly.
12:25 moritz you want perl6 -p -e 's:g/no/yes/' to actually print out the modified stuff, no?
12:26 masak I see what you mean now.
12:26 moritz well, then we need to introduce a container somehwere inbetween
12:26 masak yes, we actually do this with scopes, that's right.
12:26 masak so it should be 'is rw'.
12:26 moritz it must probably be something like    for lines() { my $var = $_; (<-> $_ { user code here } ).($var) }
12:30 masak for lines() { (<-> $_ { user code here } ).(my $ = $_) }
12:31 masak then it doesn't leave a trace in the lexpad.
12:34 moritz and how do you print the modified $_ ?
12:37 masak hm. :) didn't think of that :)
12:38 masak there should be a way to declare "local but not lexical" variables, which are not seen in inner scopes...
12:38 masak the setting could probably use that too.
12:39 masak my $-local = $_;
12:47 nwc10 jnthn: *still* works on "my" machine - try harder :-)
13:08 dalek nqp-jvm-prep: ac9068a | jnthn++ | / (2 files):
13:08 dalek nqp-jvm-prep: Implement nqp::iscclass and associated constants.
13:08 dalek nqp-jvm-prep:
13:08 dalek nqp-jvm-prep: Those who dream of Unicode character properties at night, feel free to
13:08 dalek nqp-jvm-prep: review this. :-)
13:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/ac9068aeaf
13:08 dalek nqp-jvm-prep: ea496e2 | jnthn++ | nqp-src/QRegex.nqp:
13:08 dalek nqp-jvm-prep: Uncomment some more of QRegex.
13:08 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/ea496e2ae1
13:14 nwc10 jnthn: *Still* works on "my" machine
13:15 jnthn Gee, I really need to work on that :P
13:16 leprevost joined #perl6
13:17 pmichaud nwc10: Get masak++ to try it on "your" machine, that'll probably break it.  :-P
13:17 pmichaud It's just a matter of having the appropriate sledgehammer.
13:18 pmichaud anyone besides me planning to attend yapc::na in austin?
13:18 pmichaud the organizers are really hoping to get some more Perl 6 related talks.
13:18 jnthn pmichaud: Decent chance I'll be there.
13:19 jnthn Is submission deadline soon?
13:19 jnthn Or they just want some clue about who's coming?
13:19 pmichaud jnthn: looking.
13:20 pmichaud I think more the latter.
13:20 pmichaud Looks like 27 talks submitted thus far.
13:22 Spandox joined #perl6
13:22 nwc10 good am, Pm
13:22 pmichaud good morning, #perl6
13:24 nwc10 pmichaud: the machine in question is still users.perl5.git.perl.org, so if masak does  Perl 5 release, he'd end up with an account on it as a side effect
13:24 Spandox Has anyone else seen horrible performance when trying to work with large arrays?  I have a 200,000 word list that rakudo perl 6 takes 400 seconds to do a simple map
13:24 Spandox perl 5 it can do it in less than a second
13:28 jnthn my @a = ^200000; my @b = @a.map({ 2 * $_ }); say now - INIT now # 3.78s here
13:28 masak <3 INIT now
13:28 jnthn So I'm guessing there's a little more going on to make it that slow...
13:29 jnthn oh, darn, I was too slow
13:34 pmichaud I can't seem to find any sort of talk deadline, no.  Maybe I'll suggest that there be one.  :-)
13:35 * nwc10 is curious how far JVM will be by the German Perl Workshop
13:36 nwc10 I guess and "how many more holes Oracle has admitted to"
13:36 jnthn nwc10: When is it?
13:36 kaleem joined #perl6
13:36 moritz around March 16, iirc
13:36 jnthn hah, that's over a month away
13:37 nwc10 10:30 on 2013/03/13 to 15:25 on 2013/03/15 -- http://act.yapc.eu/gpw2013/schedule
13:38 nwc10 Given current progress, the date range is probably important.
13:38 pmichaud yes
13:39 nwc10 it's nice to have "this week" back in Perl 6
13:39 nwc10 but additive, rather than mutative
13:41 geekosaur joined #perl6
13:42 pmichaud ooooh, LEGOWORLD opens tomorrow in Copenhagen.  Wish I could go.... :-)
13:43 jnthn Nordic Perl Workshop will be in CPH this year, afaik ;)
13:43 pmichaud holy cow
13:44 pmichaud roundtrip flight to copenhagen is only $900 USD
13:44 nwc10 pmichaud: are you sure? In Europe these days it might be a horse :-)
13:44 nwc10 (this joke may be old, but it's not over yet)
13:45 pmichaud nwc10: whether cow or horse, $900 for a round-trip flight to CPH is pretty good, especially for 1-day-advance purchase :)
13:45 nwc10 gosh. 1 day.
13:45 nwc10 you didn't say "tomorrow"
13:45 nwc10 that really isn't bad
13:45 pmichaud and that's the fare on multiple airlines
13:46 pmichaud heh.  $920 round-trip for a flight leaving today.  :)
13:47 pmichaud afk for a bit
13:47 masak those two lines in succession... :P
13:47 jnthn :D
13:48 jnthn nwc10: Guess that's what aiming for a stable meat market produced...:)
13:49 * jnthn is still amused about the bologneighs :)
13:50 nwc10 I did like that one
13:52 [Coke] (yapc:na) - I just priced out tickets. the difference between refundable and non is crazy.
13:52 [Coke] r: say 528/191
13:52 p6eval rakudo 5a1291: OUTPUT«2.764398␤»
13:54 * [Coke] grumbles at the lack of university dorm rates.
13:56 dalek nqp-jvm-prep: 5b2a14a | jnthn++ | src/org/perl6/nqp/sixmodel/ (4 files):
13:56 dalek nqp-jvm-prep: Stub in NFA representation.
13:56 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/5b2a14a370
13:56 dalek nqp-jvm-prep: 6671c23 | jnthn++ | / (2 files):
13:56 dalek nqp-jvm-prep: Stub in NFA related opcodes.
13:56 dalek nqp-jvm-prep:
13:56 dalek nqp-jvm-prep: Will implement them once we get to needing them.
13:56 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/6671c23b3c
13:56 dalek nqp-jvm-prep: 006688b | jnthn++ | nqp-src/QRegex.nqp:
13:56 dalek nqp-jvm-prep: More uncommenting.
13:56 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/006688b918
13:56 [Coke] pmichaud: prety sure jnthn has expressed interest.
13:57 PacoAir joined #perl6
14:05 nwc10 jnthn: All tests successful.
14:05 pmichaud [Coke]: 13:18 <jnthn> pmichaud: Decent chance I'll be there.
14:05 pmichaud so yes.  :-)
14:05 jnthn Yeah. Flights are uncheap but not terrible.
14:05 jnthn Seems I have a choice of routes/airlines/airports.
14:08 bluescreen10 joined #perl6
14:11 kivutar joined #perl6
14:11 uvtc joined #perl6
14:17 salv01 joined #perl6
14:19 PerlJam good morning #perl6
14:21 Psyche^ joined #perl6
14:21 felher o/ PerlJam
14:22 pmichaud good morning, PerlJam
14:27 [Coke] jnthn: It's a trap, they all suck.
14:28 [Coke] I am a very tentative yes.
14:35 65MAAJU1C joined #perl6
14:35 raiph_ joined #perl6
14:35 92AAB3N03 joined #perl6
14:39 skids joined #perl6
14:41 awwaiid joined #perl6
14:42 bluescreen100 joined #perl6
14:49 jaldhar joined #perl6
14:56 masak rn: sub circumfix:<begin end>($contents) { say "$contents!" }; begin "OH HAI" end
14:56 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/1gjjKHnzrL:1â�¤------> [32ms) { say "$contents!" }; begin "OH HAI" [33mâ��[31mend[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        statement endâ�¤        stat…
14:56 p6eval ..niecza v24-23-g0520c7c: OUTPUT«OH HAI!␤»
14:56 * masak submits rakudobug
14:57 pmichaud does circumfix: even work in Rakudo?
14:57 masak dunno.
14:57 [Coke] rn:sub circumfix:<||>($contents){ say ~$contents}; |3|;
14:57 [Coke] rn: sub circumfix:<||>($contents){ say ~$contents}; |3|;
14:58 masak [Coke]: space after colon.
14:58 p6eval niecza v24-23-g0520c7c: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus term at /tmp/SjUKNDLM3V line 1:�------> [32mix:<||>($contents){ say ~$contents}; |3|[33m�[31m;[0m��Parse failed��»
14:58 p6eval ..rakudo 5a1291: OUTPUT«===SORRY!===␤Unable to find starter and stopper from '||'␤»
14:58 [Coke] rn: sub circumfix:<| |>($contents){ say ~$contents}; |3|;
14:58 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Bogus statementâ�¤at /tmp/c_anNffbAH:1â�¤------> [32mx:<| |>($contents){ say ~$contents}; |3|[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        prefix or termâ�¤        prefix o…
14:58 p6eval ..niecza v24-23-g0520c7c: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus term at /tmp/tCF8WYl1KS line 1:�------> [32mx:<| |>($contents){ say ~$contents}; |3|[33m�[31m;[0m��Parse failed��»
15:00 benabik joined #perl6
15:00 masak pmichaud: if it doesn't work, then it feels sensible that Rakudo should emit a "circumfix not implemented" error.
15:01 masak pmichaud: so either way, sump'n's up.
15:01 moritz rn: sub circumfix:<::: !!!>($x) { say $x }; ::: 42 !!!
15:01 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Confusedâ�¤at /tmp/KDAJbdBK_q:1â�¤------> [32m circumfix:<::: !!!>($x) { say $x }; :::[33mâ��[31m 42 !!![0mâ�¤    expecting any of:â�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤        colon pairâ�¤Â»
15:01 p6eval ..niecza v24-23-g0520c7c: OUTPUT«[31m===[0mSORRY![31m===[0m��Ternary !! seems to be missing its ?? at /tmp/34wENHZmPP line 1:�------> [32mmfix:<::: !!!>($x) { say $x }; ::: 42 !![33m�[31m![0m��Parse failed��»
15:02 moritz rn: sub circumfix:<::: :::>($x) { say $x }; ::: 42 :::
15:02 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Confusedâ�¤at /tmp/cm4V0ssGMk:1â�¤------> [32m circumfix:<::: :::>($x) { say $x }; :::[33mâ��[31m 42 :::[0mâ�¤    expecting any of:â�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤        colon pairâ�¤Â»
15:02 p6eval ..niecza v24-23-g0520c7c: OUTPUT«42␤»
15:02 stopbit joined #perl6
15:14 SunilJoshi joined #perl6
15:27 robinsmidsrod joined #perl6
15:28 arnsholt Ooooooh...
15:28 * arnsholt gets an idea for extracting information from C
15:32 alester joined #perl6
15:44 dalek nqp-jvm-prep: 83511d5 | jnthn++ | docs/ROADMAP:
15:44 dalek nqp-jvm-prep: ROADMAP update.
15:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/83511d5ef7
15:44 dalek nqp-jvm-prep: abe1de2 | jnthn++ | / (3 files):
15:44 dalek nqp-jvm-prep: Add ops and REPR funcs for natively typed arrays.
15:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/abe1de2a2f
15:44 dalek nqp-jvm-prep: 4c589a7 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/VMArray (4 files):
15:44 dalek nqp-jvm-prep: Teach VMArray about int/num/str storage.
15:44 dalek nqp-jvm-prep:
15:44 dalek nqp-jvm-prep: There may be more beautiful solutions, but this one will should Just
15:44 dalek nqp-jvm-prep: Work.
15:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/4c589a73f7
15:44 dalek nqp-jvm-prep: 4defaa5 | jnthn++ | / (4 files):
15:44 dalek nqp-jvm-prep: Create BOOTIntArray etc.; implement list_i/n/s.
15:44 dalek nqp-jvm-prep:
15:44 dalek nqp-jvm-prep: nqp::list_i() was the pressing one for the regex engine, but did the
15:44 dalek nqp-jvm-prep: rest while I was at it.
15:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/4defaa51c4
15:44 dalek nqp-jvm-prep: 6bbebf9 | jnthn++ | nqp-src/QRegex.nqp:
15:44 dalek nqp-jvm-prep: Uncomment various key parts of Cursor.
15:44 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/6bbebf9b3a
15:44 arnsholt Oooh, regexen
15:47 * TimToady mostly ignores the blognays
15:47 masak TimToady++
15:48 robinsmidsrod joined #perl6
15:48 uvtc "blognays"?
15:49 TimToady pun on bologneighs
15:49 skids It's a frothy combination of bolgna and mayonaise
15:49 hoelzro bolognese?
15:50 TimToady only made by a sect of hermitic horses
15:50 * masak .oO( a hermetically sealed sect of hermitic horses )
15:51 am0c joined #perl6
15:51 masak did you know that hermitic horses are equal to their own conjugate transpose?
15:51 TimToady at least that's the story; actually they make it from the herpatic tissues of herpetic creatures
15:52 TimToady python pate
15:52 masak those horses are all hippocrates, the lot of them.
15:53 TimToady Help, is there a doctor in the horse?!?
15:53 masak stand back. I can make the patient stable again.
15:54 * masak .oO( 'cus I swore the Hippocratic oats )
15:55 * TimToady trots off to the shower &
15:57 * masak .oO( with TimToady gone, no more jockeying around )
15:59 uvtc Sorry, I was lost at "bologneighs". Perhaps a pun in a pun?
16:00 PerlJam uvtc: if you're lost around here, that's "normal"  :)
16:00 nwc10 uvtc: it relates to this: http://www.bbc.co.uk/news/world-europe-21437317
16:02 masak consumers are so frustrating! first they want their daily meat really really cheap, and then they act all shocked when it turns out to be horse!</sarcasm>
16:02 uvtc nwc10: Ah.
16:02 masak it's like, make up your minds, consumers!
16:03 nwc10 uvtc: as a result of tests relating to *that* little scandal, it has also turned out that some kosher products supplied to UK prisons contained trace amounts of pig DNA.
16:03 nwc10 actually, I think I mean /that/ "little"
16:03 masak ;)
16:03 uvtc nwc10: Yeah, I'm a bit ignorant of the rules. I just hope the animals were treated humanely.
16:04 nwc10 well, the horsemeat seems to have come from Romania
16:04 masak ...a country well-known for their humane treatment of horses?
16:05 nwc10 well, within the EU, but I have no idea what their standards are like locally.
16:05 nwc10 the scandal is far more about "things not being labelled correctly, so what else is mislabled?" than "this particular meat isn't safe"
16:05 masak aye.
16:05 nwc10 in *this* case, it's believed that it's all safe to eat
16:05 nwc10 but, who do you trust
16:06 nwc10 (probably more likely your local butcher than a supermarket, and more likely lumps of things that look like meat than processed food)
16:06 * masak .oO( don't look a gift horse in the mouth )
16:06 masak and (local butchers)++
16:07 kaare_ joined #perl6
16:13 nwc10 jnthn: 6bbebf9b3a9d0ad85b2a494f731a3ea739b33903 works on "my" machine
16:13 xenoterracide joined #perl6
16:15 skids what was that skit comedy show with the local butcher selling some taboo mystery meat -- "league of gentlemen"?
16:21 jnthn pmichaud: https://gist.github.com/jnthn/4945749 # Cursor, cross-compiled to the JVM, seems basically functional. \o/
16:22 dalek nqp-jvm-prep: e9de357 | jnthn++ | nqp-src/QRegex.nqp:
16:22 dalek nqp-jvm-prep: Uncomment reduce decl, but not body yet.
16:22 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/e9de3577bd
16:22 dalek nqp-jvm-prep: 7bc9337 | jnthn++ | lib/QAST/JASTCompiler.nqp:
16:22 dalek nqp-jvm-prep: Fix code-gen for if/unless (yes, really).
16:22 dalek nqp-jvm-prep:
16:22 dalek nqp-jvm-prep: I'm amazed so much worked without hitting this...
16:22 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/7bc93374c7
16:22 pmichaud jnthn: \o/
16:22 pmichaud wow
16:22 pmichaud that's cool
16:22 benabik jnthn: Insufficent testing for if/unless?
16:22 nwc10 $ diff -u src/org/perl6/nqp/sixmodel/reprs/VMArrayInstance_[is].java  | diffstat VMArrayInstance_s.java |   50 ++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-)
16:23 nwc10 (and naughty terminaly for wrapping that)
16:23 nwc10 but sigh, I see why some people end up using Perl to generate their Java
16:23 jnthn benabik: Apparently... :)
16:24 jnthn pmichaud: Even better: it's pretty much exactly the same as the Cursor implementation atop of Parrot.
16:24 jnthn pmichaud: Only difference being a few things commented out and that it doesn't transcode to fixed width.
16:24 pmichaud well, we could make transcoding a no-op on some platforms
16:25 jnthn pmichaud: Yeah, I was pondering making an nqp::makeniceforrx or soemthing :)
16:25 nwc10 so parrot is still better for some things? such as cuneiform scripts?
16:25 nwc10 and emoji such as piles of poo? (and beer)
16:25 jnthn nwc10: I'm not going to work too hard on getting us doing stuff outside of the BMP right on the JVM.
16:26 nwc10 wise man.
16:26 jnthn nwc10: Because in the long run it all needs to go away in favor of NFG.
16:26 nwc10 keep beer real.
16:26 nwc10 aye
16:26 nwc10 NFG++
16:26 nwc10 NFG for the win
16:26 jnthn Where long run is perhaps medium run :)
16:26 nwc10 I hope. I really hope. That NFG ends up being a killer Perl 6 feature.
16:26 jnthn But still, not until after I've got a good number of other things working. :)
16:26 kresike bye folks
16:27 masak nwc10: it feels good to have discovered NFG already.
16:27 masak other languages are likely to need something like that if they are serious about Unicode.
16:28 nwc10 "I tried to render http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags but it went all O(n**2) on me"
16:28 masak :P
16:29 nwc10 jnthn: *still* works on my machine. OK, still passes all the tests
16:32 benabik Are all p6 strings intended to be NFG?  Is there thought about how that interacts with pathnames?
16:33 benabik FS -> NFG -> FS isn't guaranteed to work.
16:33 jnthn 128,987 QRegexJVM.class
16:33 jnthn 340,656 QRegexJVM.pbc
16:34 benabik And does anybody know in what situations NFC leaves composing characters around/
16:34 jnthn Despite all the crap in the bytecode we're generating thanks to not doing invokedynamic yet, the JVM outoupt still comes out a good bit smaller :)
16:35 masak benabik: I still personally haven't gotten to the bottom of how to treat pathnames. but from what I understand, sometimes one can do no better than to treat them as Buf (sequence of bytes), not Str.
16:37 nwc10 jnthn: JVM bytecode is *byte*code, whereas Parrot opcode streams are quantized as 32 or 64 bit quanitities?
16:37 benabik masak: I think, in the general case, Buf is the best you can do.  Responses to Unicode are very OS+FS dependent.
16:37 benabik nwc10: I'm fairly certain that java bytecode is based on larger than 8bit values.
16:37 jnthn nwc10: Something like that.
16:37 jnthn The ops are 8 bits. Arguments to the ops...it depends.
16:38 jnthn But most ops find their arguments on the stack top.
16:38 nwc10 jnthn: what was the thing that needed re-writing from PIR to NQP? And how many tasks remain until it's a blocker?
16:38 sqirrel joined #perl6
16:39 benabik Java has ≤ 256 ops?  I wrote a compiler to the JVM and never noticed that.
16:39 benabik Felt like a lot more than that.
16:42 jeffreykegler joined #perl6
16:44 jnthn nwc10: EXPR, and kboga++ already supplied patches, though I will need to tweak them a bit to use native types etc.
16:44 jnthn nwc10: Won't block on it until after I've ported the regex engine.
16:44 jnthn er, the rest of the... :)
16:45 jnthn At this point I'm ready to dig into code-gen for QAST::Regex, I think.
16:45 jnthn benabik: Full list at http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings
16:49 nwc10 wikipedia-- # why isn't there a "Lists" category?
16:50 masak ...because it wouldn't be a very useful category? :)
16:50 thou joined #perl6
16:50 masak there's also not a "tables" category, or an "images" category.
16:51 daxim http://en.wikipedia.org/wiki/List_of_lists
16:52 skids What, no category category?
16:55 masak skids: https://en.wikipedia.org/wiki/Category:Category_theory ;)
16:55 daxim http://en.wikipedia.org/w/index.php?title=Special:Categories&amp;offset=Categories&amp;limit=500
16:55 pmichaud there is no system that cannot be solved by layering another index on top of it, except for the problem of too many indexes.
16:55 pmichaud or something like that :)
16:55 geekosaur joined #perl6
16:57 benabik jnthn: I have the JVM spec bookmarked.  :-)
16:57 masak I'm reading the "List of lists" article, and getting something akin to both knowledge vertigo, a sense of being a very finite creature, and distress at how little time there is left to learn everything.
16:57 geekosaur russell's paradox?
16:58 masak geekosaur: no, I've made peace with Russell's paradox.
16:59 benabik To answer my question about what doesn't get composed in NFC: http://unicode.org/reports/tr15/#Primary_Exclusion_List_Table
17:01 masak oh, oh! has anyone every drawn any parallel between Russell's paradox and the Observer Effect in physics?
17:02 benabik Huh.  Russell's paradox is the halting problem.  Interesting.
17:03 masak yes, that feels intuitively right.
17:05 benabik The usual given reason for the halting problem is that it allows you to build a program that doesn't halt iff an input program halts.  The behavior of the program on itself is then...?
17:05 benabik Russell's paradox.
17:05 masak right.
17:06 masak the counterargument that fells the halting problem *is* Russell's paradox.
17:06 masak we can put equals signs with Cantor's diagonalization while we're at it.
17:06 masak they all do pretty much the same thing.
17:08 uvtc What are "NFG" and "BMP"?
17:08 masak uvtc: the latter is the Basic Multilingual Plane.
17:09 masak uvtc: it's where most Unicode characters (so far) hang out.
17:09 uvtc Ah, right. :)
17:10 masak I think "NFG" stands for "Normalized Form G" or something.
17:10 benabik NFG is "Normal Form Grapheme", which AFAICT is an invention of ours based on the fact that NFC isn't composed enough.
17:10 masak ah. benabik++
17:11 benabik Well, I guess it would be Normal Form G, given that NFC is technically Normal Form C, and not composed.  :-/
17:11 * [Coke] wonders how many centuries until someone solves unicode by saying "dammit, we're just going to use language <foo>"
17:12 uvtc [Coke]: plus dingbats. But that's *it*!
17:12 daxim masak, s/most/in common use/
17:12 daxim BMP 43561, not-BMP 55462
17:13 masak daxim: *nod*
17:13 jnthn nqp: say("\$\x{a2}")
17:13 p6eval nqp: OUTPUT«Unrecognized backslash sequence: '\x' at line 2, near "\\x{a2}\")"␤current instr.: 'panic' pc 14030 (src/stage2/gen/NQPHLL.pir:4994) (src/stage2/gen/NQPHLL.pm:330)␤»
17:14 masak [Coke]: I've spent over a decade among IAL people. I believe a common (second-language) IAL is more or less inevitable. but it's going to take time, maybe centuries.
17:16 benabik Mi devus re-lerni esperanton
17:16 SunilJoshi joined #perl6
17:17 benabik Sorry:  lerni esperanton denove
17:17 masak ambaŭ taŭgas laŭ mi.
17:18 benabik Had used Google translate and worried that the prefix was just a "didn't get translated" bit
17:18 uvtc Ne plu esperanton, mi pensas ĝi.
17:18 masak no, the 're-' prefix is there, and it works the same as in English :)
17:19 masak uvtc: something weird with the accusative near the end of your sentence :)
17:19 * uvtc was waiting for the reply "Neniu volas mani?"
17:19 masak uvtc: did you mean to say "No more Esperanto, I think"?
17:20 uvtc "No more esperanto, I mean it!" ... "Anybody want a peanut?"
17:20 masak :P
17:20 daxim aŭgh!
17:21 masak "Ne plu uzu Esperanton, mi petas!" -- "Arakidon por vi mi metas."
17:21 masak I don't know what GT is on when it thinks "peanut" translates to "mani"... :)
17:22 uvtc masak: Oh, do you know (some) esperanto? I was just using google translate. :)
17:22 masak uvtc: yeah, it's my third language.
17:22 masak I speak it practically daily with friends.
17:22 benabik Arakidon?
17:23 uvtc masak: oh, wow. Neat.
17:23 masak benabik: "peanut", in the accusative (-n)
17:24 masak uvtc: one of my friends is a *native* speaker. :)
17:24 benabik A native speaker of Esperanto?
17:24 masak yes!
17:24 FROGGS joined #perl6
17:25 benabik Although one of my thoughts on Esperanto is "if I start speaking it to my kid..."
17:25 masak the household language in his parents' home was Esperanto.
17:25 FROGGS hi there
17:25 phenny FROGGS: 02:26Z <TimToady> tell FROGGS it is as some have speculated; from the outside Perl 6 should not be able to tell @() from @foo; it is merely that it must work a bit harder to figure out (or create) the identity of the array before applying consistent array semantics
17:25 arnsholt If you start teaching it to your kids, the regularities are going to get screwed up within a generation or two =)
17:26 uvtc masak: Curious #1: What are your 1st and 2nd spoken langs? Curious #2: What do you think of Esperanto?
17:26 masak arnsholt: I'm not so sure. Esperanto holds those regularities more dear than other languages.
17:26 FROGGS TimToady: right, so I'm on the right track
17:27 arnsholt masak: Yeah, but that's the thing. Kids learning a language don't =)
17:27 uvtc masak: I ask because it appears you speak english like it's your native language.
17:28 uvtc Sorry -- getting way off-topic here.
17:28 masak arnsholt: I thought it was the other way around. kids prefer regularities. "gå, gådde, gått"
17:28 arnsholt Yeah, there's that as well
17:28 benabik How many english kids say "I getted a cookie"
17:28 arnsholt But contractions and simplifications (FSVO simple) have a way of creeping into all mother tongues
17:29 masak uvtc: #1: .sv and .en -- #2: I think it's OK. it has its flaws, and is fairly Europe-centric, and we know more about linguistics these days. but it got the community bit right, and is fun to speak, and that's why it survives.
17:30 masak arnsholt: I'm not necessarily saying you're wrong, and yes, maybe we'd see such an effect if there were more native speakers. right now, the counter-force of keeping the regularities win out easily.
17:30 arnsholt For example, the German pair gast/gäste is perfectly sensible and regular in the context where it arose. It's just that the reason has disappeared but the phenomenon hasn't =)
17:31 uvtc masak: .sv? That's El Salvador...
17:31 arnsholt It's Swedish =)
17:31 arnsholt The ISO language codes are subtly different from the country codes
17:32 uvtc hehehe :) Thanks, arnsholt .
17:32 masak yes, languages != countries ;)
17:33 daxim also, scripts != languages (Unicode)
17:33 masak arnsholt: gotta löve the ablaut.
17:34 arnsholt Ah, but it's umlaut!
17:34 arnsholt Ablaut is different and older, but looks exactly the same =D
17:34 masak I thought "umlaut" was a graphical decoration, whereas "ablaut" was when words changed depending on their form.
17:35 masak like gast/gäste.
17:35 jeffreykegler joined #perl6
17:35 arnsholt Ablaut is an inherited phenomenon from PIE (seen in strong verbs), whereas umlaut stems from vowels that were present in common Germanic and coloured neighbouring vowels
17:35 masak s/words/vowels/
17:35 masak arnsholt: oh!
17:35 masak well, that explains it.
17:35 arnsholt It's also the name of the phenomenon
17:35 masak It's älså the näjm of the phönomenön.
17:36 arnsholt In the case of gast, the root was originally gasti- and something about the shape of the plural (can't remember off-hand) made the stem-final -i colur the a to ä
17:37 arnsholt (Also, gast- is cognate with the Latin hostis, which meant both stranger and enemy. Thus English hostile but also hostel)
17:41 arnsholt And I guess that's enough historical linguistics for today =)
17:43 masak arnsholt++ # :)
17:48 geekosaur .oO { "Actually, it means 'neighbor.' Which tells you something." }
17:49 * FROGGS .oO { "Actually, it means 'Nachbar.' Which tells you something." }
17:50 * masak .oO( bologneighbor )
17:50 Chillance joined #perl6
17:51 FROGGS yammi
17:52 uvtc left #perl6
17:57 ObseLeTe joined #perl6
17:58 sftp joined #perl6
18:00 kaleem joined #perl6
18:02 FROGGS[mobile] joined #perl6
18:04 jnthn break, bbl &
18:08 AndChat|356841 joined #perl6
18:12 sivoais joined #perl6
18:13 jaldhar joined #perl6
18:26 arnsholt Is it possible to special-case certain specialisations of a parametric type?
18:26 SunilJoshi joined #perl6
18:27 arnsholt For example so that one specialisation is used for Buf[int8] and another for Buf[SomeClass]?
18:27 arnsholt A very special specialisation =)
18:35 zby_home_ joined #perl6
18:38 arnsholt Hmm. Or maybe I don't have to. Buf isn't actually parametrised, so I could just replace it
18:39 rindolf joined #perl6
18:39 rindolf Hi all.
18:39 rindolf TimToady: hi.
18:43 FROGGS[mobile] joined #perl6
18:44 Liz joined #perl6
18:44 moritz arnsholt: Buf is supposed to parameterized, fwiw
18:44 arnsholt Yeah, that's why I wondered about the special specialisations
18:44 arnsholt But since the current implementation isn't, I could ignore that wrinkle for the time being =)
18:45 benabik Specializations are useful.
18:46 moritz specializations are hard.
18:46 census joined #perl6
18:47 census I've been banned again from #perl !!
18:47 census Go me.
18:47 census I think because I use windows.
18:47 census I changed my username to appease them.
18:48 benabik Could you could write something like `class Int8Buf is Buf[int8]`, and pass Int8Bufs around where you otherwise expect Bufs?
18:48 moritz s/is/does/
18:48 moritz but yes
18:48 rDo_ joined #perl6
18:50 forestial joined #perl6
18:52 masak census: so, you're formerly known as perlhelp, yes?
18:53 PerlJam census: your name change did not appease anyone.
18:53 masak census: I'm curious, how does it happen that you get repeatedly banned from #perl ?
18:53 census i was before
18:53 census i don't know
18:53 census i thought i was supposed to chagne my name
18:53 census i'll go back to perlhelp
18:53 census i don't care what my name is
18:54 census i don't know why i get banned because it comes without warning
18:54 census it just happens
18:54 census no explanation afterwards either
18:54 census i thought i was asking reasonable q's about using perl in windows
18:54 census i was told windowws is terrible
18:54 census so is the version of perl i use
18:54 census and aperion went wild
18:54 PerlJam census: People have long memories.
18:55 huf masak: want logs? it's not particularly pretty but i think it was avoidable.
18:56 huf on perlhelp's part
18:56 census huf: what was the problem?
18:56 masak huf: I'm curious; if you can gist something, I'd be grateful.
18:56 census why won't anybody explain to me what was the problem today?
18:56 huf census: you dont listen. that's the main problem.
18:56 census the advice was to use a new version.
18:56 census I didn't listen to that?
18:56 census so i got banned
18:56 census i said i feel comfortable on the version i use
18:56 huf census: and #perl is a _lot_ more abrupt and a _lot_ less forgiving than this channel :)
18:57 huf census: see? this is the sort of thing that got you banned
18:57 census because i like the version of perl i use?  So i got banned?
18:57 census i said i am nervous about changing versions?
18:57 au census: hi. on a completely unrelated topic, did you know that wkhtmltopdf ( https://code.google.com/p/wkhtmltopdf/ ) has a windows installer, and it can convert familysearch.org web page to PDF, and you can open the PDF file and retrieve all result URLs from them?
18:57 huf 1) you have a problem 2) people tell you what to do to solve it 3) you start blathering about things instaed of listening to the advice
18:57 TimToady I suspect it's more because you go on and on about it
18:57 census frankly, i think that was a terrible solution
18:58 huf replacing a known-to-be-broken perl distro with a better one?
18:58 au agreed. it's the one that worked though. :p
18:58 huf but i'll stop. this isnt the channel for it.
18:58 census i did not take it seriously because it was a terrible solution
18:58 census no channel is
18:58 census BAN PERLHELP AND NEVER TELL HIM WHY
18:58 census Because I do not want to switch versions of perl
18:58 huf i just told you.
18:58 census Yes, because I don't want to switch versions of perl!!
18:58 huf census: so solve your own problems.
18:58 PerlJam census: you quickly got us to "solve your own problems" space and didn't reach escape velocity again.
18:58 census I did not criticize anybody for it until I got banned
18:59 huf census: nobody cares.
18:59 census PerlJam: look.
18:59 census It is awful being banned
18:59 census I write perl code now on my own
18:59 census I don't need the perl room
18:59 census I'm more upset about being banned. That is all
18:59 census The way in which I am banned is inhumane.
18:59 TimToady so you inflict it on us?
19:00 TimToady I'm beginning to suspect that it is more humane than inhumane...
19:00 masak :P
19:00 masak census: if you don't like being banned from #perl, I suggest you find ways to get along with the people over there.
19:00 masak census: from *your own description* of the discussion, I'm not all that surprised you got banned.
19:01 TimToady "It's always someone else's fault." is not how to do that...
19:01 masak and I haven't even read the logs.
19:02 census why aren't you surprised?
19:02 census i didn't give an attiude.
19:02 TimToady sure you  did
19:02 census someone asked why i use active perl.  I said it is all i am comfortable
19:02 census NOW I have an attitude
19:02 masak census: if you go into a channel where competent people can help you, they give their advice, and you adamantly refuse to follow it, you get banned.
19:02 census I developed an aftitude AFTER I got banned with now warning
19:02 TimToady why are you have the attitude at US?
19:02 salv01 left #perl6
19:02 TimToady *having
19:02 census That's terrible advice
19:02 masak it's not advice.
19:02 census I mean the advice they gave me was terrrible
19:02 census It was 1 person's advice
19:02 census I thought there might be other people with advice
19:03 census THe room has nearly 700 people
19:03 census 1 person said get a new version.
19:03 census I said no, and got banned.
19:03 huf masak: http://sprunge.us/gViC, but it's noisy and i cant be arsed to clean it up better.
19:03 census I might have to change all of my code if I get a new version
19:03 masak huf: thanks.
19:03 PerlJam census: then again, you might now.
19:03 PerlJam er ,not
19:03 census Please do read it.  I was trashed for using windows nonstop
19:03 masak census: Perl 5 takes backwards compat pretty seriously.
19:04 huf census: and you also got answers.
19:04 census huf: I got 1 answer to change versions
19:04 TimToady census: you don't want help, do you?  You just want to yell.  At anyone.
19:04 census I'm yelling HERE.  I did not yell there.
19:04 census I thought I was polite.
19:04 huf census: btw, what you're doing here right now is quite appalling.
19:04 huf and _certainly_ not polite.
19:04 census huf: Yes it is appalling.
19:04 census I am impolite here right now.  I agree
19:04 PerlJam census: yelling here isn't helping.
19:04 census I was NOT impolite in #perl
19:04 huf we thought so
19:04 census I even said I am ok with the insults in #perl
19:04 census I was very nice in #perl
19:05 TimToady why aren't you nice here?
19:05 census I did not insult the other version of perl
19:05 census I am so angry about being banned.  I am looking for sympathy.
19:05 TimToady you won't get it
19:05 census Because y'all love aperion?
19:05 huf census: grow up and learn to handle yourself and other people better.
19:05 geekosaur census, the os bashing in #perl was a somewhat different issue, and a problem in itself, but you were banned because you ask the same questions and do not learn
19:06 geekosaur helping you, yes.  thinking for you is ultimately beyond anyone on IRC
19:06 * TimToady thinks it's time to kick census here too
19:06 census I asked the same question because people wanted to sit around and talk about windows being bad.
19:06 census I wanted to ask about the module
19:06 census whatever
19:06 huf *sigh*
19:06 census left #perl6
19:07 geekosaur [13 14:00] <apeiron> not when the person demonstrably refuses to think
19:07 geekosaur ^^ that is the bottom line
19:07 huf i dont see what liking apeiron has to do with it, i cant stand him :D
19:07 huf but he has ops and i like the channel, so i dont bother him :)
19:07 PerlJam So ... how are everyone's Perl 6 projects coming along?   :-)
19:07 huf :)
19:08 masak :)
19:09 jeffreykegler joined #perl6
19:09 TimToady a little slow this morning for some reason...
19:09 * jnthn back from dinner
19:10 PerlJam masak: did you find that document I gave you useful as a starting point to write something about the Parrot/Perl6 relationship?
19:11 nwc10 TimToady: someone defrauding you with decaf?
19:11 jnthn arnsholt: You can write multiple roles with the same name and it will do a multi-dispatch to decide which one matches. Given you can sneak where clauses into multi-dispatch, then you can potentially have two roles and pick one or the other based on moon phase, or whatever.
19:11 masak PerlJam: I like it, yes. thank you.
19:12 masak PerlJam: I haven't seen alester around today, so I haven't been active in working on a text.
19:12 arnsholt jnthn: Right, so "class Buf[int8] { ... }; class Buf[::T] { .. };" should do more or less what I want?
19:12 PerlJam aye.  I thought as much.
19:13 masak until he arrives, Imma spend some time reviewing p6cc solutions :)
19:14 masak by the way, I like the term "help vampire". as long as it's not overapplied, which is always a risk, just as with "troll".
19:15 masak it's more important to get through to people than to label them.
19:15 huf masak: well yes, but perhaps they dont deserve death :)
19:15 jnthn arnsholt: Yeah
19:17 masak huf: well, people have long memories. he renames himself to 'census', and then the kick message is 'get out, perlhelp'.
19:17 masak huf: this tells me that this wasn't an isolated thing. he's been bugging them (and been kickbanned) before.
19:18 huf oh yes, i agree with that part
19:18 geekosaur yes
19:18 masak we are unusually blessed over here from vampires and their ilk.
19:18 huf i just try to not wish death on anyone, as a principle :)
19:18 geekosaur in fact that was why he poked in here, he bhad been banned from #perl and tries to demand help from us instead
19:18 masak when we told census to stop, he left on his own.
19:18 huf masak: only for a while, i hope.
19:18 huf err, you know what i mean
19:18 masak aye.
19:19 PerlJam So ... how are everyone's Perl 6 projects coming along?   :-)
19:19 PerlJam :-)
19:19 arnsholt jnthn: Brilliant! In that case I may try to improve Buf a bit =)
19:19 Juerd PerlJam: Keep trying :)
19:19 masak PerlJam: I wrote a perl6 -p script today. (re)discovered that $_ isn't rw.
19:19 masak PerlJam: I think community matters are on-topic if we believe we can one-up Perl 5 in that area.
19:20 jnthn PerlJam: I'm working on the JVM targeting for the regex compiler. It's quite some work :P
19:20 colomon jnthn++
19:20 * jnthn digs back into his day's Perl 6 project :)
19:20 PerlJam jnthn++ keep on keeping on and you'll get where you're going  :)
19:21 arnsholt I'm stretched a bit thin across a couple of semi-interrelated projects, but I'm still hopeful that some cool things can result
19:21 TimToady (people who solve their own problems, and other people's too)++
19:22 TimToady otoh some folks are never interested in finding out what the real problem is...
19:25 au ...well, privmsg is more effective for that kind of thing; it's getting solved now.
19:25 nwc10 jnthn: presumably 7bc93374c783dc0 [Fix code-gen for if/unless (yes, really).] means that the NQP regression tests are insufficient?
19:26 masak au++
19:27 jnthn nwc10: Well, yes, if you want to discover the issue in a simple test file :)
19:29 jnthn nwc10: ohbtw, what's the latest on the patches you sent in for exists/delete stuff?
19:29 jnthn nwc10: Waiting on myself/Pm to look at latest?
19:30 nwc10 yes, sort of
19:30 nwc10 As much, waiting for Pm to say "no, taking out existspos and deletepos from NQP is a daft thing"
19:30 moritz r: my @a = <a b c>; @a.map: <-> $_ { .=uc }; say @a.perl
19:30 p6eval rakudo 5a1291: OUTPUT«Array.new("A", "B", "C")␤»
19:31 nwc10 to be clearer "talking them out from NQP, and relying on NQP to implement them for Rakudo in terms of binding null"
19:31 nwc10 I *thought* that it was useful to take them out, as I can see a chunk of new Java code today to implement existspos
19:32 nwc10 or for Pm not to say that :-)
19:32 jnthn nwc10: Yeah, but that new code was just copy paste L :)
19:32 jnthn s/L//
19:32 moritz masak: heh, you were right about -n/-p code having $_ as 'is copy'
19:32 masak moritz: oh, I see.
19:32 nwc10 jnthn: give the diffstat between the 3 files, they were mostly copy paste of each other. Hence the comment about templating Java using Perl
19:32 moritz masak: because for -p, $_ is printed on the inside
19:33 masak moritz: that makes me feel much less confused. :)
19:33 jeffreykegler joined #perl6
19:33 Juerd "Printed on the inside" sounds funny.
19:33 moritz Juerd: that's ok :-)
19:33 Juerd Doesn't that interfere with the eskimo, though? :)
19:34 masak well, what it means is that when you have the AST, you can do slightly more than when you just have callable things at runtime :)
19:34 masak Juerd: yes, it does! :D
19:34 moritz so, now the question is, why doesn't the $param<is_copy> := 1 work?
19:34 * masak digs up the appropriate blog post
19:34 masak moritz: maybe that's not how it's spelled?
19:34 Juerd Darn. Oh well, END { ... } probably works just as well.
19:34 masak Juerd: except you probably want LAST { ... }
19:34 Juerd On my oneliner I want whatever is less typing :P
19:35 masak Juerd: http://strangelyconsistent.org/blog/dash-n-and-dash-p
19:35 Juerd Thank you
19:35 masak the eskimo operator gets an honorable mention.
19:35 Juerd Least you could do for the dying species :D
19:37 masak yah.
19:38 Juerd Lovely article
19:39 masak thank you.
19:40 masak it has two follow-up articles, because I ended up understanding settings in the process.
19:41 Juerd That's the risk you take...
19:42 masak :)
19:43 moritz oh hrm
19:44 moritz Perl6::World.create_parameter simply sets the flags for an is_copy parameter
19:45 census joined #perl6
19:45 census Hi I'm sorry I was rude before
19:45 census I calmed down a bit
19:45 moritz but Parameter.set_copy also does a .set_rw on the container descriptor
19:45 diakopter census: all is forgiven :)
19:45 census Thank you.
19:45 census It does not feel good to get banned :(
19:46 census I'm sorry for lashing out
19:46 census It is not the fault of people here (unless maybe they are also in perl5)
19:46 moritz so the code path through the trait does more than the codepath through World.create_parameter
19:46 masak moritz: oh!
19:46 diakopter census: I suggest solving the problem of not being able to connect to the #perl-help channel first
19:46 moritz which might be the reason that the %param<is_copy> := 1; doesn't work
19:47 masak moritz: yeah, sounds like.
19:47 jnthn I wonder if is_copy is legacy now and it's expected to always do it through the trait...
19:47 moritz jnthn: seems like
19:49 jnthn Any reason you can't just apply the trait?
19:49 moritz jnthn: but how do I make the $_ by the -n option is_copy then?
19:49 moritz erm, hurm
19:49 jnthn iirc, create_parameter gives you back a Paramter
19:49 jnthn And you can then $*W.apply_trait on that, or something along those lines.
19:50 diakopter census: go here http://www.irc.lc/magnet/perl-help
19:51 diakopter and be careful to be non-huffy and non-snippy
19:51 moritz jnthn: I'll try that route
19:52 masak census: it is big of you to apologise. you rise in my regard for doing so.
19:52 census masak: it is no problem
19:52 au census: feel free to take our work in progress, https://gist.github.com/anonymous/4947480 , to the perl-help channel diakopter mentioned above and ask for improvements/feedback
19:52 au ...and I'm off to sleep for real \o &
19:52 moritz good night
19:53 geekosaur also worth noting is disccusion about you in #perl:  people actualy have less animosity about snippiness/huffiness than about your appearing unwilling to even try to learn
19:53 masak census: "you need to learn how to figure out stuff yourself" :D
19:53 census thak you for that
19:53 census But
19:53 masak :(
19:54 census I have LEARNED so much perl.
19:54 diakopter heh heh. you have much more to go
19:54 [Coke] jnthn++ for doing all the jvm work!
19:54 diakopter it is quite depp
19:54 diakopter deep
19:54 census Those people do not understand because they have not seen the script I wrote!
19:54 census There probably things in it that many people here do not know.
19:54 diakopter hrm
19:54 masak census: "the bigger the island of knowledge, the longer the shore of wonder" ;)
19:54 diakopter this is a pretty erudite group
19:54 census Yes
19:54 census I am not trying to brag
19:54 census I don't mean it like that
19:54 census I mean I did some highly specialized routines
19:55 census I spent 9 days nonstop
19:55 census little sleep
19:55 census But I have some basic gaps
19:55 masak census: and when you say "I know a whole lot, you know", that comes across as https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
19:55 census Ok.  I mean I know a whole lot.  But there is a whole lot I don't know.
19:56 nwc10 jnthn: I don't know if this *matters*, but right now, try this:
19:56 nwc10 nqp nqp-jvm-cc.nqp -e 'for 1 -> $i { unless $i {nqp::say("T");}; {nqp::say("F");}}'
19:56 diakopter census: would you try the link I sent above?
19:56 nwc10 and then run it on regular NQP
19:56 census #perl treats me like I know zero
19:56 jaldhar joined #perl6
19:56 nwc10 is the JVM *prototype* supposed to produce LTA errors? :-)
19:56 nwc10 it's qutie splattacular.
19:57 masak census: well, you're not on #perl to have them treat you like a celebrity, I suppose.
19:57 masak census: you're on there to get help.
19:57 masak which has more to do with lack of knowledge than with knowledge.
19:58 census Yes I know that
19:58 census I know very little
19:58 census But I don't know zero
19:58 census I know a few things
19:58 census I have learned a lot
19:58 census I have lost lots of sleeptrying
19:58 census I still have a lot more to learn
19:58 census but i have learned a lot
19:58 masak put differently, if you find that you fall out with #perl because of your disagreement on how much you know... then you have an attitude problem.
19:58 masak and fixing that will make your dealings with #perl better.
19:58 census even if a lot amoutns to a 2nd grade level plus the ability to do an integral somehow if theis were calculus
19:59 census no, that was not he falling out
19:59 census this is the argument we are havijg right now. I don't know why.
19:59 census i respect their abilities
19:59 census they know sooo much more than me
19:59 census they are superir to me
19:59 census they can treat me however they want
20:00 census i deserve nothing
20:00 census because i know so little
20:00 census i just want to be efficient
20:00 census if i am banned, i want to fix the problem
20:00 census that is how people negotiate
20:00 census and work things out
20:00 masak census: hey, slow down :)
20:00 census you have to know what the problem is
20:01 TimToady census: you're using up all the oxygen in here...
20:01 masak census: it's simple. you get help on #perl iff you play by their rules. so far, you haven't learned how to do that. *you* are not being efficient at getting help.
20:01 masak census: you need to learn that.
20:01 census i don't know their rules
20:01 census yes i agreee
20:01 census that is why i ask them what is wrong
20:02 census and i cannnot understand it
20:02 census i still think it is because i said i don't want to use a different version of perl
20:02 fgomez joined #perl6
20:02 census and i don't think i said anything wrong by saying that
20:02 masak census: again, slow down...
20:02 jnthn nwc10: wow :)
20:02 huf and yet here you are, making noise.
20:02 census i was not trying to deny advice, but rather say that that is not practical advice for me since i've learned so much about active perl
20:02 huf _this_ is part of the problem.
20:02 census HUF:  We are not talking.
20:03 diakopter census: that is not nice
20:03 moritz census: stop that
20:03 census You are right.
20:03 huf census: this is also part of the problem.
20:03 census It was not nice.
20:03 masak census: you're walking on thin ice here.
20:03 moritz census: when you're in a public channel, you#re talking to everybody
20:03 huf you will continue to encounter problems on irc as long as you do things like this.
20:03 nwc10 jnthn: compared with the real NQP error.
20:03 huf census: concentrate on how to trick people into giving you free help
20:03 census HUF: What is "_this_
20:03 census That language means nothing to me.
20:03 huf census: if common decency doesnt work in your case.
20:03 huf census: huge amounts of noise, attitude.
20:03 census who am i tricking?
20:04 huf ah. reading comprehension is required too.
20:04 masak moritz: how do I become op again? something with ChanServ, right?
20:04 masak oh, I succeeded. :)
20:04 diakopter /msg chanserv op #perl6
20:04 masak right. apparently I did le right thing.
20:04 moritz masak: I was just wonderigng why you asked *after* succeeding :-)
20:04 masak hehe.
20:04 alester masak: Sorry I don't have anything yet.  Real life intruded.
20:05 diakopter census: see, masak is prepared to kick you if you're rude again
20:05 census i appreciate that warning
20:05 census ok i'm sorry.
20:05 census that is clear
20:05 TimToady census: you are tricking yourself; see http://www.biblegateway.com/passage/?search=Matthew%207:3-4&amp;version=NIV
20:05 huf oh, this saying comes from the bible too? heh :)
20:05 masak census: try to speak slower and with more thought.
20:06 masak census: we're not gaining anything from you dominating the channel with your quick utterances.
20:06 masak census: we pretty much know how you're arguing now, so please don't repeat things you already said.
20:06 census i'm very sorry about that.
20:06 huf i <3 the language of the KJV
20:07 masak TimToady: Jesus grokked poetic irony.
20:07 alester huf: The Bible is just full of cliches.  That Shakespeare guy wrote all in cliches, too.
20:07 TimToady and Tolkiens elves are so...derivative...
20:08 jnthn It's all so cliche...
20:08 huf alester: yes yes, but never having read it or been to church, i only know some of these sayings as "common"
20:08 huf alester: and then i am surprised when yet another one of them comes from the bible :)
20:08 masak woman, upon hearing the person in line ahead of her ordering Madonna-with-child stamps: "She's on *stamps* now? Where does it end?"
20:08 diakopter hey, she's the eternal sinless virgin to many
20:08 alester http://www.phrases.org.uk/meanings/bible-phrases-sayings.html
20:09 alester diakopter: Not to me.  She was sinless up through "True Blue" and everything after that is crap.
20:09 masak heh.
20:09 ingy Look, matey, I know a dead parrot when I see one, and I'm looking at one right now.
20:10 masak ingy! \o/
20:10 masak ingy: bet you waited *years* to do that one! :D
20:10 pmichaud oh dear, I had forgotten about the dead Parrot jokes.
20:10 ingy heya masak!
20:10 pmichaud ingy++
20:10 masak ingy++
20:10 ingy :D
20:10 ingy Go Perl6!
20:11 masak let's get in our time machines, go back 10 years, and tell them "...and then they dismantled the Parrot project, and everyone had a party."
20:11 atrodo pmichaud: I've been surprised how little dead parrot quotes have been going around
20:11 ingy good stuff takes time. great stuff takes even longer.
20:11 geekosaur it's actually in the bible twice, there's a phrasing of that in I think proverbs (or maybe lamentations)
20:11 masak bet they'll go "wuh!? how'd *THAT* happen?"
20:13 pmichaud nwc10 / jnthn :   I was just a little surprised at the patches is all, plus I wanted to make sure we weren't adopting Parrot's semantics of using nulls without considering the impact on other VMs
20:14 jeffreykegler joined #perl6
20:14 pmichaud also, I didn't know if it was related to solving the @array.delete issue, which is actually something quite different.
20:14 nwc10 pmichaud: yes, the @array.delete is orthogonal
20:15 jnthn pmichaud: We use some form of null in too many other places already.
20:15 nwc10 and also, as I see it, it's which is the lesser of two evils?
20:15 census joined #perl6
20:15 jnthn pmichaud: As in, if we find ourselves on a platform that can't in some way represent a null value, we have a lot of other places that will be tricky. In reality, I think there'll always be some way.
20:15 nwc10 a) mandating that the underlying VM somehow provides "sparseness" indicators, so that delete and exists ops exist
20:15 nwc10 or
20:16 pmichaud jnthn: it's not the existence of the null itself that concerned me; just the semantics of null and binding.  After my latest comments I have no issue with the patches, as long as they don't result in slowdowns.
20:16 nwc10 b) doing the sentinal values in the NQP layer
20:16 nwc10 I'm not sure of the best way to check for slowdowns. The code in that RT ticket is roughly unchanged
20:17 TimToady I'm fine if there's a performance discontinuity at the decision to go sparse, as long as the API semantics remain sane
20:19 jnthn pmichaud: I don't see a slowdown; we're just doing about what the ops did, in terms of some simpler ops.
20:19 jnthn pmichaud: As in, a couple rather than one.
20:20 pmichaud at some level I think I want nqp::atpos to be defined only for indexes in the array, to keep it fast/simple.
20:20 nwc10 how does "undefined" manifest itself - range exceptions? or nasal daemons?
20:21 pmichaud well
20:21 pmichaud if nqp::atpos has to do a check of the index to decide whether to throw an exception, it could just as easily return a sentinel
20:22 benabik joined #perl6
20:23 pmichaud (this is reprising the question from p6c about how 'defensive' does platform code need to be)
20:23 labster joined #perl6
20:24 * TimToady notes that the Nil value should generally be indistinguishable from a missing value, so might be a decent sentinal
20:24 TimToady *nel
20:24 benabik nel value? ;-)
20:24 pmichaud Yes, at a P6 level I agree with using Nil, Mu, or Any
20:24 pmichaud I'm just wondering what the nqp-vm policy should be.
20:25 nwc10 right now, nqp can distinguish between a position in an array where you never assigned anything, and a position where you assigned Mu
20:25 TimToady well, Mu and Any aren't supposed to considered to mean "not there" in the sense that Nil is
20:25 rjbs thus coining the term "Setinil"
20:25 nwc10 (or whatever of those three it is that it returns if you ask for the value at an index that was never assigned)
20:26 moritz rjbs++ # fully assimilated to #perl6, with bad puns and all :-)
20:26 pmichaud TimToady: yes; but I'm also thinking that if I have    my Int @array;   then @array[$bigindex]   should return Int
20:26 nwc10 er, Any()
20:27 pmichaud we can make it return Nil if it's never been initialized, but that somewhat departs from the way that we handle other uninitialized containers.
20:27 labster I thought that SETINil was the search for extraterrestrial Nil values.
20:28 pmichaud labster: you can search for extraterrestrial Nil values, but they're "not there"
20:28 moritz jnthn: I tried this patch here: http://perlpunks.de/paste/show/511bf758.7ea6.187
20:28 moritz jnthn: and now with -n, I get a Null PMC acces in get_bool
20:29 moritz the line that dies is   if $cd { $cd.set_rw(1) }   in src/Perl6/Metamodel/BOOTSTRAP.pm
20:29 TimToady we're trying to move to a model in which variables can have default values, so an Int array could have Int as its default, so in that sense it doesn't matter (semanticall) if you actually store the Int
20:29 TimToady *cally
20:29 moritz so, for some reason, it doesn't get a container descriptor
20:29 swarley rewriting everything to use better style and incorporate serialization
20:30 swarley should be able to expect progress again starting this weekend at the latest
20:30 pmichaud nwc10: I do think that at the NQP level we need to be able to distinguish between "never bound" and "bound to Mu"; that's quite intentional on my part.
20:30 jnthn moritz: That doesn't happen "for free"
20:30 TimToady and, in fact, hashes with defaults of the KeyHash persuasion are supposed to remove values matching the default
20:30 swarley I think I'm giving up on emacs
20:30 labster Okay, I have a question.  If I have a module Foo::Bar with a sub foo, is it possible for me to call it as Foo::Bar::foo(...), or do I have to import it into the current namespace?
20:31 moritz jnthn: what does that mean?
20:31 moritz labster: subs are lexical by default
20:31 pmichaud TimToady: correct, we're in agreement then on how things should work at that level.
20:31 TimToady I think if you're going to have NCI inputs you're going to have to be able to talk about null pointers at some level
20:31 moritz labster: so you either need to import/export, or write 'our sub foo'
20:32 TimToady and p5 kind of lets you talk about the null pointers in an array using exists
20:32 labster moritz: thanks... that does it.  I knew I was missing something.
20:33 TimToady in general, systems where one part assumes that another part has checked for nulls tend to be more fragile, so p5 checks for nulls in most places
20:33 moritz labster: though importing/exporting is the preferred mechanism in Perl 6
20:34 TimToady and I always figured as long as you were checking for nulls anyway, you can do something sensbible with them
20:34 * TimToady understands that other VMs may approach this question differently though
20:34 pmichaud nwc10: let's try this path, then:  If having nqp::atpos returns a null sentinel for missing/out-of-bound elements makes the Rakudo code better, let's go with that.  If the Rakudo code needs to do checking anyway, let's make nqp::atpos simpler if we can.
20:35 pmichaud (to avoid the extra check overhead)
20:35 jnthn moritz: See code in sub declare_param
20:35 labster moritz: I just thought that my sub names were a little well... terse otherwise, and I didn't want to cause needless collisions with user subs.  Maybe I should just rename them.
20:36 pmichaud there's also the question as to whether nqp::atpos should be able to handle default values.  Lots to be said for going that direction.
20:36 jnthn moritz: Really, I just mean that the container descriptor is explicitly made and placed into the thing passed to create_parameter
20:36 dalek perl6-roast-data: ac6f59f | coke++ | / (4 files):
20:36 dalek perl6-roast-data: today (automated commit)
20:36 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ac6f59f9f5
20:36 TimToady in any case, the way to avoid null checks in many arrays is to make them hold natives rather than pointers :)
20:36 [Coke] rakudo now failing 218 tests.
20:36 moritz jnthn: ah
20:36 [Coke] (more than niecza)
20:37 [Coke] pugs in the lead, only failing 8.
20:37 labster I'm working on a port of File::Compare, because it's a core P5 module and it's about at my skill level.
20:37 moritz jnthn: maybe make_thunk_ref isn't the right choice for the -n wrapper, and there's a routine that already does what I want?
20:37 pmichaud if our aggregates have a way of specifying the value to use for nonexistent/out-of-bound elements, that could be a nice win
20:38 moritz I don't understand what the various coderef-creating subs do, and how they differ
20:38 jnthn moritz: make_thunk_ref doesn't sound quite right. make_topic_block?
20:38 pmichaud (and an aggregate could specify "null" if that's the best approach)
20:38 pmichaud it'd be pretty easy to get QRPA in Parrot to have that capability.
20:38 moritz jnthn: er wait, that's what is used right now
20:39 moritz ok, I'll try to improve it
20:39 pmichaud TimToady: +1  (hold natives rather than pointers)
20:39 [Coke] labster++
20:40 masak labster: cool!
20:40 * pmichaud misses writing Perl 6 / NQP code
20:41 labster The original File::Compare::compare returns 0 on equality and 1 on difference, but that seems -- I dunno, contrary to natural language to me.
20:41 masak labster: you could define an enum.
20:41 masak or just use Bool, I dunno.
20:42 * jnthn misses pmichaud writing Perl 6 / NQP code ;)
20:42 pmichaud I hope to have more p6-shaped tuits soon.
20:42 labster Yeah, that's what I was going for.  But maybe making the function names like are_different and are_alike.
20:42 masak labster: that sounds even saner.
20:42 pmichaud at least I'm able to find some #perl6-shaped ones again.  :)
20:42 geekosaur compare is more intended for ordering, where it's appropriate for 0 to indicate no difference between the two for ordering purposes.  maybe compare should be called ordering or something
20:43 masak rn: say Ordering.enums.values
20:43 p6eval niecza v24-23-g0520c7c: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Ordering' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at /ho…
20:43 p6eval ..rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    Ordering used at line 1â�¤â�¤Â»
20:43 masak hrm.
20:43 moritz masak: Order
20:43 masak rn: say Order.enums.values
20:43 pmichaud rn: say Order.enums.values
20:43 p6eval rakudo 5a1291, niecza v24-23-g0520c7c: OUTPUT«-1 0 1␤»
20:43 p6eval rakudo 5a1291, niecza v24-23-g0520c7c: OUTPUT«-1 0 1␤»
20:43 masak rn: say Order.enums.keys
20:43 p6eval rakudo 5a1291, niecza v24-23-g0520c7c: OUTPUT«Increase Same Decrease␤»
20:43 moritz rn: say Order.enums.perl
20:43 p6eval rakudo 5a1291: OUTPUT«("Increase" => -1, "Same" => 0, "Decrease" => 1).hash␤»
20:43 p6eval ..niecza v24-23-g0520c7c: OUTPUT«EnumMap.new(...)␤»
20:43 masak advantage Rakudo :)
20:44 pmichaud I'm afk
20:45 jnthn o/
20:45 labster File::Compare returned -1 for error, so it wasn't exactly useful for ordering.
20:46 pupoque joined #perl6
20:46 alec__ joined #perl6
20:47 moritz well, you can always fail() on error in Perl 6 :-)
20:48 masak I don't see people do this a lot.
20:48 labster Actually, I am using fail.
20:48 moritz \o/ IT WORKS
20:48 masak moritz: \o/
20:49 labster My  code is full of fail, I'm sure.
20:49 jnthn moritz++
20:49 moritz spectesting now
20:51 Ulti from within rakudo is there a way to check which version is running?
20:51 moritz r: say $*VM
20:51 p6eval rakudo 5a1291: OUTPUT«("name" => "parrot", "config" => {"git_describe" => "RELEASE_4_10_0", "sha1" => "08a70fe50d07fc932b5505b13f09fa74b01622e9", "a" => ".a", "ar" => "ar", "ar_extra" => "", "ar_out" => "", "archname" => "i486-linux-gnu-thread-multi-64int", "arflags" => "cr", "as" => "a…
20:51 Ulti thanks
20:51 moritz r: say $*PERL
20:52 p6eval rakudo 5a1291: OUTPUT«("name" => "rakudo", "compiler" => {"name" => "rakudo", "ver" => "2013.01-115-g5a12919", "release-number" => "", "build-date" => "2013-02-13T10:13:32Z", "codename" => ""}).hash␤»
20:52 moritz that's better
20:52 Ulti n: say $*PERL
20:52 p6eval niecza v24-23-g0520c7c: OUTPUT«Any()␤»
20:52 Ulti ok neat
20:53 labster One thing I noticed is that Buf eqv Buf is really slow.
20:53 labster r: my $exes = ('x' x 10000).encode;  my $n = now; $exes eqv $exes; say now - $n;
20:53 p6eval rakudo 5a1291: OUTPUT«3.249693052␤»
20:53 labster r: my $exes = ('x' x 10000).encode;  my $n = now; $exes.decode('Binary') eqv $exes.decode('Binary'); say now - $n;
20:53 p6eval rakudo 5a1291: OUTPUT«0.02707558␤»
20:54 labster string comparison only 1200 times faster
20:54 colomon woah
20:54 swarley| joined #perl6
20:55 census_ joined #perl6
20:55 Ulti o__O
20:55 arnsholt And since I just looked at the Buf code, I think I know why
20:55 moritz arnsholt: me too, without even looking at it :-)
20:56 arnsholt Buf.eqv($a, $b) does $a.list eqv $b.eqv
20:56 census_ For the record, I figure out the problm I had posed to #perl
20:56 arnsholt So it probably iterates over the list forms in Perl 6 and compares each element, while the string compare goes straight to C
20:56 moritz that's from the times where Buf was implemented with ByteBuffer
20:57 moritz arnsholt: yes, I'll fix that
20:57 labster thanks moritz++
20:57 arnsholt There are some PIR bits in there as well, I noticed
20:59 arnsholt I'll probably give Buf a whack soonish though, since we're really gonna need it for proper Zavolaj
20:59 moritz labster: thanks for reporting that. This is exactly the kind of feedback we need to actually make rakudo faster
21:00 moritz labster++
21:00 moritz spectesting...
21:00 Ulti might be an interseting test to add in runtime sanity too
21:00 Ulti if you know that string equivalence should be near by in runtime
21:03 dalek nqp-jvm-prep: e033394 | jnthn++ | lib/QAST/JASTCompiler.nqp:
21:03 dalek nqp-jvm-prep: Start getting the regex compiler in place.
21:03 dalek nqp-jvm-prep:
21:03 dalek nqp-jvm-prep: Implemented concat, literal and pass. Empty, cheating scan so we can
21:03 dalek nqp-jvm-prep: try the other bits. Also got most of the prologue being emitted, but
21:03 dalek nqp-jvm-prep: none of the postlude that handles backtracking yet.
21:03 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/e033394359
21:03 dalek nqp-jvm-prep: 27c4de7 | jnthn++ | / (2 files):
21:03 dalek nqp-jvm-prep: Implement nqp::findmethod.
21:03 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/27c4de7126
21:03 dalek nqp-jvm-prep: d1763c9 | jnthn++ | nqp-src/QRegex.nqp:
21:03 dalek nqp-jvm-prep: Uncomment parse, wich ACCEPTS calls to match.
21:03 dalek nqp-jvm-prep:
21:03 dalek nqp-jvm-prep: With this, it's now possible to do a very, very basic regex:
21:03 dalek nqp-jvm-prep:     use QRegexJVM; say(('abcdef' ~~ /abc/).Str())
21:03 dalek nqp-jvm-prep: Which produces 'abc' as output.
21:03 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/d1763c98e4
21:05 [Coke] jnthn++
21:05 arnsholt Oooh!
21:06 Ulti I dont get how you are all so productive given dayjobs existing :S
21:06 pmichaud dayjob? what's that?
21:06 Ulti heh those things you avoid doing work at
21:06 jnthn The thing I didn't have to do today :)
21:07 jnthn Should probably look after it a bit tomorrw, though :)
21:10 fgomez joined #perl6
21:11 Ulti jnthn do you have a limit on how many of your lessons can be on compilers and object models?
21:12 nwc10 pmichaud: I don't have a good enough overview of the Rakudo code (and what should be at which level) to be able to judge whether something makes the Rakudo code better. I also don't have any good idea of what the significant difference between Mu and Any is.
21:12 nwc10 so, whilst that's a reasonable criteria at the design level, it's not something I'm able to continue with.
21:17 timotimo Any derives from Mu, Junction derives from Mu, too. everything else derives from Any (is what i believe)
21:17 jnthn Ulti: I don't really teach compilers and how to implement object systems. :) But I do find knowing such things helps when teaching pretty much any programming topic :)
21:18 nwc10 jnthn: *still* passes all tests.
21:19 jnthn nwc10: Darn...I might go a whole day without breaking anything?!
21:19 nwc10 the night is young, surely?
21:20 jnthn Just deciding what to pick off next.
21:20 zby_home joined #perl6
21:20 jnthn I think I'll leave the backtracking for another day...but there's still other things I can do :)
21:21 xy left #perl6
21:21 yx joined #perl6
21:25 pmichaud nwc10: okay, I'll look in more detail shortly.  If anyone (including you) wants to go ahead and apply the patches, I'm okay with that.
21:25 92AAB3S99 joined #perl6
21:25 raiph_ joined #perl6
21:25 6JTAAF61X joined #perl6
21:27 jnthn imho, we're better off without nqp::existspos and nqp::deletepos
21:29 FROGGS_ joined #perl6
21:31 pmichaud jnthn: noted.  I'll re-examine a bit over the next couple of days.
21:32 jnthn pmichaud: We may also want to declare the passing negative indexes to nqp::atpos is erroeneous, while you're pondering these things.
21:32 pmichaud well, if we assume that nqp::atpos gives sentinels, then nqp::existspos is just a macroish comparison :)
21:33 jnthn Yes, exactly.
21:33 pmichaud jnthn: what's your opinion about how nqp::atpos should handle out-of-bounds indexes?
21:33 nwc10 but NQP itself doesn't need this sparesness. Rakudo does
21:34 nwc10 er, sparseness.
21:34 nwc10 and ENOPUN for sparesness.
21:34 nwc10 that's the biggest thing that is bugging me here.
21:34 jnthn pmichaud: I think we rely on it giving back null in a bunch of places, as a sign of "this element doesn't yet exist", for some definition of exists :)
21:35 jnthn pmichaud: We could make it throw an exception in any case, but sentinels tend to be cheaper to handle, and we already have good things to do that.
21:35 jnthn QAST::VarWithFallback for example.
21:36 pmichaud if we're already checking boundedness, what's the harm in handling negative indexes then?  I think there are a couple of places that we make use of negative indexing too.
21:36 pmichaud *checking bounds
21:36 jnthn I think whatever you do it'd best not segfault, but if we make negative mean "undefined behavior" we can punt that check down to the VM and it can complain how it feels like.
21:36 jnthn On the JVM I guess it's already having to check for that. OTOH, it may well spot that we are do come JIT...
21:37 jnthn *already do
21:37 jnthn What do you mean by handling negative, ooc?
21:37 pmichaud atpos(-1)
21:37 jnthn As in, "subtract the elem count and check again"?
21:37 jnthn Or "return the sentinel reliably"?
21:38 pmichaud add the elem count and check again
21:38 pmichaud could also be return the sentinel reliably.  Either way, the point is that we still are having to do the check.
21:38 jnthn True
21:39 jnthn And I guess given that we only do the second check if the first one fails means it's only a single check for non-negative
21:39 pmichaud right.
21:39 jnthn So it's not actually extra cost in terms of instruction count.
21:39 pmichaud correct.
21:39 jnthn OK, then I can go with add elem count and check again.
21:39 jnthn Which is...the status quo :)
21:39 pmichaud indeed
21:40 pmichaud how do you feel about letting aggregates choose their sentinel?
21:41 pmichaud too costly for the extra pointer?
21:41 pmichaud s/pointer/reference/
21:41 jnthn Well, depends how we do it.
21:41 jnthn If you count it as part of the type, then it can be stored once per type (at the cost of a slightly more pricey lookup)
21:42 pmichaud I'm thinking per-instance
21:42 jnthn Otherwise it'd have to be per instance.
21:42 pmichaud it could be per-type if our types are smart enough to handle that
21:42 pmichaud i.e., if we really do recognize   my Int @array   as being a different type from   my Any @array
21:42 jnthn Well, on JVM an array type is using the VMArray REPR, so it's decidedly smart enough :)
21:43 jnthn I think those are different types already
21:43 jnthn Thing is that there's then the underlying storage.
21:44 jnthn Oh, wait, what level are you thinking of putting this at?
21:44 pmichaud possibly fairly low
21:44 jnthn The QRPA level, or the Perl 6 Array level?
21:44 pmichaud QRPA level
21:44 benabik joined #perl6
21:44 jnthn Yeah. Then we get two levels of type-y thing.
21:44 jnthn The Perl 6 Array[Int] or however we choose to see it, and also the low level storage.
21:45 jnthn Having that typed also is fine I guess.
21:45 pmichaud well,  Array[Int] can just tell the QRPA "here's what I what you to return for non-existent elements"
21:45 pmichaud which of course can continue to be PMCNULL (the default), but it could also be Nil or Any or Mu or ...
21:45 jnthn *nod*
21:46 pmichaud but it does mean an extra slot in every QRPA
21:46 pmichaud and maybe we don't want that.
21:46 jnthn Over in JVM land, QRPA's functionality is done as a REPR.
21:46 jnthn That means that there's the usual STable slot for hanging off type-specific info from.
21:46 pmichaud yup
21:47 jnthn In which case we get to have our sentinel cake and eat it.
21:47 pmichaud also, it means that QAST::VarWIthFallback can be a lot simpler
21:47 pmichaud (maybe, if I'm understanding what QAST::VWF is doing)
21:48 jnthn It does a lookup like a usual Var lookup would, and if it comes back with a null, it evaluates to the fallback
21:48 pmichaud right
21:48 jnthn It's mostly a convenience.
21:48 pmichaud this lets the aggregate specify the fallback
21:49 donaldh joined #perl6
21:49 jnthn Right, which would make QAST::VWF needed in...well, not that situation at lesat.
21:49 jnthn And that's it's main usage iirc.
21:49 jnthn er, amke it *not be needed*
21:49 nwc10 (I'm somewhat completely lost on the details now...
21:49 jnthn oh, huh, I confused myself in the negations ;)
21:50 nwc10 but I have found that NQP-JVM makes it a lot clearer to see which level is which. There's NQP. There's some Java code that "we" own (ie Jonathan)
21:50 nwc10 and beneath it is the real VM, which someone else owns)
21:50 nwc10 (which could have been written in Ook!, for all we care.
21:50 nwc10 The layers are much clearer)
21:50 jnthn Please, somebody else is allowed to own it too ;)
21:50 pmichaud I'm glad the layers are clearer :)
21:51 [Coke] you're too fast!
21:51 * pmichaud tapes Coke's virtual mouth shut.
21:51 pmichaud Ignore that part about being "too fast"  :)
21:51 jnthn :P
21:52 pmichaud anyway, we'll want to do some defaulting with KeyHash type aggregates also.  So it might be helpful to have some sort of defaulting built-in to our NQP-level aggregates
21:52 nwc10 [Coke]: this file changes quite slowly: https://github.com/jnthn/nqp-jvm-prep/commits/master/docs/LHF.md
21:52 pmichaud (including hashes)
21:53 pmichaud which would eliminate other of the VarWithFallback instances
21:53 jnthn Yeah.
21:53 pmichaud the theory being that fallbacking from within the aggregate code could be faster than fallbacking at the QAST level
21:53 pmichaud which is certainly the case for QRPA
21:54 jnthn It's a win everywhere in the sense of more compact code.
21:54 pmichaud so maybe we end up with a QHash too  :-/
21:54 jnthn No, maybe not
21:55 pmichaud (not that I mind a QHash too much)
21:55 jnthn I'd rather we throw the tuits at fully standardizing our stuff on 6model, not having even more PMCs in the mix...
21:55 benabik nwc10: It's also fairly short.
21:55 pmichaud jnthn: oh, I'm happy with that also.
21:56 census_ SOS
21:56 nwc10 and it still has deletepos in it
21:56 jnthn boo
21:56 * jnthn updates
21:56 pmichaud deletepos needs to be considered with respect to how Array.delete works
21:57 pmichaud and where compaction takes place
21:57 nwc10 yes, but it probably should come out of Low Hanging Fruit for now
21:57 pmichaud well, "compaction" as in shortening the virtual length of the array
21:57 pmichaud sadly, I have to run now
21:58 pmichaud jnthn: think a bit more on having a slot for "default sentinel" in aggregates and let me know if you like it or dislike it as a general notion
21:58 donaldh jnthn: I updated my impl of  nqp::split to use indexOf and substring.
21:58 phenny donaldh: 07 Feb 00:52Z <diakopter> tell donaldh I commented on your pull request's commit
21:58 census_ I have a very strange outputting situation!!  Can somone pleease help? :)
21:58 donaldh jnthn: I sent a pull request update last week.
21:58 [Coke] nwc10: I know, I know. I did make it smaller at one point. :)
21:58 pmichaud I'm afk again... bbt
21:59 [Coke] census_: Is this Perl 6 code?
21:59 [Coke] Or for some p5 code used in the build of one of the Perl 6s?
21:59 census_ No perl 5.  But I know some people know perl 5 here.  I would chat in private so not to distract the room.
22:00 jnthn pmichaud: Will do.
22:00 jnthn donaldh: oh, I missed the update...
22:01 dalek nqp-jvm-prep: ac0348c | jnthn++ | / (2 files):
22:01 dalek nqp-jvm-prep: QAST::Regex dba nodes, and uncomment some of !dba.
22:01 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/ac0348c535
22:01 dalek nqp-jvm-prep: 77328b7 | jnthn++ | docs/LHF.md:
22:01 dalek nqp-jvm-prep: Update LHF.
22:01 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/77328b7c9f
22:01 donaldh jnthn: np. I have been away since then and am just catching up.
22:02 jnthn donaldh: d'oh, now it dosn't want to automatically merge it.
22:02 * jnthn sorts it out
22:03 donaldh I just merged upstream. It looks like it's just the plan in 59-ops.t
22:04 donaldh 59-nqpop.t even :-)
22:12 swarley What is up with people coming in here to talk about perl5?
22:12 diakopter swarley: it's just the one person, different usernames
22:12 swarley ah
22:12 dalek nqp-jvm-prep: b8a759e | jnthn++ | / (2 files):
22:12 dalek nqp-jvm-prep: Add nqp::split implementation; donaldh++.
22:12 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/b8a759ee11
22:12 dalek nqp-jvm-prep: 20756af | jnthn++ | nqp-src/ (2 files):
22:12 dalek nqp-jvm-prep: Uncomment some code that needed nqp::split.
22:12 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/20756afab0
22:12 dalek nqp-jvm-prep: 867be66 | jnthn++ | t/nqp/59-nqpop.t:
22:12 dalek nqp-jvm-prep: Add nqp::split tests; donaldh++.
22:12 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/867be66e5b
22:13 dalek nqp: c9bc4a2 | jnthn++ | t/nqp/59-nqpop.t:
22:13 dalek nqp: Add nqp::split tests; donaldh++.
22:13 dalek nqp: review: https://github.com/perl6/nqp/commit/c9bc4a25ba
22:14 swarley Is anyone familiar with how libraries like libdl work? I'm going to need to make something like it so that I can do dynamic code loading for Go
22:14 swarley Well, I suppose everything could be statically linked
22:15 jnthn swarley: eval? :)
22:15 swarley In Go? :o
22:15 swarley :p*
22:15 jnthn swarley: No, I meant, implementing eval :)
22:15 swarley I was hoping that I could just compile features as they're made and link them in
22:15 swarley But, Go doesn't have easy support for dynamic loading
22:16 swarley so I suppose I'll so the static route.
22:16 swarley And right now I'm doing a rewrite of what I have so far
22:16 swarley I'm about to get into the REPR
22:16 swarley but I'm getting all of the ThreadContext/SerializationContext etc in the code base before I get too far down the road
22:17 diakopter donaldh: I haven't read the code; what does it do with multiple delimiter matches in succession?
22:18 donaldh zero length string between each delimiter match
22:19 nwc10 jnthn: meta-fail. (It still passes)
22:20 diakopter nqp: say(nqp::split(" ", "a  a  a"))
22:20 p6eval nqp: OUTPUT«[ "a", "", "a", "", "a" ]␤»
22:20 diakopter donaldh: ^^ it collapses them
22:21 donaldh diakopter: sorry, you've lost me
22:22 diakopter nqp: say(nqp::split("x", " xx xx "))
22:22 p6eval nqp: OUTPUT«[ " ", "", " ", "", " " ]␤»
22:22 diakopter oh
22:22 diakopter nm
22:22 jnthn diakopter: Gives same output on both.
22:22 jnthn (the a one at least)
22:22 * jnthn just tried it locally
22:22 diakopter sorry, I thought I saw something different the other day
22:23 stevan_ nqp: say(undef)
22:23 p6eval nqp: OUTPUT«␤»
22:23 stevan_ nqp: say(true)
22:23 p6eval nqp: OUTPUT«␤»
22:23 stevan_ nqp: say(false)
22:23 p6eval nqp: OUTPUT«␤»
22:23 donaldh I should add a test for consecutive delimiters.
22:23 stevan_ hmm, am I using the p6eval bot wrong?
22:23 jnthn nqp: say(i_turn_all_unknown_lookups_info_nqpmu)
22:23 p6eval nqp: OUTPUT«␤»
22:23 nwc10 stevan_: did you want nqp? or Rakudo?
22:24 jnthn *into
22:24 jnthn Anyway, there's no undef/true/false defined in nqp
22:24 stevan_ oh, I guess Rakudo :)
22:24 nwc10 nqp: say(Rickroll)
22:24 p6eval nqp: OUTPUT«␤»
22:24 nwc10 quite safe :-)
22:25 nwc10 r: say "Hello world"
22:25 lue [backlog] masak: I have actually played nethack [ in spite of gentoo's wails of security vulnerabilities ], but Dwarf Fortress is more fun :)
22:25 p6eval rakudo 5a1291: OUTPUT«Hello world␤»
22:25 stevan_ nwc10: thanks
22:25 jnthn nwc10: You're never gonna give that meme up? :)
22:25 stevan_ r: say undef
22:25 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unsupported use of undef as a value; in Perl 6 please use something more specific:â�¤        Mu (the "most undefined" type object),â�¤ an undefined type object such as Int,â�¤  Nil as an empty list,â�¤  !*.defined as a matcher or method,â�¤     Any:U as a
22:25 p6eval ..t…
22:25 stevan_ ouch
22:25 stevan_ ok
22:25 stevan_ r: say true
22:25 p6eval rakudo 5a1291: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤    true used at line 1â�¤â�¤Â»
22:25 nwc10 you can also talk to it as a privmsg
22:25 jnthn r: say True
22:25 p6eval rakudo 5a1291: OUTPUT«True␤»
22:25 stevan_ is true not true
22:26 nwc10 but, I discovered, you need to start your message with r:
22:26 nwc10 or n:
22:26 nwc10 or the other things it accepts
22:26 stevan_ ah
22:26 stevan_ r: say False
22:26 p6eval rakudo 5a1291: OUTPUT«False␤»
22:26 masak in a method in a grammar, how do I refer to the string matched against?
22:26 stevan_ got it
22:26 stevan_ thanks
22:26 nwc10 I don't think that there's a prize for DOSing it. Or pwning it
22:26 jnthn masak: self.orig iirc
22:26 masak jnthn: dz
22:26 jnthn pzh
22:27 masak jnthn: indeed, it is. jnthn++
22:28 masak r: grammar G { regex TOP { { die self.orig } } }; G.parse("OH HAI")
22:28 p6eval rakudo 5a1291: OUTPUT«OH HAI␤  in regex TOP at /tmp/Fpk8RNpPLu:1␤  in method parse at src/gen/CORE.setting:10733␤  in block  at /tmp/Fpk8RNpPLu:1␤␤»
22:28 masak r: grammar G { regex TOP { { die self.^methods } } }; G.parse("OH HAI")
22:28 p6eval rakudo 5a1291: OUTPUT«No such method 'Stringy' for invocant of type 'NQPRoutine'␤  in method join at src/gen/CORE.setting:1293␤  in method Str at src/gen/CORE.setting:5792␤  in method Str at src/gen/CORE.setting:5093␤  in method message at src/gen/CORE.setting:9333␤  in regex TOP at /tm…
22:28 masak jnthn: should this work? ;)
22:28 jnthn yeah, but we already know it doesn't :)
22:28 masak ah.
22:28 masak dang, I keep finding stale bugs!
22:28 jnthn Yeah. I'm too slow at fixing them :P
22:29 masak someone should srsly think about not reporting them before I do :P
22:29 jnthn You reported this one already, I thknk :P
22:29 masak masak: stop doing that!
22:29 jnthn yeah, you tell him!
22:29 masak masak: no, *you* stop!
22:29 nwc10 if you moved to github, you'd get more contributors.
22:29 nwc10 Oh, wait.
22:31 Ulti r: print
22:31 p6eval rakudo 5a1291:  ( no output )
22:31 masak Ulti: known bug.
22:31 Ulti you mean the True return value?
22:31 jnthn std: print
22:31 p6eval std 7551b8f: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'print'; in Perl 6 please use .print if you meant $_, or use an explicit invocant or argument at /tmp/HHblMkrlu3 line 1:�------> [32mprint[33m�[31m<EOL>[0m�Check failed�FAILED 00:00 41m�»
22:31 masak I mean that.
22:31 Ulti k
22:31 Ulti just checking :P
22:32 jnthn You need to clothe your prints in Perl 6 :)
22:32 masak print decently!
22:32 Ulti well you can do a bare say and get a newline so thought you might get a null string or something
22:33 lue .oO(What if a module interfacing with printers created a bare print function to do what it says on the tin?)
22:34 Ulti ahhh I get it though, you are printing a null string which is doing nothing and you successfully have done that
22:35 Ulti and say does the same its just you also get the output
22:35 Ulti thats not a bug its just the prompt does slightly different things in each case
22:38 Ulti r: my $say = say; my $print = print; say $say.perl ~ " " ~ $print.perl;
22:38 p6eval rakudo 5a1291: OUTPUT«␤Bool::True Bool::True␤»
22:38 Ulti its all good
22:44 swarley Slowly rewriting everything
22:44 swarley I'm going to need to organize this code better after the rewrite is done though I think
23:04 pupoque left #perl6
23:08 _sri http://blog.headius.com/2012/10/so-you-want-to-optimize-ruby.html # interesting post about optimizing ruby implementations and the jvm
23:10 * jnthn was reading some of headius++'s code last night :)
23:10 _sri :)
23:11 masak heady stuff :P
23:11 jnthn It was...invokedynamic takes some getting one's head around :)
23:12 jnthn It does...quite a lot more than invocation stuff :)
23:18 _daniel-s__ joined #perl6
23:21 _daniel-s__ joined #perl6
23:21 * masak .oO( invokedynamic is WEB SCALE )
23:21 * jnthn throws a PIC axe at masak
23:22 * masak hides behind a register alligator
23:30 census joined #perl6
23:33 masak 'night, #perl6
23:35 census_ joined #perl6
23:35 skids joined #perl6
23:49 k-man joined #perl6
23:52 k-man left #perl6
23:55 dalek nqp-jvm-prep: f1b70d2 | jnthn++ | lib/QAST/JASTCompiler.nqp:
23:55 dalek nqp-jvm-prep: Implement enumcharlist compilation.
23:55 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/f1b70d2e5a
23:55 dalek nqp-jvm-prep: 71e1f67 | jnthn++ | lib/QAST/JASTCompiler.nqp:
23:55 dalek nqp-jvm-prep: ws just delegates to (todo) subrule.
23:55 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/71e1f6731a
23:55 dalek nqp-jvm-prep: 0faad58 | jnthn++ | lib/QAST/JASTCompiler.nqp:
23:55 dalek nqp-jvm-prep: Implement qastnode; code blocks in regex now work.
23:55 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/0faad580d6
23:55 dalek nqp-jvm-prep: 9827646 | jnthn++ | lib/QAST/JASTCompiler.nqp:
23:55 dalek nqp-jvm-prep: Implement cclass.
23:55 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/98276468e4
23:55 dalek nqp-jvm-prep: 7a8bf7b | jnthn++ | docs/ROADMAP:
23:55 dalek nqp-jvm-prep: ROADMAP update.
23:55 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/7a8bf7bdbc
23:55 _daniel-s__ joined #perl6
23:58 _daniel-s__ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo