»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:05 robinsmidsrod left 00:06 robinsmidsrod joined
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:12
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
perlhelp_ perl6 people are nicer. 00:17
perl5 is scary
grondilu does you question involve a large bunch of code we should inspect?
perlhelp_ No. 00:19
A small bunch of code.
Juerd Please, don't. Even if it's one line.
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 ;)
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:21
timotimo Juerd: the amount of code you can put into a signle line is ... :) 00:22
00:30 colomon left 00:31 colomon joined
Tene perlhelp_: No, you're in the wrong room. You've been pointed to several other places for help with Perl 5. 00:33
00:37 perlhelp_ left 00:39 alester left
swarley I don't think he's going to get it.. 00:40
00:57 robinsmidsrod left 00:58 alec__1 left 00:59 robinsmidsrod joined 01:05 alec__ joined, alec__ left 01:06 alec__ joined, alec__ left
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␤»
skids r: my @a = [1,2,3],[4,5,6]; my @b = ^10; @b[|@a[1]].say
p6eval rakudo a3869a: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (lines 1, 1)␤»
swarley and then you have moments like these.. Moments where you can't remember, "Did I name that attribute, 'SerializationContext' or 'SerialContext' 01:26
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
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:30
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:32
swarley o-O 01:35
That sounds painfully dull
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
Half way through serialization 02:00
diakopter swarley: good job :) 02:01
02:02 sqirrel_ joined
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
I don't have a very interesting job until the run time
02:03 sqirrel left
timotimo masak: i enjoyed your blogpost 02:05
02:05 happydude joined
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:07 Vlavv left 02:08 raiph_ left, raiph left, raiph__ left
timotimo er, hold on 02:11
yes, i did mean moritz!
i just briefly glanced at the tab i had open and it was the gist by masak with the evaluator
it's past at least one bedtime for me, it seems!
swarley Finished stubbing serializationReader.go (albeit incorrectly, given that everything should be private) but I think that's enough for tonight 02:15
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 github.com/swarley/nqp-go/blob/mas...nReader.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:19
02:20 Vlavv joined 02:22 sqirrel__ joined 02:25 awwaiid left, sqirrel_ left
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:30 aindilis left 02:32 census joined 02:33 aindilis joined 02:49 census left 03:01 robinsmidsrod left 03:03 robinsmidsrod joined 03:07 robinsmidsrod left 03:09 robinsmidsrod joined 03:16 raiph joined, raiph_ joined, raiph__ joined 03:18 aindilis left 03:35 uvtc joined 03:37 jaldhar joined 03:38 sivoais left
uvtc Does Perl 6 have a literal syntax for sets? 03:38
03:39 sivoais joined
uvtc Oh darn, shapecatcher's not working for me atm. 03:39
03:41 gfldex left
sorear uvtc: no. use set(1,2,3) 03:42
uvtc thanks, sorear . 03:43
03:43 gfldex joined 03:50 gry left 03:54 happydude left 03:56 EDWIN left
TimToady r: sub circumfix:<⦃ ⦄> (*@items) { set @items }; say ⦃ 1, 2, 3 ⦄.perl 03:56
p6eval rakudo a3869a: OUTPUT«===SORRY!===␤Confused␤at /tmp/fEwnnjoPrP:1␤------> ix:<⦃ ⦄> (*@items) { set @items }; say ⦃⏏ 1, 2, 3 ⦄.perl␤ expecting any of:␤ prefix or term␤ prefix or meta-prefix␤»
TimToady n: sub circumfix:<⦃ ⦄> (*@items) { set @items }; say ⦃ 1, 2, 3 ⦄.perl 03:57
p6eval niecza v24-23-g0520c7c: OUTPUT«set("1", "2", "3")␤» 03:58
TimToady uvtc: ^^
uvtc TimToady: That's neat. Do you expect Perl 6 will come with that built-in but not enabled by default? 03:59
TimToady: anyhow, thanks for the example. :) 04:00
TimToady it's not really the standard notation, so probably not built-in 04:06
but as you see, if you want it, it's not far away
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 #{}.
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
Well, I mean, in Perl 5 I expect the flattening. Wasn't sure about P6.
(er, not sure if "flattening" is the right word there.) 04:10
swarley I think I'm going to give emacs a try for a bit and see how I like it 04:11
I've been using vim for a good long while, maybe it's time to mix it up
TimToady Perl 6 likes its variadic arguments still
only we call them slurpies now
we still have "list context", but it is now determined by the signature being bound to 04:12
context is also lazy in Perl 6, unlike Perl 5 where it's eager
04:13 SamuraiJack joined
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:14
TimToady depends on how you measure, of course 04:15
sub foo($a,$b,$c, *@list) {...}
04:15 gfldex left
TimToady there are three times as many positionals there as list arguments :) 04:16
this is all explained in S06
uvtc TimToady: I was about to say, "I should probably try reading the Synopses before asking". :)
04:16 gfldex joined
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:17
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
.
Er, shouldn't've added that last part. Right. The start reminds me of how Python does it. 04:19
*star
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
So, if you've got a keyboard with easy access to Ctrl and Alt, you're set. :)
TimToady my pinky is starting to ache... 04:22
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
TimToady: ^^
:)
TimToady: kinesis-ergo.com/contoured.htm 04:24
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:25
Anyhow, I've got no interest in the company, except that I'm now addicted to their keyboards. :) 04:26
(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
Sorry for going so far off-topic!
TimToady I have an arthritic thumb as well... 04:29
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:31
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:32
s/Between than/Between that/ 04:33
jdv79 i use the freestyle. very nice.
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:35
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:37
jdv79 at home (at the moment) i'm using one of these - forget the name - www.dansdata.com/images/clicky2/spa...er1280.jpg 04:39
but the freestyle for serious work helps me a lot with "pre-rsi" (says the doc). to each his own. 04:40
uvtc jdv79: cool. Glad to hear it works for you. 04:41
04:41 thou joined
uvtc Oh, nice: `comb` is like `split`, except you specify what you *want*. :) 04:49
o/ 04:53
diakopter bye :)
04:53 uvtc left, preflex_ joined, preflex left 04:54 preflex_ is now known as preflex 05:01 thou left 05:17 xinming_ joined 05:20 xinming left 05:27 quester joined 05:35 SamuraiJack left
moritz \o 05:39
diakopter good morning moritz
05:51 autark left
sorear o/ 06:00
06:18 gfldex left 06:20 gfldex joined 06:30 alec__ joined 06:32 kaleem joined 06:43 gfldex left 06:44 gfldex joined 06:51 xinming_ left 06:52 xinming joined 07:03 b1rkh0ff left 07:20 b1rkh0ff joined 07:24 quester left 07:25 alec__ left 07:26 wk joined 07:32 wk left 07:36 alec__ joined 07:43 wk joined
nwc10 oops, I seem to have launched a denial-of-service attack on jnthn 07:47
07:49 SamuraiJack joined 08:02 gfldex left 08:04 gfldex joined 08:11 proller left
cotto How does the break between nqp master and parrot master exhibit itself? 08:12
08:14 not_gerd joined
not_gerd cotto: irclog.perlgeek.de/perl6/2013-02-01#i_6401627 and github.com/perl6/nqp/issues/74 08:15
cotto: however, I just built latest Parrot/NQP/Rakudo without issue
no idea if the underlying issue got fixed or just hidden again
cotto not_gerd: much obliged 08:16
I like build bugs. They're hard to miss. 08:17
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:21 not_gerd left 08:22 not_gerd joined
cotto not_gerd: an energetic developer could always debug using known-bad versions of nqp and parrot 08:22
I'm glad that it doesn't appear to be an immediate problem. 08:23
08:24 PZt left
moritz fwiw I think I was able to compile NQP again after a very thorough clean on parrot/master 08:25
though it might have been on a different machine (but both 64bit) 08:26
08:46 infosophy left
not_gerd moritz: at most, it could have been interference from an installed Parrot 08:49
on cygwin, it's normally enought to rename libparrot.dll.a
I would be surprised if I had not tried that, but I can of course no longer be 100% certain 08:50
I always could try it again, but at best, I'll look like a fool, so nevermind ;)
08:50 PZt joined 08:51 hoelzro|away is now known as hoelzro, domidumont joined
moritz not_gerd: well, I think there were some NQP changes that the makefile didn't quite cope with 08:51
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:52
08:57 kresike joined
kresike hello all you happy perl6 people 08:57
08:58 fhelmberger joined 09:04 fgomez left 09:13 fgomez joined 09:20 robinsmidsrod left
jnthn morning, #perl6 09:24
09:25 dakkar joined
moritz \o * 09:27
09:28 robinsmidsrod joined 09:33 dakkar_ joined, dakkar_ left 09:39 not_gerd left
dalek kudo/nom: 5a12919 | jnthn++ | tools/build/NQP_REVISION:
Bump to an NQP with a build fix.
09:46
09:57 daxim joined, lizmat left 09:59 Liz_ joined
masak good forenoon, #perl6 10:20
jnthn o/ masak
daxim nethackwiki.com/mediawiki/index.php...h=forelimb 10:24
masak something tells me lue would really enjoy nethack... :) 10:26
dalek p: c83b4b5 | jnthn++ | src/QRegex/NFA.nqp:
s/our/my/ in a place things needn't be our.
10:32
p: d89a658 | jnthn++ | src/QAST/Compiler.nqp:
Toss dead code-path.
p: a746f77 | jnthn++ | src/QRegex/Cursor.nqp:
Performance/portability tweaks to Cursor.
10:35 ObseLeTe joined
arnsholt masak: I hate and love nethack, all at once =) 10:44
masak arnsholt: I have a deep respect for nethack... but I've always been more of an angband man myself. 10:46
arnsholt: sometimes I accidentally spend *days* on angband, not noticing the time pass. 10:47
felher <3 nethack :)
masak: same here with nethack. :)
Hm, angband and nethack do seem to be quite alike, aren't they? 10:53
arnsholt I've never tried angband, actually
masak highly recommended. 10:56
oh, oh! I have an idea for a new loop control word. like 'last', 'next', and 'redo'.
I'm not proposing we put it into the language. 10:57
maybe this can be added through macros, or something.
I call it 'slip'. the semantics is "stay in this place of the code, but advance to the next iteration".
nwc10 would be useful to determine *if* it can be implemented as macros 10:58
and if not, what stops it being so
masak yeah. I don't immediately see it.
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 :)
masak so, for example, I don't see a problem handling it with macros if I also did 'slipfor', 'slipwhile', etc. 11:00
felher: yes. inspired by perlhack I did some scraping yesterday using Perl 5.
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:01
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:02
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
also, it reads *really* well.
felher uhhh, this is pretty cool. 11:04
masak it's a bit like a CPS transform in the language.
(folding several iterations/states into "one") 11:06
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:07
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
masak: to match the much nicer slip-code
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:10
yeah, so 'slip' is in a sense *safer*, too. 11:11
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.
felher masak++ #yeah, nice idea. 11:13
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:14
fun challenge for someone: find RC examples that could be rewritten to take advantage of 'slip' :) 11:15
felher -> lunch
11:19 ObseLeTe left
dalek p-jvm-prep: 41c2723 | jnthn++ | nqp-src/NQPCORE.setting:
Add a couple more NQPMu methods.
11:20
p-jvm-prep: 17464f8 | jnthn++ | / (2 files):
Add/build a somewhat commented out QRegex.nqp.

The uncommented bits all cross-compile; the commented out bits need things to be implemented.
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.
dalek p: 749768c | jnthn++ | src/ (2 files):
Fix nqp::isinvokable to know invocation spec.
masak also, 'slip' has nice connections to 'take'. (in that it relinquishes control while also remembering its own state/PC) 11:24
masak 's eyes glaze over thinking about 'slip LABEL' 11:25
man, I have to learn more about the CPS transform. 11:30
11:37 Timbus left 11:38 Timbus joined
nwc10 jnthn: #3All tests successful. on "my" machine. 11:39
jnthn nwc10: nice :)
moritz masak: 'slip' feels a bit like a goto into an inner scope
masak: which Perl 5 deprecates, and Perl 6 explicitly doesn't support, IIRC 11:40
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 }
masak: no
masak hm, @lines.shift works in a 'for' loop, I guess, but not in a 'while' loop.
moritz erm, why not? 11:42
I'd think it's the other way round :-)
masak hm, yes :)
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
moritz: the nice thing about it is how clean and general it is.
again, I am *not* proposing we stuff this into the spec.
moritz: section 2.2 of research.microsoft.com/en-us/um/peo...s5full.pdf is a nice example of the technique. 11:45
moritz masak: now I wonder how CPS transform and ENTER/LEAVE phasers interact :-) 11:46
masak heh. 11:47
might be ENTER/LEAVE would have to attach to a "logical" block, one that's represented in source, but not in IL.
dalek p: 28961ee | jnthn++ | src/NQP/World.pm:
Update a comment.
12:11
p: da26f1c | jnthn++ | src/NQP/World.pm:
Replace one use of nqp_get_package_through_who.

This op really needs to go away.
p: cf72dc1 | jnthn++ | src/NQP/Actions.pm:
Eliminate final nqp_get_package_through_who use.

This also means that Foo::Bar can now work on nqp-jvm.
p-jvm-prep: a7fe411 | jnthn++ | t/nqp/43-package-var.t:
With latest NQP, we pass 43-package-var.t.
p-jvm-prep: 0ddb900 | jnthn++ | nqp-src/Q (2 files):
Uncomment Foo::Bar uses in QASTNodes and QRegex.

Now we support it, we can compile quite a few more bits of both of these.
12:13 ObseLeTe joined
masak $ nom -p -e '$_ = "foo"' 12:18
(write anything on the first line)
^D
Cannot assign to a readonly variable or a value in block at -e:1 12:19
may I please consider this a rakudobug? :)
12:21 leprevost joined
jnthn Hm, maybe a bug in -p handling? 12:21
12:21 leprevost left
moritz you can, and it's already submitted, afaict 12:21
12:22 leprevost joined, leprevost left, leprevost joined
moritz the problem is that I couldn't figure out how to make the $_ rw in the wrapper when fixing -n and -p 12:22
masak maybe it should be 'is copy'? 12:24
I mean, it's not like there's some outer scope to write back to.
moritz of course there is
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 kaleem left
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.
moritz well, then we need to introduce a container somehwere inbetween
masak yes, we actually do this with scopes, that's right.
so it should be 'is rw'.
moritz it must probably be something like for lines() { my $var = $_; (<-> $_ { user code here } ).($var) } 12:27
masak for lines() { (<-> $_ { user code here } ).(my $ = $_) } 12:31
then it doesn't leave a trace in the lexpad.
moritz and how do you print the modified $_ ? 12:34
masak hm. :) didn't think of that :) 12:37
there should be a way to declare "local but not lexical" variables, which are not seen in inner scopes... 12:38
the setting could probably use that too.
my $-local = $_; 12:39
12:42 leprevost left
nwc10 jnthn: *still* works on "my" machine - try harder :-) 12:47
12:49 skids left 12:57 ObseLeTe left
dalek p-jvm-prep: ac9068a | jnthn++ | / (2 files):
Implement nqp::iscclass and associated constants.

Those who dream of Unicode character properties at night, feel free to review this. :-)
13:08
p-jvm-prep: ea496e2 | jnthn++ | nqp-src/QRegex.nqp:
Uncomment some more of QRegex.
nwc10 jnthn: *Still* works on "my" machine 13:14
jnthn Gee, I really need to work on that :P 13:15
13:16 leprevost joined
pmichaud nwc10: Get masak++ to try it on "your" machine, that'll probably break it. :-P 13:17
It's just a matter of having the appropriate sledgehammer.
anyone besides me planning to attend yapc::na in austin? 13:18
the organizers are really hoping to get some more Perl 6 related talks.
jnthn pmichaud: Decent chance I'll be there.
Is submission deadline soon? 13:19
Or they just want some clue about who's coming?
pmichaud jnthn: looking.
I think more the latter. 13:20
Looks like 27 talks submitted thus far.
13:21 am0c left 13:22 Spandox joined
nwc10 good am, Pm 13:22
pmichaud good morning, #perl6
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
perl 5 it can do it in less than a second
13:27 Spandox left
jnthn my @a = ^200000; my @b = @a.map({ 2 * $_ }); say now - INIT now # 3.78s here 13:28
masak <3 INIT now
jnthn So I'm guessing there's a little more going on to make it that slow...
oh, darn, I was too slow 13:29
pmichaud I can't seem to find any sort of talk deadline, no. Maybe I'll suggest that there be one. :-) 13:34
nwc10 is curious how far JVM will be by the German Perl Workshop 13:35
I guess and "how many more holes Oracle has admitted to" 13:36
jnthn nwc10: When is it?
13:36 kaleem joined
moritz around March 16, iirc 13:36
jnthn hah, that's over a month away
nwc10 10:30 on 2013/03/13 to 15:25 on 2013/03/15 -- act.yapc.eu/gpw2013/schedule 13:37
Given current progress, the date range is probably important. 13:38
pmichaud yes
nwc10 it's nice to have "this week" back in Perl 6 13:39
but additive, rather than mutative
13:40 geekosaur left 13:41 geekosaur joined
pmichaud ooooh, LEGOWORLD opens tomorrow in Copenhagen. Wish I could go.... :-) 13:42
jnthn Nordic Perl Workshop will be in CPH this year, afaik ;) 13:43
pmichaud holy cow
roundtrip flight to copenhagen is only $900 USD 13:44
nwc10 pmichaud: are you sure? In Europe these days it might be a horse :-)
(this joke may be old, but it's not over yet)
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.
you didn't say "tomorrow"
that really isn't bad
pmichaud and that's the fare on multiple airlines
13:46 imarcusthis left
pmichaud heh. $920 round-trip for a flight leaving today. :) 13:47
afk for a bit
masak those two lines in succession... :P
jnthn :D
13:48 raiph left, raiph__ left, raiph_ left
jnthn nwc10: Guess that's what aiming for a stable meat market produced...:) 13:48
jnthn is still amused about the bologneighs :) 13:49
nwc10 I did like that one 13:50
[Coke] (yapc:na) - I just priced out tickets. the difference between refundable and non is crazy. 13:52
r: say 528/191
p6eval rakudo 5a1291: OUTPUT«2.764398␤»
[Coke] grumbles at the lack of university dorm rates. 13:54
dalek p-jvm-prep: 5b2a14a | jnthn++ | src/org/perl6/nqp/sixmodel/ (4 files):
Stub in NFA representation.
13:56
p-jvm-prep: 6671c23 | jnthn++ | / (2 files):
Stub in NFA related opcodes.

Will implement them once we get to needing them.
p-jvm-prep: 006688b | jnthn++ | nqp-src/QRegex.nqp:
More uncommenting.
[Coke] pmichaud: prety sure jnthn has expressed interest.
13:57 PacoAir joined
nwc10 jnthn: All tests successful. 14:05
pmichaud [Coke]: 13:18 <jnthn> pmichaud: Decent chance I'll be there.
so yes. :-)
jnthn Yeah. Flights are uncheap but not terrible.
Seems I have a choice of routes/airlines/airports.
14:08 bluescreen10 joined 14:11 kivutar joined, uvtc joined 14:17 salv01 joined
PerlJam good morning #perl6 14:19
14:19 Liz_ left 14:21 Psyche^ joined
felher o/ PerlJam 14:21
pmichaud good morning, PerlJam 14:22
14:25 Patterner left, Psyche^ is now known as Patterner
[Coke] jnthn: It's a trap, they all suck. 14:27
I am a very tentative yes. 14:28
14:35 MAAJU1C joined, raiph_ joined, AAB3N03 joined 14:39 skids joined 14:41 Targen left, awwaiid joined 14:42 jaldhar left, sqirrel__ left, bluescreen100 joined 14:46 bluescreen10 left 14:49 jaldhar joined
masak rn: sub circumfix:<begin end>($contents) { say "$contents!" }; begin "OH HAI" end 14:56
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/1gjjKHnzrL:1␤------> s) { say "$contents!" }; begin "OH HAI" ⏏end␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ stat…
..niecza v24-23-g0520c7c: OUTPUT«OH HAI!␤»
masak submits rakudobug
pmichaud does circumfix: even work in Rakudo? 14:57
masak dunno.
[Coke] rn:sub circumfix:<||>($contents){ say ~$contents}; |3|;
rn: sub circumfix:<||>($contents){ say ~$contents}; |3|; 14:58
masak [Coke]: space after colon.
p6eval niecza v24-23-g0520c7c: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/SjUKNDLM3V line 1:␤------> ix:<||>($contents){ say ~$contents}; |3|⏏;␤␤Parse failed␤␤»
..rakudo 5a1291: OUTPUT«===SORRY!===␤Unable to find starter and stopper from '||'␤»
[Coke] rn: sub circumfix:<| |>($contents){ say ~$contents}; |3|;
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤Bogus statement␤at /tmp/c_anNffbAH:1␤------> x:<| |>($contents){ say ~$contents}; |3|⏏;␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ prefix or term␤ prefix o…
..niecza v24-23-g0520c7c: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/tCF8WYl1KS line 1:␤------> x:<| |>($contents){ say ~$contents}; |3|⏏;␤␤Parse failed␤␤»
15:00 benabik joined
masak pmichaud: if it doesn't work, then it feels sensible that Rakudo should emit a "circumfix not implemented" error. 15:00
pmichaud: so either way, sump'n's up. 15:01
moritz rn: sub circumfix:<::: !!!>($x) { say $x }; ::: 42 !!!
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤Confused␤at /tmp/KDAJbdBK_q:1␤------> circumfix:<::: !!!>($x) { say $x }; :::⏏ 42 !!!␤ expecting any of:␤ prefix or term␤ prefix or meta-prefix␤ colon pair␤»
..niecza v24-23-g0520c7c: OUTPUT«===SORRY!===␤␤Ternary !! seems to be missing its ?? at /tmp/34wENHZmPP line 1:␤------> mfix:<::: !!!>($x) { say $x }; ::: 42 !!⏏!␤␤Parse failed␤␤»
moritz rn: sub circumfix:<::: :::>($x) { say $x }; ::: 42 ::: 15:02
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤Confused␤at /tmp/cm4V0ssGMk:1␤------> circumfix:<::: :::>($x) { say $x }; :::⏏ 42 :::␤ expecting any of:␤ prefix or term␤ prefix or meta-prefix␤ colon pair␤»
..niecza v24-23-g0520c7c: OUTPUT«42␤»
15:02 stopbit joined 15:14 SunilJoshi joined 15:18 kaleem left 15:25 robinsmidsrod left 15:28 robinsmidsrod joined
arnsholt Ooooooh... 15:28
arnsholt gets an idea for extracting information from C
15:32 alester joined
dalek p-jvm-prep: 83511d5 | jnthn++ | docs/ROADMAP:
ROADMAP update.
15:44
p-jvm-prep: abe1de2 | jnthn++ | / (3 files):
Add ops and REPR funcs for natively typed arrays.
p-jvm-prep: 4c589a7 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/VMArray (4 files):
Teach VMArray about int/num/str storage.

There may be more beautiful solutions, but this one will should Just Work.
p-jvm-prep: 4defaa5 | jnthn++ | / (4 files):
Create BOOTIntArray etc.; implement list_i/n/s.

nqp::list_i() was the pressing one for the regex engine, but did the rest while I was at it.
p-jvm-prep: 6bbebf9 | jnthn++ | nqp-src/QRegex.nqp:
Uncomment various key parts of Cursor.
arnsholt Oooh, regexen
15:45 robinsmidsrod left
TimToady mostly ignores the blognays 15:47
masak TimToady++
15:48 robinsmidsrod joined
uvtc "blognays"? 15:48
TimToady pun on bologneighs 15:49
skids It's a frothy combination of bolgna and mayonaise
hoelzro bolognese?
TimToady only made by a sect of hermitic horses 15:50
masak .oO( a hermetically sealed sect of hermitic horses )
15:51 am0c joined
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
python pate 15:52
masak those horses are all hippocrates, the lot of them.
TimToady Help, is there a doctor in the horse?!? 15:53
masak stand back. I can make the patient stable again.
masak .oO( 'cus I swore the Hippocratic oats ) 15:54
TimToady trots off to the shower & 15:55
15:56 leprevost left
masak .oO( with TimToady gone, no more jockeying around ) 15:57
uvtc Sorry, I was lost at "bologneighs". Perhaps a pun in a pun? 15:59
PerlJam uvtc: if you're lost around here, that's "normal" :) 16:00
nwc10 uvtc: it relates to this: www.bbc.co.uk/news/world-europe-21437317
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.
masak it's like, make up your minds, consumers!
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
actually, I think I mean /that/ "little"
masak ;)
uvtc nwc10: Yeah, I'm a bit ignorant of the rules. I just hope the animals were treated humanely.
nwc10 well, the horsemeat seems to have come from Romania 16:04
masak ...a country well-known for their humane treatment of horses?
nwc10 well, within the EU, but I have no idea what their standards are like locally. 16:05
the scandal is far more about "things not being labelled correctly, so what else is mislabled?" than "this particular meat isn't safe"
masak aye.
nwc10 in *this* case, it's believed that it's all safe to eat
but, who do you trust
(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 )
and (local butchers)++
16:07 kaare_ joined 16:09 xenoterracide left
nwc10 jnthn: 6bbebf9b3a9d0ad85b2a494f731a3ea739b33903 works on "my" machine 16:13
16:13 xenoterracide joined 16:14 sftp left
skids what was that skit comedy show with the local butcher selling some taboo mystery meat -- "league of gentlemen"? 16:15
16:20 am0c left
jnthn pmichaud: gist.github.com/jnthn/4945749 # Cursor, cross-compiled to the JVM, seems basically functional. \o/ 16:21
dalek p-jvm-prep: e9de357 | jnthn++ | nqp-src/QRegex.nqp:
Uncomment reduce decl, but not body yet.
16:22
p-jvm-prep: 7bc9337 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix code-gen for if/unless (yes, really).

I'm amazed so much worked without hitting this...
pmichaud jnthn: \o/
wow
that's cool
benabik jnthn: Insufficent testing for if/unless?
nwc10 $ diff -u src/org/perl6/nqp/sixmodel/reprs/VMArrayInstance_[is].java | diffstat VMArrayInstance_s.java | 50 ++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-)
(and naughty terminaly for wrapping that) 16:23
but sigh, I see why some people end up using Perl to generate their Java
jnthn benabik: Apparently... :)
pmichaud: Even better: it's pretty much exactly the same as the Cursor implementation atop of Parrot. 16:24
pmichaud: Only difference being a few things commented out and that it doesn't transcode to fixed width.
pmichaud well, we could make transcoding a no-op on some platforms
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?
and emoji such as piles of poo? (and beer)
jnthn nwc10: I'm not going to work too hard on getting us doing stuff outside of the BMP right on the JVM.
nwc10 wise man. 16:26
jnthn nwc10: Because in the long run it all needs to go away in favor of NFG.
nwc10 keep beer real.
aye
NFG++
NFG for the win
jnthn Where long run is perhaps medium run :)
nwc10 I hope. I really hope. That NFG ends up being a killer Perl 6 feature.
jnthn But still, not until after I've got a good number of other things working. :)
kresike bye folks
16:26 kresike left
masak nwc10: it feels good to have discovered NFG already. 16:27
other languages are likely to need something like that if they are serious about Unicode.
nwc10 "I tried to render stackoverflow.com/questions/1732348...ained-tags but it went all O(n**2) on me" 16:28
masak :P
16:28 kthakore left
nwc10 jnthn: *still* works on my machine. OK, still passes all the tests 16:29
benabik Are all p6 strings intended to be NFG? Is there thought about how that interacts with pathnames? 16:32
FS -> NFG -> FS isn't guaranteed to work. 16:33
jnthn 128,987 QRegexJVM.class
340,656 QRegexJVM.pbc
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:36
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 alec__ left
benabik nwc10: I'm fairly certain that java bytecode is based on larger than 8bit values. 16:37
jnthn nwc10: Something like that.
The ops are 8 bits. Arguments to the ops...it depends.
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
benabik Java has ≤ 256 ops? I wrote a compiler to the JVM and never noticed that. 16:39
Felt like a lot more than that.
16:42 jeffreykegler joined
jnthn nwc10: EXPR, and kboga++ already supplied patches, though I will need to tweak them a bit to use native types etc. 16:44
nwc10: Won't block on it until after I've ported the regex engine.
er, the rest of the... :)
At this point I'm ready to dig into code-gen for QAST::Regex, I think. 16:45
benabik: Full list at en.wikipedia.org/wiki/Java_bytecode...n_listings
16:47 hoelzro is now known as hoelzro|away
nwc10 wikipedia-- # why isn't there a "Lists" category? 16:49
masak ...because it wouldn't be a very useful category? :) 16:50
16:50 thou joined
masak there's also not a "tables" category, or an "images" category. 16:50
daxim en.wikipedia.org/wiki/List_of_lists 16:51
skids What, no category category? 16:52
masak skids: en.wikipedia.org/wiki/Category:Category_theory ;) 16:55
daxim en.wikipedia.org/w/index.php?title=...;limit=500
16:55 geekosaur left
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
or something like that :)
16:55 geekosaur joined
benabik jnthn: I have the JVM spec bookmarked. :-) 16:58
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.
geekosaur russell's paradox?
masak geekosaur: no, I've made peace with Russell's paradox.
benabik To answer my question about what doesn't get composed in NFC: unicode.org/reports/tr15/#Primary_E...List_Table 16:59
masak oh, oh! has anyone every drawn any parallel between Russell's paradox and the Observer Effect in physics? 17:01
benabik Huh. Russell's paradox is the halting problem. Interesting. 17:02
masak yes, that feels intuitively right. 17:03
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
Russell's paradox.
masak right.
the counterargument that fells the halting problem *is* Russell's paradox. 17:06
we can put equals signs with Cantor's diagonalization while we're at it.
they all do pretty much the same thing.
uvtc What are "NFG" and "BMP"? 17:08
masak uvtc: the latter is the Basic Multilingual Plane.
uvtc: it's where most Unicode characters (so far) hang out. 17:09
uvtc Ah, right. :)
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.
masak ah. benabik++
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>"
uvtc [Coke]: plus dingbats. But that's *it*! 17:12
daxim masak, s/most/in common use/
BMP 43561, not-BMP 55462
masak daxim: *nod* 17:13
jnthn nqp: say("\$\x{a2}")
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)␤»
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:14
benabik Mi devus re-lerni esperanton 17:16
17:16 SunilJoshi left, SunilJoshi joined
benabik Sorry: lerni esperanton denove 17:17
masak ambaŭ taŭgas laŭ mi.
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.
masak no, the 're-' prefix is there, and it works the same as in English :)
uvtc: something weird with the accusative near the end of your sentence :) 17:19
uvtc was waiting for the reply "Neniu volas mani?"
masak uvtc: did you mean to say "No more Esperanto, I think"?
uvtc "No more esperanto, I mean it!" ... "Anybody want a peanut?" 17:20
masak :P
daxim aŭgh!
masak "Ne plu uzu Esperanton, mi petas!" -- "Arakidon por vi mi metas." 17:21
I don't know what GT is on when it thinks "peanut" translates to "mani"... :)
uvtc masak: Oh, do you know (some) esperanto? I was just using google translate. :) 17:22
masak uvtc: yeah, it's my third language.
I speak it practically daily with friends.
benabik Arakidon?
uvtc masak: oh, wow. Neat. 17:23
masak benabik: "peanut", in the accusative (-n)
uvtc: one of my friends is a *native* speaker. :) 17:24
benabik A native speaker of Esperanto?
masak yes!
17:24 FROGGS joined
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.
FROGGS hi there
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
arnsholt If you start teaching it to your kids, the regularities are going to get screwed up within a generation or two =)
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.
FROGGS TimToady: right, so I'm on the right track
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.
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:29 jeffreykegler left
arnsholt Yeah, there's that as well 17:29
benabik How many english kids say "I getted a cookie"
arnsholt But contractions and simplifications (FSVO simple) have a way of creeping into all mother tongues
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.
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 =)
uvtc masak: .sv? That's El Salvador... 17:31
arnsholt It's Swedish =)
The ISO language codes are subtly different from the country codes
uvtc hehehe :) Thanks, arnsholt . 17:32
masak yes, languages != countries ;)
daxim also, scripts != languages (Unicode) 17:33
masak arnsholt: gotta löve the ablaut.
arnsholt Ah, but it's umlaut! 17:34
Ablaut is different and older, but looks exactly the same =D
masak I thought "umlaut" was a graphical decoration, whereas "ablaut" was when words changed depending on their form.
like gast/gäste. 17:35
17:35 jeffreykegler joined
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/
arnsholt: oh!
well, that explains it.
arnsholt It's also the name of the phenomenon
masak It's älså the näjm of the phönomenön.
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:36
(Also, gast- is cognate with the Latin hostis, which meant both stranger and enemy. Thus English hostile but also hostel) 17:37
And I guess that's enough historical linguistics for today =) 17:41
masak arnsholt++ # :) 17:43
17:48 fgomez left
geekosaur .oO { "Actually, it means 'neighbor.' Which tells you something." } 17:48
FROGGS .oO { "Actually, it means 'Nachbar.' Which tells you something." } 17:49
17:50 dakkar left
masak .oO( bologneighbor ) 17:50
17:50 Chillance joined
FROGGS yammi 17:51
17:52 uvtc left 17:57 ObseLeTe joined 17:58 jaldhar left, sftp joined 18:00 kaleem joined 18:02 FROGGS[mobile] joined, FROGGS left
jnthn break, bbl & 18:04
18:04 daxim left 18:08 AndChat|356841 joined, awwaiid left 18:11 FROGGS[mobile] left, sivoais left, SamuraiJack left 18:12 sivoais joined 18:13 jaldhar joined 18:19 SunilJoshi left 18:21 jaldhar left
arnsholt Is it possible to special-case certain specialisations of a parametric type? 18:26
18:26 SunilJoshi joined
arnsholt For example so that one specialisation is used for Buf[int8] and another for Buf[SomeClass]? 18:27
A very special specialisation =)
18:35 kaleem left, zby_home_ joined 18:37 SunilJoshi left
arnsholt Hmm. Or maybe I don't have to. Buf isn't actually parametrised, so I could just replace it 18:38
18:39 rindolf joined
rindolf Hi all. 18:39
TimToady: hi.
18:43 FROGGS[mobile] joined 18:44 Liz joined
moritz arnsholt: Buf is supposed to parameterized, fwiw 18:44
18:44 Liz is now known as Guest74378
arnsholt Yeah, that's why I wondered about the special specialisations 18:44
But since the current implementation isn't, I could ignore that wrinkle for the time being =)
benabik Specializations are useful. 18:45
moritz specializations are hard. 18:46
18:46 Guest74378 is now known as lizmat, census joined
census I've been banned again from #perl !! 18:47
Go me.
18:47 AndChat|356841 left
census I think because I use windows. 18:47
I changed my username to appease them.
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/
but yes
18:48 rDo_ joined 18:50 forestial joined, forestial left
masak census: so, you're formerly known as perlhelp, yes? 18:52
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 ?
census i was before
i don't know
i thought i was supposed to chagne my name
i'll go back to perlhelp
i don't care what my name is
i don't know why i get banned because it comes without warning 18:54
it just happens
no explanation afterwards either
i thought i was asking reasonable q's about using perl in windows
i was told windowws is terrible
so is the version of perl i use 18:55
and aperion went wild
PerlJam census: People have long memories.
huf masak: want logs? it's not particularly pretty but i think it was avoidable.
on perlhelp's part 18:56
census huf: what was the problem?
masak huf: I'm curious; if you can gist something, I'd be grateful.
census why won't anybody explain to me what was the problem today?
huf census: you dont listen. that's the main problem.
census the advice was to use a new version.
I didn't listen to that?
so i got banned
i said i feel comfortable on the version i use
huf census: and #perl is a _lot_ more abrupt and a _lot_ less forgiving than this channel :)
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?
i said i am nervous about changing versions?
au census: hi. on a completely unrelated topic, did you know that wkhtmltopdf ( 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?
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
TimToady I suspect it's more because you go on and on about it
census frankly, i think that was a terrible solution
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
huf but i'll stop. this isnt the channel for it.
census i did not take it seriously because it was a terrible solution
no channel is
BAN PERLHELP AND NEVER TELL HIM WHY
Because I do not want to switch versions of perl
huf i just told you.
census Yes, because I don't want to switch versions of perl!!
huf census: so solve your own problems.
PerlJam census: you quickly got us to "solve your own problems" space and didn't reach escape velocity again.
census I did not criticize anybody for it until I got banned
huf census: nobody cares. 18:59
census PerlJam: look.
It is awful being banned
I write perl code now on my own
I don't need the perl room
I'm more upset about being banned. That is all
The way in which I am banned is inhumane.
TimToady so you inflict it on us? 19:00
I'm beginning to suspect that it is more humane than inhumane...
masak :P
census: if you don't like being banned from #perl, I suggest you find ways to get along with the people over there.
census: from *your own description* of the discussion, I'm not all that surprised you got banned.
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.
census why aren't you surprised? 19:02
i didn't give an attiude.
TimToady sure you did
census someone asked why i use active perl. I said it is all i am comfortable
NOW I have an attitude
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.
census I developed an aftitude AFTER I got banned with now warning
TimToady why are you have the attitude at US?
19:02 salv01 left
TimToady *having 19:02
census That's terrible advice
masak it's not advice.
census I mean the advice they gave me was terrrible
It was 1 person's advice 19:03
I thought there might be other people with advice
THe room has nearly 700 people
1 person said get a new version.
I said no, and got banned.
huf masak: sprunge.us/gViC, but it's noisy and i cant be arsed to clean it up better.
census I might have to change all of my code if I get a new version
masak huf: thanks.
PerlJam census: then again, you might now.
er ,not
census Please do read it. I was trashed for using windows nonstop
masak census: Perl 5 takes backwards compat pretty seriously.
huf census: and you also got answers. 19:04
census huf: I got 1 answer to change versions
TimToady census: you don't want help, do you? You just want to yell. At anyone.
19:04 jeffreykegler left
census I'm yelling HERE. I did not yell there. 19:04
I thought I was polite.
huf census: btw, what you're doing here right now is quite appalling.
and _certainly_ not polite.
census huf: Yes it is appalling.
I am impolite here right now. I agree
PerlJam census: yelling here isn't helping.
19:04 kivutar left
census I was NOT impolite in #perl 19:04
huf we thought so
census I even said I am ok with the insults in #perl
I was very nice in #perl
TimToady why aren't you nice here? 19:05
census I did not insult the other version of perl
I am so angry about being banned. I am looking for sympathy.
TimToady you won't get it
census Because y'all love aperion?
huf census: grow up and learn to handle yourself and other people better.
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
helping you, yes. thinking for you is ultimately beyond anyone on IRC 19:06
TimToady thinks it's time to kick census here too
census I asked the same question because people wanted to sit around and talk about windows being bad.
I wanted to ask about the module
whatever
huf *sigh*
19:06 census left, fhelmberger left
geekosaur [13 14:00] <apeiron> not when the person demonstrably refuses to think 19:07
^^ that is the bottom line
huf i dont see what liking apeiron has to do with it, i cant stand him :D
but he has ops and i like the channel, so i dont bother him :)
PerlJam So ... how are everyone's Perl 6 projects coming along? :-)
huf :)
masak :) 19:08
19:09 jeffreykegler joined
TimToady a little slow this morning for some reason... 19:09
jnthn back from dinner
PerlJam masak: did you find that document I gave you useful as a starting point to write something about the Parrot/Perl6 relationship? 19:10
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.
masak PerlJam: I like it, yes. thank you.
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?
PerlJam aye. I thought as much.
masak until he arrives, Imma spend some time reviewing p6cc solutions :) 19:13
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:14
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 :)
jnthn arnsholt: Yeah
masak huf: well, people have long memories. he renames himself to 'census', and then the kick message is 'get out, perlhelp'. 19:17
huf: this tells me that this wasn't an isolated thing. he's been bugging them (and been kickbanned) before.
huf oh yes, i agree with that part 19:18
geekosaur yes
masak we are unusually blessed over here from vampires and their ilk.
huf i just try to not wish death on anyone, as a principle :)
geekosaur in fact that was why he poked in here, he bhad been banned from #perl and tries to demand help from us instead
masak when we told census to stop, he left on his own.
huf masak: only for a while, i hope.
err, you know what i mean
masak aye.
PerlJam So ... how are everyone's Perl 6 projects coming along? :-) 19:19
:-)
arnsholt jnthn: Brilliant! In that case I may try to improve Buf a bit =)
Juerd PerlJam: Keep trying :)
masak PerlJam: I wrote a perl6 -p script today. (re)discovered that $_ isn't rw.
PerlJam: I think community matters are on-topic if we believe we can one-up Perl 5 in that area.
jnthn PerlJam: I'm working on the JVM targeting for the regex compiler. It's quite some work :P 19:20
colomon jnthn++
jnthn digs back into his day's Perl 6 project :)
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
TimToady (people who solve their own problems, and other people's too)++
otoh some folks are never interested in finding out what the real problem is... 19:22
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?
masak au++ 19:26
jnthn nwc10: Well, yes, if you want to discover the issue in a simple test file :) 19:27
nwc10: ohbtw, what's the latest on the patches you sent in for exists/delete stuff? 19:29
nwc10: Waiting on myself/Pm to look at latest?
nwc10 yes, sort of 19:30
19:30 rDo_ left, benabik left
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
p6eval rakudo 5a1291: OUTPUT«Array.new("A", "B", "C")␤»
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
I *thought* that it was useful to take them out, as I can see a chunk of new Java code today to implement existspos
or for Pm not to say that :-) 19:32
jnthn nwc10: Yeah, but that new code was just copy paste L :)
19:32 jeffreykegler left
jnthn s/L// 19:32
moritz masak: heh, you were right about -n/-p code having $_ as 'is copy'
masak moritz: oh, I see.
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
moritz masak: because for -p, $_ is printed on the inside
masak moritz: that makes me feel much less confused. :) 19:33
19:33 jeffreykegler joined
Juerd "Printed on the inside" sounds funny. 19:33
moritz Juerd: that's ok :-)
Juerd Doesn't that interfere with the eskimo, though? :)
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
Juerd: yes, it does! :D
moritz so, now the question is, why doesn't the $param<is_copy> := 1 work?
masak digs up the appropriate blog post
moritz: maybe that's not how it's spelled?
Juerd Darn. Oh well, END { ... } probably works just as well.
masak Juerd: except you probably want LAST { ... }
Juerd On my oneliner I want whatever is less typing :P 19:35
masak Juerd: strangelyconsistent.org/blog/dash-n-and-dash-p
Juerd Thank you
masak the eskimo operator gets an honorable mention.
Juerd Least you could do for the dying species :D
masak yah. 19:37
Juerd Lovely article 19:38
masak thank you. 19:39
it has two follow-up articles, because I ended up understanding settings in the process. 19:40
Juerd That's the risk you take... 19:41
masak :) 19:42
moritz oh hrm 19:43
Perl6::World.create_parameter simply sets the flags for an is_copy parameter 19:44
19:45 census joined
census Hi I'm sorry I was rude before 19:45
I calmed down a bit
moritz but Parameter.set_copy also does a .set_rw on the container descriptor
diakopter census: all is forgiven :)
census Thank you.
It does not feel good to get banned :(
I'm sorry for lashing out 19:46
It is not the fault of people here (unless maybe they are also in perl5)
moritz so the code path through the trait does more than the codepath through World.create_parameter
masak moritz: oh!
diakopter census: I suggest solving the problem of not being able to connect to the #perl-help channel first
moritz which might be the reason that the %param<is_copy> := 1; doesn't work
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...
moritz jnthn: seems like
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?
erm, hurm
jnthn iirc, create_parameter gives you back a Paramter
And you can then $*W.apply_trait on that, or something along those lines.
diakopter census: go here www.irc.lc/magnet/perl-help 19:50
and be careful to be non-huffy and non-snippy 19:51
moritz jnthn: I'll try that route
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
au census: feel free to take our work in progress, gist.github.com/anonymous/4947480 , to the perl-help channel diakopter mentioned above and ask for improvements/feedback
...and I'm off to sleep for real \o &
moritz good night
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
census thak you for that
But
masak :(
census I have LEARNED so much perl. 19:54
diakopter heh heh. you have much more to go
[Coke] jnthn++ for doing all the jvm work!
diakopter it is quite depp
deep
census Those people do not understand because they have not seen the script I wrote!
There probably things in it that many people here do not know.
diakopter hrm
masak census: "the bigger the island of knowledge, the longer the shore of wonder" ;)
diakopter this is a pretty erudite group
census Yes
I am not trying to brag
I don't mean it like that
I mean I did some highly specialized routines
I spent 9 days nonstop 19:55
little sleep
But I have some basic gaps
masak census: and when you say "I know a whole lot, you know", that comes across as en.wikipedia.org/wiki/Dunning%E2%8...ger_effect
census Ok. I mean I know a whole lot. But there is a whole lot I don't know.
nwc10 jnthn: I don't know if this *matters*, but right now, try this: 19:56
nqp nqp-jvm-cc.nqp -e 'for 1 -> $i { unless $i {nqp::say("T");}; {nqp::say("F");}}'
diakopter census: would you try the link I sent above?
nwc10 and then run it on regular NQP
census #perl treats me like I know zero
19:56 jaldhar joined
nwc10 is the JVM *prototype* supposed to produce LTA errors? :-) 19:56
it's qutie splattacular.
masak census: well, you're not on #perl to have them treat you like a celebrity, I suppose. 19:57
census: you're on there to get help.
which has more to do with lack of knowledge than with knowledge.
census Yes I know that 19:58
I know very little
But I don't know zero
I know a few things
I have learned a lot
I have lost lots of sleeptrying
I still have a lot more to learn
but i have learned a lot
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.
and fixing that will make your dealings with #perl better.
census even if a lot amoutns to a 2nd grade level plus the ability to do an integral somehow if theis were calculus
no, that was not he falling out 19:59
this is the argument we are havijg right now. I don't know why.
i respect their abilities
they know sooo much more than me
they are superir to me
they can treat me however they want
i deserve nothing 20:00
because i know so little
i just want to be efficient
if i am banned, i want to fix the problem
that is how people negotiate
and work things out
masak census: hey, slow down :)
census you have to know what the problem is
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.
census: you need to learn that.
census i don't know their rules
yes i agreee
that is why i ask them what is wrong
and i cannnot understand it 20:02
i still think it is because i said i don't want to use a different version of perl
20:02 fgomez joined
census and i don't think i said anything wrong by saying that 20:02
masak census: again, slow down...
jnthn nwc10: wow :)
huf and yet here you are, making noise.
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
huf _this_ is part of the problem.
census HUF: We are not talking.
diakopter census: that is not nice 20:03
moritz census: stop that
census You are right.
huf census: this is also part of the problem.
census It was not nice.
masak census: you're walking on thin ice here.
moritz census: when you're in a public channel, you#re talking to everybody
huf you will continue to encounter problems on irc as long as you do things like this.
nwc10 jnthn: compared with the real NQP error.
20:03 ChanServ sets mode: +o masak
huf census: concentrate on how to trick people into giving you free help 20:03
census HUF: What is "_this_
That language means nothing to me.
huf census: if common decency doesnt work in your case. 20:04
census: huge amounts of noise, attitude.
census who am i tricking?
huf ah. reading comprehension is required too.
masak moritz: how do I become op again? something with ChanServ, right?
oh, I succeeded. :)
diakopter /msg chanserv op #perl6
masak right. apparently I did le right thing.
moritz masak: I was just wonderigng why you asked *after* succeeding :-)
masak hehe.
alester masak: Sorry I don't have anything yet. Real life intruded.
diakopter census: see, masak is prepared to kick you if you're rude again 20:05
census i appreciate that warning
ok i'm sorry.
that is clear
TimToady census: you are tricking yourself; see www.biblegateway.com/passage/?searc...ersion=NIV
20:05 ChanServ sets mode: -o masak
huf oh, this saying comes from the bible too? heh :) 20:05
masak census: try to speak slower and with more thought.
census: we're not gaining anything from you dominating the channel with your quick utterances. 20:06
census: we pretty much know how you're arguing now, so please don't repeat things you already said. 20:07
census i'm very sorry about that.
huf i <3 the language of the KJV
20:07 jeffreykegler left
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.
TimToady and Tolkiens elves are so...derivative...
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"
alester: and then i am surprised when yet another one of them comes from the bible :)
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?"
diakopter hey, she's the eternal sinless virgin to many
alester www.phrases.org.uk/meanings/bible-p...yings.html
diakopter: Not to me. She was sinless up through "True Blue" and everything after that is crap. 20:09
masak heh.
ingy Look, matey, I know a dead parrot when I see one, and I'm looking at one right now.
masak ingy! \o/ 20:10
ingy: bet you waited *years* to do that one! :D 20:11
pmichaud oh dear, I had forgotten about the dead Parrot jokes.
ingy heya masak!
pmichaud ingy++
masak ingy++
ingy :D
Go Perl6!
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."
atrodo pmichaud: I've been surprised how little dead parrot quotes have been going around
ingy good stuff takes time. great stuff takes even longer.
geekosaur it's actually in the bible twice, there's a phrasing of that in I think proverbs (or maybe lamentations)
masak bet they'll go "wuh!? how'd *THAT* happen?"
20:11 census left
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:13
20:14 jeffreykegler joined
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.
nwc10 and also, as I see it, it's which is the lesser of two evils?
20:15 census joined
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:16
nwc10 a) mandating that the underlying VM somehow provides "sparseness" indicators, so that delete and exists ops exist
or
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.
nwc10 b) doing the sentinal values in the NQP layer
I'm not sure of the best way to check for slowdowns. The code in that RT ticket is roughly unchanged
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:17
20:18 jeffreykegler left
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
pmichaud: As in, a couple rather than one.
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?
pmichaud well 20:21
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
pmichaud (this is reprising the question from p6c about how 'defensive' does platform code need to be) 20:23
20:23 labster joined
TimToady notes that the Nil value should generally be indistinguishable from a missing value, so might be a decent sentinal 20:24
*nel
benabik nel value? ;-)
pmichaud Yes, at a P6 level I agree with using Nil, Mu, or Any 20:25
I'm just wondering what the nqp-vm policy should be.
nwc10 right now, nqp can distinguish between a position in an array where you never assigned anything, and a position where you assigned Mu
TimToady well, Mu and Any aren't supposed to considered to mean "not there" in the sense that Nil is
rjbs thus coining the term "Setinil"
nwc10 (or whatever of those three it is that it returns if you ask for the value at an index that was never assigned)
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 domidumont left
nwc10 er, Any() 20:26
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 sqirrel left
moritz jnthn: I tried this patch here: perlpunks.de/paste/show/511bf758.7ea6.187 20:28
jnthn: and now with -n, I get a Null PMC acces in get_bool
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
*cally
moritz so, for some reason, it doesn't get a container descriptor
swarley rewriting everything to use better style and incorporate serialization
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.
jnthn moritz: That doesn't happen "for free"
TimToady and, in fact, hashes with defaults of the KeyHash persuasion are supposed to remove values matching the default
swarley I think I'm giving up on emacs
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?
moritz jnthn: what does that mean? 20:31
labster: subs are lexical by default
pmichaud TimToady: correct, we're in agreement then on how things should work at that level.
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
moritz labster: so you either need to import/export, or write 'our sub foo'
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:32 zby_home_ left
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
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
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.
(to avoid the extra check overhead) 20:35
jnthn moritz: See code in sub declare_param
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.
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
dalek rl6-roast-data: ac6f59f | coke++ | / (4 files):
today (automated commit)
TimToady in any case, the way to avoid null checks in many arrays is to make them hold natives rather than pointers :)
[Coke] rakudo now failing 218 tests.
moritz jnthn: ah
[Coke] (more than niecza)
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.
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?
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
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?
pmichaud (and an aggregate could specify "null" if that's the best approach)
it'd be pretty easy to get QRPA in Parrot to have that capability.
moritz jnthn: er wait, that's what is used right now
ok, I'll try to improve it 20:39
pmichaud TimToady: +1 (hold natives rather than pointers)
[Coke] labster++
masak labster: cool! 20:40
pmichaud misses writing Perl 6 / NQP code
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.
or just use Bool, I dunno.
jnthn misses pmichaud writing Perl 6 / NQP code ;) 20:42
pmichaud I hope to have more p6-shaped tuits soon.
labster Yeah, that's what I was going for. But maybe making the function names like are_different and are_alike.
masak labster: that sounds even saner.
pmichaud at least I'm able to find some #perl6-shaped ones again. :)
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
masak rn: say Ordering.enums.values 20:43
p6eval niecza v24-23-g0520c7c: OUTPUT«===SORRY!===␤␤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…
..rakudo 5a1291: OUTPUT«===SORRY!===␤Undeclared name:␤ Ordering used at line 1␤␤»
masak hrm.
moritz masak: Order
masak rn: say Order.enums.values
pmichaud rn: say Order.enums.values
p6eval rakudo 5a1291, niecza v24-23-g0520c7c: OUTPUT«-1 0 1␤»
masak rn: say Order.enums.keys
p6eval rakudo 5a1291, niecza v24-23-g0520c7c: OUTPUT«Increase Same Decrease␤»
moritz rn: say Order.enums.perl
p6eval rakudo 5a1291: OUTPUT«("Increase" => -1, "Same" => 0, "Decrease" => 1).hash␤»
..niecza v24-23-g0520c7c: OUTPUT«EnumMap.new(...)␤»
masak advantage Rakudo :) 20:44
pmichaud I'm afk
jnthn o/ 20:45
labster File::Compare returned -1 for error, so it wasn't exactly useful for ordering.
20:46 pupoque joined, alec__ joined
moritz well, you can always fail() on error in Perl 6 :-) 20:47
masak I don't see people do this a lot. 20:48
labster Actually, I am using fail.
moritz \o/ IT WORKS
masak moritz: \o/
labster My code is full of fail, I'm sure. 20:49
jnthn moritz++
moritz spectesting now
Ulti from within rakudo is there a way to check which version is running? 20:51
moritz r: say $*VM
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…
Ulti thanks
moritz r: say $*PERL
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
Ulti n: say $*PERL
p6eval niecza v24-23-g0520c7c: OUTPUT«Any()␤»
Ulti ok neat
labster One thing I noticed is that Buf eqv Buf is really slow. 20:53
r: my $exes = ('x' x 10000).encode; my $n = now; $exes eqv $exes; say now - $n;
p6eval rakudo 5a1291: OUTPUT«3.249693052␤»
labster r: my $exes = ('x' x 10000).encode; my $n = now; $exes.decode('Binary') eqv $exes.decode('Binary'); say now - $n;
p6eval rakudo 5a1291: OUTPUT«0.02707558␤»
labster string comparison only 1200 times faster 20:54
colomon woah
20:54 swarley| joined 20:55 census_ joined
Ulti o__O 20:55
arnsholt And since I just looked at the Buf code, I think I know why
moritz arnsholt: me too, without even looking at it :-)
20:55 census left
arnsholt Buf.eqv($a, $b) does $a.list eqv $b.eqv 20:56
20:56 fgomez left
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
moritz that's from the times where Buf was implemented with ByteBuffer
arnsholt: yes, I'll fix that 20:57
labster thanks moritz++
arnsholt There are some PIR bits in there as well, I noticed
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
labster++ 21:00
spectesting...
Ulti might be an interseting test to add in runtime sanity too
21:00 swarley| left
Ulti if you know that string equivalence should be near by in runtime 21:00
dalek p-jvm-prep: e033394 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Start getting the regex compiler in place.

Implemented concat, literal and pass. Empty, cheating scan so we can try the other bits. Also got most of the prologue being emitted, but none of the postlude that handles backtracking yet.
21:03
p-jvm-prep: 27c4de7 | jnthn++ | / (2 files):
Implement nqp::findmethod.
p-jvm-prep: d1763c9 | jnthn++ | nqp-src/QRegex.nqp:
Uncomment parse, wich ACCEPTS calls to match.

With this, it's now possible to do a very, very basic regex:
   use QRegexJVM; say(('abcdef' ~~ /abc/).Str())
Which produces 'abc' as output.
[Coke] jnthn++ 21:05
arnsholt Oooh!
Ulti I dont get how you are all so productive given dayjobs existing :S 21:06
pmichaud dayjob? what's that?
Ulti heh those things you avoid doing work at
jnthn The thing I didn't have to do today :)
Should probably look after it a bit tomorrw, though :) 21:07
21:10 raiph_ left, fgomez joined
Ulti jnthn do you have a limit on how many of your lessons can be on compilers and object models? 21:11
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
so, whilst that's a reasonable criteria at the design level, it's not something I'm able to continue with.
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 rindolf left
nwc10 jnthn: *still* passes all tests. 21:18
jnthn nwc10: Darn...I might go a whole day without breaking anything?! 21:19
nwc10 the night is young, surely?
jnthn Just deciding what to pick off next. 21:20
21:20 zby_home joined
jnthn I think I'll leave the backtracking for another day...but there's still other things I can do :) 21:20
21:20 zby_home left 21:21 xy left, yx joined
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
21:25 AAB3S99 joined, raiph_ joined, JTAAF61X joined
jnthn imho, we're better off without nqp::existspos and nqp::deletepos 21:27
21:29 FROGGS_ joined
pmichaud jnthn: noted. I'll re-examine a bit over the next couple of days. 21:31
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 :)
jnthn Yes, exactly. 21:33
pmichaud jnthn: what's your opinion about how nqp::atpos should handle out-of-bounds indexes?
nwc10 but NQP itself doesn't need this sparesness. Rakudo does
er, sparseness. 21:34
and ENOPUN for sparesness.
that's the biggest thing that is bugging me here.
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 :)
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
QAST::VarWithFallback for example.
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
*checking bounds
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.
On the JVM I guess it's already having to check for that. OTOH, it may well spot that we are do come JIT...
*already do 21:37
What do you mean by handling negative, ooc? 21:38
pmichaud atpos(-1)
jnthn As in, "subtract the elem count and check again"?
Or "return the sentinel reliably"?
pmichaud add the elem count and check again
could also be return the sentinel reliably. Either way, the point is that we still are having to do the check.
21:38 lizmat left
jnthn True 21:38
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.
jnthn So it's not actually extra cost in terms of instruction count.
pmichaud correct.
jnthn OK, then I can go with add elem count and check again.
Which is...the status quo :)
pmichaud indeed
how do you feel about letting aggregates choose their sentinel? 21:40
too costly for the extra pointer? 21:41
s/pointer/reference/
jnthn Well, depends how we do it.
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)
pmichaud I'm thinking per-instance 21:42
jnthn Otherwise it'd have to be per instance.
pmichaud it could be per-type if our types are smart enough to handle that
i.e., if we really do recognize my Int @array as being a different type from my Any @array
jnthn Well, on JVM an array type is using the VMArray REPR, so it's decidedly smart enough :)
21:42 benabik left
jnthn I think those are different types already 21:43
Thing is that there's then the underlying storage.
Oh, wait, what level are you thinking of putting this at? 21:44
pmichaud possibly fairly low
jnthn The QRPA level, or the Perl 6 Array level?
pmichaud QRPA level
21:44 benabik joined
jnthn Yeah. Then we get two levels of type-y thing. 21:44
The Perl 6 Array[Int] or however we choose to see it, and also the low level storage.
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"
which of course can continue to be PMCNULL (the default), but it could also be Nil or Any or Mu or ...
jnthn *nod*
pmichaud but it does mean an extra slot in every QRPA 21:46
and maybe we don't want that.
jnthn Over in JVM land, QRPA's functionality is done as a REPR.
That means that there's the usual STable slot for hanging off type-specific info from.
pmichaud yup
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
(maybe, if I'm understanding what QAST::VWF is doing)
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
jnthn It's mostly a convenience.
pmichaud this lets the aggregate specify the fallback
21:49 donaldh joined
jnthn Right, which would make QAST::VWF needed in...well, not that situation at lesat. 21:49
And that's it's main usage iirc.
er, amke it *not be needed*
nwc10 (I'm somewhat completely lost on the details now...
jnthn oh, huh, I confused myself in the negations ;)
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
and beneath it is the real VM, which someone else owns)
(which could have been written in Ook!, for all we care. 21:51
The layers are much clearer)
jnthn Please, somebody else is allowed to own it too ;)
pmichaud I'm glad the layers are clearer :)
[Coke] you're too fast!
pmichaud tapes Coke's virtual mouth shut.
Ignore that part about being "too fast" :)
jnthn :P
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: github.com/jnthn/nqp-jvm-prep/comm...ocs/LHF.md 21:54
pmichaud (including hashes)
which would eliminate other of the VarWithFallback instances
jnthn Yeah.
pmichaud the theory being that fallbacking from within the aggregate code could be faster than fallbacking at the QAST level
which is certainly the case for QRPA
jnthn It's a win everywhere in the sense of more compact code.
pmichaud so maybe we end up with a QHash too :-/
jnthn No, maybe not
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...
benabik nwc10: It's also fairly short.
pmichaud jnthn: oh, I'm happy with that also.
census_ SOS 21:56
nwc10 and it still has deletepos in it
jnthn boo
jnthn updates
pmichaud deletepos needs to be considered with respect to how Array.delete works 21:57
and where compaction takes place
nwc10 yes, but it probably should come out of Low Hanging Fruit for now
pmichaud well, "compaction" as in shortening the virtual length of the array
sadly, I have to run now
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.
phenny donaldh: 07 Feb 00:52Z <diakopter> tell donaldh I commented on your pull request's commit
census_ I have a very strange outputting situation!! Can somone pleease help? :)
donaldh jnthn: I sent a pull request update last week.
[Coke] nwc10: I know, I know. I did make it smaller at one point. :)
pmichaud I'm afk again... bbt
[Coke] census_: Is this Perl 6 code? 21:59
Or for some p5 code used in the build of one of the Perl 6s?
census_ No perl 5. But I know some people know perl 5 here. I would chat in private so not to distract the room.
jnthn pmichaud: Will do. 22:00
donaldh: oh, I missed the update...
22:00 benabik left
dalek p-jvm-prep: ac0348c | jnthn++ | / (2 files):
QAST::Regex dba nodes, and uncomment some of !dba.
22:01
p-jvm-prep: 77328b7 | jnthn++ | docs/LHF.md:
Update LHF.
donaldh jnthn: np. I have been away since then and am just catching up.
jnthn donaldh: d'oh, now it dosn't want to automatically merge it. 22:02
jnthn sorts it out
donaldh I just merged upstream. It looks like it's just the plan in 59-ops.t 22:03
22:04 skids left
donaldh 59-nqpop.t even :-) 22:04
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
swarley ah
dalek p-jvm-prep: b8a759e | jnthn++ | / (2 files):
Add nqp::split implementation; donaldh++.
p-jvm-prep: 20756af | jnthn++ | nqp-src/ (2 files):
Uncomment some code that needed nqp::split.
p-jvm-prep: 867be66 | jnthn++ | t/nqp/59-nqpop.t:
Add nqp::split tests; donaldh++.
p: c9bc4a2 | jnthn++ | t/nqp/59-nqpop.t:
Add nqp::split tests; donaldh++.
22:13
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
Well, I suppose everything could be statically linked 22:15
jnthn swarley: eval? :)
swarley In Go? :o
:p*
jnthn swarley: No, I meant, implementing eval :)
swarley I was hoping that I could just compile features as they're made and link them in
But, Go doesn't have easy support for dynamic loading
so I suppose I'll so the static route. 22:16
And right now I'm doing a rewrite of what I have so far
I'm about to get into the REPR
but I'm getting all of the ThreadContext/SerializationContext etc in the code base before I get too far down the road
diakopter donaldh: I haven't read the code; what does it do with multiple delimiter matches in succession? 22:17
22:17 bluescreen100 left
donaldh zero length string between each delimiter match 22:18
nwc10 jnthn: meta-fail. (It still passes) 22:19
diakopter nqp: say(nqp::split(" ", "a a a")) 22:20
p6eval nqp: OUTPUT«[ "a", "", "a", "", "a" ]␤»
diakopter donaldh: ^^ it collapses them
donaldh diakopter: sorry, you've lost me 22:21
diakopter nqp: say(nqp::split("x", " xx xx ")) 22:22
p6eval nqp: OUTPUT«[ " ", "", " ", "", " " ]␤»
diakopter oh
nm
jnthn diakopter: Gives same output on both.
(the a one at least)
jnthn just tried it locally
diakopter sorry, I thought I saw something different the other day
stevan_ nqp: say(undef) 22:23
p6eval nqp: OUTPUT«␤»
stevan_ nqp: say(true)
p6eval nqp: OUTPUT«␤»
stevan_ nqp: say(false)
p6eval nqp: OUTPUT«␤»
donaldh I should add a test for consecutive delimiters.
stevan_ hmm, am I using the p6eval bot wrong?
jnthn nqp: say(i_turn_all_unknown_lookups_info_nqpmu)
p6eval nqp: OUTPUT«␤»
nwc10 stevan_: did you want nqp? or Rakudo?
jnthn *into 22:24
Anyway, there's no undef/true/false defined in nqp
22:24 kaare_ left
stevan_ oh, I guess Rakudo :) 22:24
nwc10 nqp: say(Rickroll)
p6eval nqp: OUTPUT«␤»
nwc10 quite safe :-)
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 :)
p6eval rakudo 5a1291: OUTPUT«Hello world␤»
stevan_ nwc10: thanks
jnthn nwc10: You're never gonna give that meme up? :)
stevan_ r: say undef
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤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
..t…
stevan_ ouch
ok
r: say true
p6eval rakudo 5a1291: OUTPUT«===SORRY!===␤Undeclared routine:␤ true used at line 1␤␤»
nwc10 you can also talk to it as a privmsg
jnthn r: say True
p6eval rakudo 5a1291: OUTPUT«True␤»
stevan_ is true not true
nwc10 but, I discovered, you need to start your message with r: 22:26
or n:
or the other things it accepts
stevan_ ah
r: say False
p6eval rakudo 5a1291: OUTPUT«False␤»
masak in a method in a grammar, how do I refer to the string matched against?
stevan_ got it
thanks
nwc10 I don't think that there's a prize for DOSing it. Or pwning it
jnthn masak: self.orig iirc
masak jnthn: dz
jnthn pzh
masak jnthn: indeed, it is. jnthn++ 22:27
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␤␤»
masak r: grammar G { regex TOP { { die self.^methods } } }; G.parse("OH HAI")
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…
masak jnthn: should this work? ;)
jnthn yeah, but we already know it doesn't :)
masak ah.
dang, I keep finding stale bugs!
jnthn Yeah. I'm too slow at fixing them :P
masak someone should srsly think about not reporting them before I do :P 22:29
jnthn You reported this one already, I thknk :P
masak masak: stop doing that!
jnthn yeah, you tell him!
masak masak: no, *you* stop!
nwc10 if you moved to github, you'd get more contributors.
Oh, wait.
Ulti r: print 22:31
p6eval rakudo 5a1291: ( no output )
masak Ulti: known bug.
Ulti you mean the True return value?
jnthn std: print
p6eval std 7551b8f: OUTPUT«===SORRY!===␤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:␤------> print⏏<EOL>␤Check failed␤FAILED 00:00 41m␤»
masak I mean that.
Ulti k
just checking :P
jnthn You need to clothe your prints in Perl 6 :) 22:32
masak print decently!
Ulti well you can do a bare say and get a newline so thought you might get a null string or something
lue
.oO(What if a module interfacing with printers created a bare print function to do what it says on the tin?)
22:33
Ulti ahhh I get it though, you are printing a null string which is doing nothing and you successfully have done that 22:34
and say does the same its just you also get the output 22:35
thats not a bug its just the prompt does slightly different things in each case
22:36 FROGGS[mobile] left, donaldh left 22:37 PacoAir left
Ulti r: my $say = say; my $print = print; say $say.perl ~ " " ~ $print.perl; 22:38
p6eval rakudo 5a1291: OUTPUT«␤Bool::True Bool::True␤»
Ulti its all good
swarley Slowly rewriting everything 22:44
I'm going to need to organize this code better after the rewrite is done though I think
23:04 wk left, pupoque left
_sri blog.headius.com/2012/10/so-you-wan...-ruby.html # interesting post about optimizing ruby implementations and the jvm 23:08
jnthn was reading some of headius++'s code last night :) 23:10
_sri :)
masak heady stuff :P 23:11
jnthn It was...invokedynamic takes some getting one's head around :)
It does...quite a lot more than invocation stuff :) 23:12
23:18 _daniel-s__ joined 23:19 ObseLeTe left 23:20 _daniel-s__ left 23:21 _daniel-s__ joined
masak .oO( invokedynamic is WEB SCALE ) 23:21
jnthn throws a PIC axe at masak
23:22 daniel-s__ left
masak hides behind a register alligator 23:22
23:30 census joined 23:33 census_ left
masak 'night, #perl6 23:33
23:35 census_ joined, skids joined 23:37 census left 23:44 araujo left 23:49 k-man joined 23:52 k-man left 23:55 _daniel-s__ left
dalek p-jvm-prep: f1b70d2 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement enumcharlist compilation.
23:55
p-jvm-prep: 71e1f67 | jnthn++ | lib/QAST/JASTCompiler.nqp:
ws just delegates to (todo) subrule.
p-jvm-prep: 0faad58 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement qastnode; code blocks in regex now work.
p-jvm-prep: 9827646 | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement cclass.
p-jvm-prep: 7a8bf7b | jnthn++ | docs/ROADMAP:
ROADMAP update.
23:55 _daniel-s__ joined 23:57 _daniel-s__ left 23:58 _daniel-s__ joined