Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-04-11

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Tene I'm less than half-motivated!
00:00 mncharity Tene: eg 'perl6 has numerous implementations underway.'  also the belief, I've seen elsewhere, that nothing but the current perl impl will ever run p5.
00:01 TimToady Tene: sure, but your half motivated is better than a lot of other people's fully motivated :)
00:01 * Tene really gone now.
00:03 mncharity TimToady: pugs was dealing with hoards.  how to characterize their motivated-ness is unclear to me.  "the fully motivated are already participating" seems very odd.  What interpretation other than 'by definition' would make this true?
00:04 mncharity You think there's no one, in the entire p5 community, who if they knew of STD.pm, might be interested and capable of helping out with it?
00:05 TimToady this is a volunteer effort.  this includes the charismatic leaders and the purveyors of the wonderfulness of STD :)
00:06 mncharity /me puzzled
00:06 TimToady at the moment, I'm still recovering from my last charismatic roadtrip to purvey
00:07 TimToady charismatic purveyors have to be especially on guard from burnout
00:07 wayland76 joined #perl6
00:07 mncharity ah, ok.
00:07 mncharity /me looks forward to finding some recorded charismatic roadtripping
00:15 mncharity anyway, my fuzzy impression is starting to be that the p5 community has gotten a bit disconnected from the p6 effort.  it may be unclear on what it may provide (eg, "no p5.  no xs."), what it needs (more developers of many sorts I would think), how to help and why, etc.
00:16 jnthn mncharity: The p5 user community or developer community?
00:16 mncharity both
00:18 mncharity the potential payoff of exploring this might be something like 'a B to p6 converter, with p5 running on rakudo, or say an elf compiling p5 opcodes' might alter how people think about p6.
00:19 mncharity even if it was just a 'week project and blog post' kind of toy.
00:20 mncharity rephrase, the potential payoff of exploring this might be learning that something like writing a B to p6 converter, letting p5 run on rakudo, or alternately an elf compiling p5 opcodes, might have a useful impact on how p5 people think about p6.
00:20 jnthn FWIW, I think that the Perl 5 devs continuing to focus on Perl 5 is a Good Thing.
00:21 mncharity indeed
00:21 TimToady those of us working full tilt on getting to Christmas tend to view these things as good but not on the critical path
00:21 eternaleye joined #perl6
00:21 jnthn mncharity: I go to a fair few workshops. And my perception is that there is certainly a lot of interest in Perl 6.
00:21 TimToady and when we do get to Christmas, there will be plenty of motivation to do the other things
00:22 jnthn However, interest in using it when it's at a point that it's suitable for people to do so - and that point will vary by individual - differs from interest in helping make it happen faster.
00:22 TimToady but at the moment we're still in passion week, so things look pretty grim from time to time :)
00:23 TimToady and we've done plenty of big splashes in the past, some of which result in negative backlash when instant gratification is not forthcoming.
00:24 TimToady so our current strategy is to keep it on a low boil
00:24 TimToady just keep mentioning p6 from time to time on perlmonks and such
00:25 TimToady this process is a lot like trying to steer an asteroid
00:25 TimToady doing it with nukes is apt to be counterproductive
00:26 TimToady just slow steady pressure in the same direction is cumulative
00:30 mncharity hmm.  lots of good points.  I certainly am not at all suggesting the "look! p6 implementation X now does Y and Z!" splashing.  but we also don't seem to be doing quiet, honest, concrete, "here's how many people are working on p6, and what they're working on.  we could make more rapid progress if we had additional people of types foo and bar, to help with hee and qux."
00:32 TimToady well, time for my Good Friday thing.
00:32 TimToady bbl &
00:32 mncharity g'night
00:35 mncharity OLPC's python efforts arguably failed for (somewhat) similar reasons.  A small team, which for >year thought "We're too *busy* to get help, to spin up a dev community.  We'll let the big boom at the end take care of that.".  Then no boom, in part because of no community.  And all the time the python community
00:36 meppl joined #perl6
00:37 mncharity thought they had this big staff, instead of it being basically 3 or 4ish people.  Interpreted everything (not)happening through this perception, and wrote off helping.
00:39 mncharity jnthn: so interest, yes.  but i wonder how many of those would could clearly make valuable contributions, are aware of just how valuable/valued their efforts would be.
00:45 mncharity so, perhaps, and opportunity to get more people to work with.
00:45 mncharity g'night all &
00:45 jnthn night
00:49 literal hm, this is normal? http://sial.org/pbot/35927
00:52 bitfish left #perl6
00:52 kanru joined #perl6
00:58 jnthn literal: If Pod::Parser is not pre-compiled, it's very possible.
01:03 literal ok
01:04 Maghnus_ joined #perl6
01:25 wknight8111 joined #perl6
01:40 meppl good night
01:53 hercynium joined #perl6
02:01 japhb joined #perl6
02:03 braceta joined #perl6
02:08 nbrown joined #perl6
02:23 bacek__ *incoming*
02:24 * wayland76 ducks
02:25 bacek EWRONGWINDOW...
02:25 bacek wayland76: how HTTP::Daemon going?
02:25 * wayland76 straightens up and sighs reliev-ed-ly
02:25 wayland76 bacek: I'm the wrong person to ask
02:25 wayland76 Basically, I still haven't got a working Rakudo RPM
02:25 bacek EWRONGPERSON
02:26 bacek too many EWRONG* stuff...
02:26 kanru joined #perl6
02:26 wayland76 I'm waiting on parrot to apply some patches from me
02:26 wayland76 But they don't seem to be interested in doing so
02:26 bacek wayland76: they are just quite busy...
02:27 wayland76 Yeah, I know that.  But if they could at least either give me some feedback or apply the patch... :)
02:28 bacek You have to ask allison. She works on packaging.
02:29 wayland76 Yeah, I guess.  Last time I looked, she wasn't around, but that was a week ago, so I'll try again :)
02:29 bacek good luck :)
02:29 bacek afk # kids time
02:32 braceta joined #perl6
02:32 Kisu joined #perl6
02:36 jauaor joined #perl6
02:37 Kisu joined #perl6
02:51 braceta joined #perl6
03:16 orafu joined #perl6
03:43 meppl joined #perl6
04:11 [particle]1 joined #perl6
04:13 goksie joined #perl6
04:40 sitaram joined #perl6
04:46 msmatsko joined #perl6
04:50 sitaram left #perl6
05:12 jauaor left #perl6
05:20 jaldhar_ joined #perl6
05:21 jaldhar what is the proper method signature for BUILD?
05:22 jaldhar because if I just do BUILD {} I get...
05:22 jaldhar too many arguments passed (3) - 1 params expected
05:22 jaldhar with  rakudo built a few days ago.
05:26 Silencio82 joined #perl6
05:27 wayland76 rakudo: BUILD{}
05:27 p6eval rakudo 79aba9: OUTPUT«Could not find non-existent sub BUILD␤current instr.: '_block14' pc 53 (EVAL_16:37)␤»
05:27 wayland76 rakudo: method BUILD{}
05:27 p6eval rakudo 79aba9:  ( no output )
05:28 jaldhar hmm.  Then how do I initialize a class?
05:30 sephee joined #perl6
05:32 wayland76 I don't know the answer to these questions, I'm afraid, and I don't have a working rakudo at the moment
05:33 wayland76 rakudo: class fooclass { method BUILD{ say "built!\n"; };  }
05:33 p6eval rakudo 79aba9:  ( no output )
05:33 wayland76 rakudo: class fooclass { method BUILD{ say "built!\n"; }; say "other\n"; }
05:33 p6eval rakudo 79aba9: OUTPUT«other␤␤»
05:33 wayland76 rakudo: class fooclass { method BUILD{ say "built!\n"; }; say "other\n"; }; fooclass.new();
05:33 p6eval rakudo 79aba9: OUTPUT«other␤␤too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;fooclass;BUILD' pc 122 (EVAL_19:60)␤»
05:34 jaldhar see thats what I get
05:34 wayland76 rakudo: class fooclass { method BUILD{ say "built!\n"; }; say "other\n"; }; fooclass.new('hi');
05:34 p6eval rakudo 79aba9: OUTPUT«other␤␤too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;fooclass;BUILD' pc 129 (EVAL_19:62)␤»
05:34 wayland76 rakudo: class fooclass { say "other\n"; }; fooclass.new('hi');
05:34 p6eval rakudo 79aba9: OUTPUT«other␤␤»
05:36 wayland76 hmm.  Unfortunately, this tends to be the wrong time of day to ask.  It's 3:30pm here in Australia.  I usually find that questions like that get answered better after say 6pm or 7pm (3 or so hours from now) until sometime in the morning after I wake up
05:36 wayland76 If you wait around, though, maybe someone will show up who knows the answer ( bacek, are you there?)
05:37 wayland76 rakudo: class fooclass { submethod BUILD{ say "built!\n"; }; say "other\n"; }; fooclass.new('hi');
05:37 p6eval rakudo 79aba9: OUTPUT«other␤␤too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;fooclass;BUILD' pc 129 (EVAL_19:62)␤»
05:38 jaldhar its kind of late at night for me to (Eastern US) so I will come back tomorrow then.
05:38 jaldhar too*
05:38 wayland76 wait, one more try
05:39 wayland76 rakudo: class fooclass { submethod BUILD($example) { say "built!\n"; }; say "other\n"; }; fooclass.new('hi');
05:39 p6eval rakudo 79aba9: OUTPUT«other␤␤built!␤␤»
05:39 jaldhar aha!
05:39 wayland76 there you go :)
05:39 wayland76 rakudo: class fooclass { submethod BUILD() { say "built!\n"; }; say "other\n"; }; fooclass.new('hi');
05:39 p6eval rakudo 79aba9: OUTPUT«other␤␤too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;fooclass;BUILD' pc 129 (EVAL_21:62)␤»
05:39 jaldhar thanks let me try this...
05:41 wayland76 Spec and ack ++
05:41 wayland76 (I presume you know about ack? )
05:43 amoc joined #perl6
05:44 pugs_svn r26184 | lwall++ | [t/spec] differentiate reverse from flip and invert
05:47 TimToady there's nothing fancy about BUILD signatures, as long as you realize all the arguments are coming in as named args
05:47 TimToady (and that BUILD needs to be a submethod)
05:47 jaldhar wayland76: no I'm sorry what does ack mean?  And btw it still doesn't work if the class actually has attributes
05:47 TimToady ack is a recursive grep
05:47 wayland76 ack is like grep, but uses perl regular expressions
05:47 jaldhar oh that ack.  I've heard of it.
05:47 TimToady you need to set the private attributes $!foo
05:48 wayland76 (and, as TimToady pointed out, it does grep -R . if you don't specify files)
05:48 sri_kraih joined #perl6
05:49 wayland76 Btw, TimToady, I've worked out what we can do for Perl 7
05:49 wayland76 Imagine an interlinear text editor that lets you write mathematical equations
05:49 wayland76 Now imagine writing your code in that :)
05:50 wayland76 (equations with actual proper layout, etc)
05:50 TimToady Ask not what Perl 7 can do for you; ask what you can do for Perl 7...  :)
05:50 wayland76 That's why I started wrestling with writing an interlinear text editor this afternoon :)
05:51 wayland76 But it currently segfaults :(
05:53 TimToady and since Koine Greek was invented by God to be a language in which theological truths could be expressed with mathematical accuracy, you can also use it to produce a 100% accurate translation into English.  :)
05:54 TimToady sorry, my tongue seems to have become permanently stuck in my cheek somehow...
05:54 justatheory joined #perl6
05:55 wayland76 No, that's fine :)
05:56 wayland76 I'm not as au fait with Koine as you are, but I got through around 15 lessons before I dropped out due to other commitments :)
05:57 TimToady I remember one of my greek teachers one day saying, "some of you are going to be preachers, and I'll be sitting in your audience"
05:58 wayland76 But English isn't 100% accurate.  It's like looking at a low-res image of Greek :)
05:58 TimToady and you'll get up there and say "dynamai means 'dynamite'!"
05:58 TimToady if you do, I will stand up in the middle of your sermon and say "It does not!"
05:58 TimToady and sit down
05:58 TimToady dynamai simply means "I can".  It's a vanilla word
05:59 wayland76 ok :)
05:59 TimToady most greek words are vanilla words
05:59 TimToady that lesson has stuck with me
06:00 TimToady most words are not explosives, but small tools to approach the truth
06:00 TimToady and it takes a great number of them to head off false interpretations even approximately
06:01 TimToady and there are precious few 100% accurate statements in any natural language, including Koine
06:01 wayland76 That makes English sound like Entish :)
06:02 TimToady but this is as it should be, because it prevents us with coming up with a formula, when the truth is something that can only be discovered by living it
06:02 frew|work joined #perl6
06:02 TimToady this does not stop people from coming up with formulas for success continually, of course :)
06:02 wayland76 Hmm.  Interesting :).
06:03 jaldhar *sigh* it seems I am still not getting it.  Consider:
06:03 jaldhar class cow { has $!sound is rw; submethod BUILD($a) { $!sound = 'moo'; }; }; my $go = cow.new; say $go.sound;
06:03 TimToady but we should not be fooled by them in either a theological realm or a programming realm
06:03 jaldhar I get: Could not find non-existent sub moo
06:03 jaldhar which is, uh, not what I expected.
06:04 wayland76 "success"?  I was thinking of holiness (which is success, I guess), and the later Puritan solidification into a formula
06:04 TimToady the error is certainly peculiar, but it should be complaining that it cannot find method .sound
06:04 TimToady so maybe it just printed the wrong string
06:04 jaldhar this is rakudo from early last week incidently
06:05 wayland76 rakudo: class cow { has $!sound is rw; submethod BUILD($a) { $!sound = 'moo'; }; }; my $go = cow.new; say $go.sound;
06:05 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:05 TimToady rakudo: class Cow { has $.sound is rw; submethod BUILD () { $!sound = 'moo'; }; }; say Cow.new.sound;
06:05 p6eval rakudo 79aba9: OUTPUT«too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;Cow;BUILD' pc 186 (EVAL_22:67)␤»
06:05 wayland76 rakudo: class cow { has $!sound is rw; submethod BUILD($a) { $!sound = 'moo'; }; }; my $go = cow.new.sound
06:05 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:06 TimToady you certainly can't call .sound with a private attribute
06:06 TimToady rakudo: class Cow { has $.sound is rw; submethod BUILD ($a) { $!sound = 'moo'; }; }; say Cow.new.sound;
06:06 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:06 wayland76 rakudo: class cow { has $!sound is rw; submethod BUILD($a) { $!sound = 'moo'; }; }; my $go = cow.new;
06:06 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:06 jaldhar if you don't give an arg to BUILD you get the three parameter error.  If you make sound $. you get the NULL PMC error
06:07 TimToady rakudo: class Cow { has $.sound; submethod BUILD ($a) { $!sound = 'moo'; }; }; say Cow.new(:a<arf>).sound;
06:07 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:07 wayland76 rakudo: class cow { has $.sound is rw; submethod BUILD($a) { $!sound = 'moo'; }; }; my $go = cow.new;
06:07 frew|work joined #perl6
06:07 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:07 TimToady rakudo: class Cow { has $.sound; submethod BUILD (:$a) { $!sound = 'moo'; }; }; say Cow.new(:a<arf>).sound;
06:07 wayland76 rakudo: class cow { has $.sound is rw; submethod BUILD($a) { $sound = 'moo'; }; }; my $go = cow.new;
06:07 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:07 p6eval rakudo 79aba9: OUTPUT«Scope not found for PAST::Var '$sound' in BUILD␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
06:08 TimToady rakudo: class Cow { has $.sound; submethod BUILD (:$!a) { }; }; say Cow.new(:a<arf>).sound;
06:08 p6eval rakudo 79aba9: OUTPUT«Use of uninitialized value␤␤»
06:08 TimToady rakudo: class Cow { has $.sound; submethod BUILD (:$!sound) { }; }; say Cow.new(:sound<arf>).sound;
06:08 p6eval rakudo 79aba9: OUTPUT«Use of uninitialized value␤␤»
06:08 jaldhar btw I am on the right track initializing my attributes in BUILD aren't I?
06:08 TimToady rakudo: class Cow { has $.sound; submethod BUILD (:$sound) { $!sound = $sound; }; }; say Cow.new(:sound<arf>).sound;
06:09 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:09 TimToady rakudo: class Cow { has $.sound = 'woof'; submethod BUILD (:$sound) { $!sound = $sound; }; }; say Cow.new(:sound<arf>).sound;
06:09 p6eval rakudo 79aba9: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14925 (src/builtins/assign.pir:20)␤»
06:09 TimToady well, perhaps BUILD isn't entirely up to snuff yet in rakudo
06:10 wayland76 I'll send them a rakudobug
06:10 TimToady I suspect they know it already :)
06:10 jaldhar its the way initialization is supposed to work though right?
06:10 TimToady several of the things I tried should have worked
06:10 wayland76 Ok, I won't then
06:11 TimToady there was some discussion of it several days ago, i think
06:11 wayland76 jaldhar: Yes, I think so
06:12 TimToady though it doesn't make sense to declare a $!sound is rw, since the rw is what is applied to the (non-existent) accessor
06:13 jaldhar I had it $. at first.  $! was just while I was messing around trying to get it to work
06:13 TimToady rakudo: class Cow { has $.sound = 'woof'; }; say Cow.new(:sound<arf>).sound;
06:13 p6eval rakudo 79aba9: OUTPUT«arf␤»
06:13 TimToady rakudo: class Cow { has $.sound = 'woof'; }; say Cow.new.sound;
06:13 p6eval rakudo 79aba9: OUTPUT«woof␤»
06:13 TimToady well, that much works at least
06:14 TimToady but I think rakudo's .new is faking it at the moment
06:14 jaldhar that's good enough for me for the time being.  I compile rakudo every week or so so I'll keep checking back.  Goodnight all.
06:15 TimToady night, thanks
06:15 brunov gnight
06:16 wayland76 goodnight
06:21 Minthe joined #perl6
06:21 brunov TimToady, as a biologist, I expect Perl6 to have a .translate_dna method built into the Str type.
06:21 brunov ;)
06:22 TimToady likely... :)
06:23 Minthe Oh, I'd like the feature too.
06:24 Minthe In ruby I can add method directly to String, so calling like "AAA".translate_dna() is accepted. But I thought I cannot add methods in Perl
06:25 TimToady adding methods to existing classes is kinda evil.  we call it "monkey patching"
06:26 wayland76 But you can do it
06:26 wayland76 You just have to say "use MONKEY_PATCHING" first :)
06:26 Minthe Oh, nice. Thanks.
06:27 wayland76 (see S12 for details)
06:27 TimToady and then you use "augment Str {...}"
06:27 TimToady though nobody implements that yet
06:27 wayland76 Oh, cool :)
06:54 davidad joined #perl6
07:08 Silencio82 joined #perl6
07:09 Tene joined #perl6
07:33 Khisanth joined #perl6
07:44 nekobaka left #perl6
07:56 iblechbot joined #perl6
08:30 DemoFreak joined #perl6
08:48 M_o_C joined #perl6
08:50 ejs joined #perl6
08:52 icwiener joined #perl6
09:01 sitaram joined #perl6
09:37 M_o_C joined #perl6
09:49 ZuLuuuuuu joined #perl6
10:09 payload joined #perl6
10:27 ejs joined #perl6
10:36 diakopter std: #{ "&{ say "}" }" } 3
10:37 p6eval std 26184: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/DYOzwUBObi line 1:␤------> [32m#{ "&{ say "}" }" } 3[31m[0m␤    expecting escape␤FAILED 00:04 37m␤»
10:40 sitaram left #perl6
10:50 diakopter std: #{ "&{ say "." }" } 3
10:50 p6eval std 26184: OUTPUT«ok 00:02 35m␤»
10:51 diakopter std: #{ "&{ #{ say "." } }" } 3
10:51 p6eval std 26184: OUTPUT«ok 00:02 35m␤»
10:52 diakopter std: #{ "&{ #{ say "}" }" } 3
10:52 p6eval std 26184: OUTPUT«ok 00:02 35m␤»
10:53 diakopter std: #{ { "&{  say "}" }" } 3
10:53 p6eval std 26184: OUTPUT«ok 00:02 35m␤»
10:57 diakopter TimToady: I still maintain that inline/block quotes/comments is unworkable... b/c you end up having to quasi-parse the inside as full-fledged outer-language.. otherwise any contained unmatched brackets of the surrounding type will mess it up...
10:58 diakopter (inline *nested* block quotes/comments)
10:58 M_o_C joined #perl6
10:59 diakopter and it's too difficult to detect reliably the quoting status of those nested left/right pairs... imho.  feel free to take that as a challenge for STD. :)  or not.
11:26 jbt joined #perl6
11:45 orafu joined #perl6
12:20 iblechbot joined #perl6
12:41 LylePerl joined #perl6
12:47 gilimanjaro joined #perl6
12:51 Whiteknight joined #perl6
12:55 Tene joined #perl6
13:07 gilimanjaro joined #perl6
13:26 pmurias joined #perl6
13:39 LylePerl joined #perl6
14:04 skids joined #perl6
14:19 fridim_ joined #perl6
14:42 payload joined #perl6
14:49 sri_kraih_ joined #perl6
14:58 frew|work joined #perl6
15:06 amoc joined #perl6
15:07 TimToady diakopter: nevertheless, the current approach is the least worst way to do it, and consistent with other quote constructs, and very easy to work around if you're unsure by doubling or tripling, or by using a different character.
15:08 goksie joined #perl6
15:08 TimToady and the mechanism is primarily intended for in-line comments in any case, not multi-line, and it's pretty easy to see if there's potential interference
15:09 TimToady in case of error, the error message will be fairly indicative of the nature of the problem
15:10 TimToady if we required people to use curlies, that'd be one thing, but people can use any brackets they like
15:11 TimToady and the bottom line is that ignoring nesting also producing the wrong result
15:13 sri_kraih joined #perl6
15:14 FurnaceBoy joined #perl6
15:15 TimToady *produces
15:15 TimToady so the issue devolves into "Doctor it hurts when I do this..."
15:40 iblechbot joined #perl6
15:46 hercynium joined #perl6
15:52 Psyche^ joined #perl6
15:53 araujo joined #perl6
16:16 diakopter any design flaw or implementation bug can be construed as "Doctor it hurts when I do this" :P  I agree that it's easy to work around by using a different character pair.  Instead of emphasizing the non-rigorous ability to detect nested pairs, I recommend emphasizing (for clarity) in the S that it's a best practice to use a different open/close pair for nested brackets, though of course in the simple case (such as in other languages where /* /* */ */ or <
16:16 diakopter .... (repasted for you) practice to use a different open/close pair for nested brackets, though of course in the simple case (such as in other languages where /* /* */ */ or <!-- <!-- --> --> doesn't DWIM) it'll be handy.
16:17 pmurias diakopter: the specs are not really a best practice guide
16:18 diakopter in other words, the fact that there are 71 available Unicode pairs is what provides the flexibility
16:19 diakopter I seem to recall several other places in the S where best practices are mentioned
16:21 diakopter also, STD accepts (and shouldn't?) '#{' on the first line, I think
16:21 diakopter std: #{
16:21 p6eval std 26184: OUTPUT«Undefined␤ok 00:02 34m␤»
16:21 diakopter interesting
16:22 diakopter s/hoards/hordes/g ?
16:25 skids ENONSEQUITER
16:25 mmpf joined #perl6
16:26 diakopter pmurias: how's it going
16:35 pmurias i'm working on a smop refactoring atm besides half-heartedly doing stuff for uni
16:36 diakopter how goes the smop refactor?
16:36 pmurias it's a bit segfaulty atm ;)
16:38 pmurias the refactored smop doesn't run any Perl 6 code yet
16:40 pmurias the refactored smop lives in re-smop
16:43 diakopter oh
16:43 diakopter skids: enonsequitor?
16:44 nihiliad joined #perl6
16:53 pmurias diakopter: how ironperl doing?
16:53 diakopter coming along.  giving a short talk at Lang.NET 2009 this week on it.
16:53 Psyche^ joined #perl6
16:53 diakopter I'm happy with the OMeta-based parser
16:54 pmurias diakopter: where does it live in now?
16:54 diakopter I basically ported over my old "yap6" one that you saw last year :)
16:54 diakopter my local disk.  I really should commit it somewhere.....
16:54 diakopter I rm'd the edition in pugscode b/c of the direction shift
16:55 nihiliad joined #perl6
17:00 pugs_svn r26185 | pmurias++ | [re-smop] $OUT.print("hi","\n") works with gc turned off and an --empty-setting option to mildew
17:01 pmurias diakopter: you should definitly commit it somewhere (the pugs repo? ;) if you are mentioning it to people
17:03 dalek rakudo: e931dc0 | pmichaud++ | docs/spectest-progress.csv:
17:03 dalek rakudo: spectest-progress.csv update: 359 files, 10300 passing, 0 failing
17:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​931dc08bb530f569fc9d1e5049afc2bc761f32f
17:03 jnthn pmurias: Ain't GC fun? :-|
17:03 jnthn Wow. 10,300!
17:04 jnthn .oO( oh noes, here comes pmichaud with a factorial joke again )
17:04 pmichaud can't find function 'postfix:<!>' at line 1.
17:04 pmurias jnthn: it's not really real gc but still the lousy reference counting
17:05 jnthn pmurias: Doubt that makes it any more fun...
17:06 jnthn Writing slides is quite a good way to find Rakudo bugs...
17:09 pugs_svn r26186 | jnthn++ | Tests for calling mixed in methods with .?, .+ and .*.
17:09 jnthn oh geck...that wanted a [t/spec] at the start of the commit message
17:10 dalek rakudo: bb664df | jnthn++ | src/classes/Object.pir:
17:10 dalek rakudo: Make .?, .+ and .* more likely to work with foreign objects, and also make them able to call methods that were mixed in.
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​b664dfda5f288da526c8785f040531136e2ab2d
17:10 dalek rakudo: 5b679a9 | jnthn++ | :
17:10 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​b679a9e3a48e8d860784dbf786506540f54eaef
17:10 payload joined #perl6
17:31 pugs_svn r26187 | pmurias++ | [re-smop] fixed a bug which cause $OUT.print("hi","\n") to fail with gc enabled
17:36 Casan joined #perl6
17:48 pmurias diakopter: you aren't using STD for ironperl?
17:50 ZuLuuuuuu <xxx> I can understand, esp. if Tcl == Terrorist Control Language
17:50 ZuLuuuuuu <yyy> xxx: gee, thanks, you've just put a lot of people on The List.
17:50 ZuLuuuuuu <zzz> xxx: sssh.  you'll alert the CIA.  They have ways of dealing with people like the Tcl'ers, and they usually involve torture.
17:50 ZuLuuuuuu <xxx> Make us write in perl?
17:50 ZuLuuuuuu # from Tcl channel :)
17:50 ZuLuuuuuu couldn't help it :)
17:52 diakopter pmurias: not yet, b/c I wanted to implement the mutable syntax system early on, and I couldn't figure out an easy [for me] way to make the parser the chief of the runtime without doing it in Perl 5
17:52 diakopter so, I'm presuming that eventually it'll be adopted.
17:52 diakopter assuming my joke-implementation persists :D
17:54 diakopter it'll = STD'll
17:54 pmurias diakopter: when are you going to commit ironperl?
17:56 diakopter well, it's a tree of modified svn checkouts of other projects, so I'm not sure how to commit that to svn.
17:57 pmurias maybe forking them using git
17:59 pmurias diakopter: are you molding other things into a Perl 6 implementation or do you need customised versions of things?
17:59 diakopter eh, customized versions of things, some.
18:00 diakopter Tycho and OMeta#
18:00 diakopter OMeta# being the PEG
18:00 diakopter (generator)
18:01 oylenshpeegul joined #perl6
18:04 payload1 joined #perl6
18:06 oylenshpeegul If I build rakudo with 'perl Configure.pl --gen-parrot', it gets a copy of Parrot. How do I tell it to use the Parrot I already have?
18:12 PacoLinux oylenshpeegul: rakudo works with recent parrot, not instaled parrot
18:23 oylenshpeegul So even though I already have parrot 1.0 installed, I still need to build another one just for rakudo?
18:24 jnthn oylenshpeegul: That'll probably work out best, yes.
18:24 oylenshpeegul okay, thanks
18:30 oylenshpeegul left #perl6
18:36 Tene rakudo: my $x = 'lol'; $x does role { method wtf { say 'omg hai guyz' } }; $x.wtf();
18:37 p6eval rakudo 5b679a: OUTPUT«'does' expects a role or a list of roles␤current instr.: 'die' pc 17360 (src/builtins/control.pir:222)␤»
18:37 Tene jnthn: thoughts on that before I dig into it?
18:42 jnthn Tene: I don't think I've ever thought about anonymous roles much...
18:42 jnthn rakudo: say (role { method wtf { say 'omg hai guyz' } }).WHAT
18:42 p6eval rakudo 5b679a: OUTPUT«Code␤»
18:43 jnthn Ah
18:43 jnthn Hmm. Awkward.
18:44 jnthn Anon roles are going to need some special hanling in actions.pm I think.
18:44 jnthn Because roles are really like multi-subs.
18:44 jnthn (And you can't have anonymous multis...)
18:44 jnthn Tene: BTW, did you get anywhere with the backtrace bits?
18:44 Tene Oh, right!  I can do that now.
18:45 Tene $x does $role
18:45 Tene does work either
18:47 rindolf joined #perl6
18:47 rindolf Hi all.
18:47 Tene argh spelling
18:47 Tene hi rindolf
18:47 rindolf Hi Tene
18:47 jnthn rakudo: my $x = role { method wtf { say 'omg hai guyz' } }; 42 but $role # like this?
18:47 p6eval rakudo 5b679a: OUTPUT«Scope not found for PAST::Var '$role' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
18:47 jnthn rakudo: my $x = role { method wtf { say 'omg hai guyz' } }; 42 but $x # like this?
18:48 p6eval rakudo 5b679a:  ( no output )
18:48 Tene rakudo: my $role = role { has $.x }; my $x = "hi"; $x does $role;
18:48 p6eval rakudo 5b679a: OUTPUT«'does' expects a role or a list of roles␤current instr.: 'die' pc 17360 (src/builtins/control.pir:222)␤»
18:48 jnthn rakudo: my $role = role { has $.x }; my $x = "hi"; $x does $role(); $x.wtf
18:48 p6eval rakudo 5b679a: OUTPUT«'does' expects a role or a list of roles␤current instr.: 'die' pc 17360 (src/builtins/control.pir:222)␤»
18:48 jnthn heh
18:49 jnthn rakudo: my $role = role { has $.x }; my $x = "hi"; say $role();
18:49 p6eval rakudo 5b679a: OUTPUT«␤»
18:49 jnthn rakudo: my $role = role { has $.x }; my $x = "hi"; say $role().WHaT;
18:49 p6eval rakudo 5b679a: OUTPUT«Method 'WHaT' not found for invocant of class 'Role'␤current instr.: 'parrot;P6metaclass;dispatch' pc 644 (src/classes/ClassHOW.pir:163)␤»
18:49 jnthn rakudo: my $role = role { has $.x }; my $x = "hi"; say $role().WHAT;
18:49 p6eval rakudo 5b679a: OUTPUT«␤»
18:49 jnthn rakudo: my $role = role { has $.x }; my $x = "hi"; $role = $role(); $x does $role; $x.wtf
18:49 p6eval rakudo 5b679a: OUTPUT«Method 'wtf' not found for invocant of class ''␤current instr.: 'parrot;P6metaclass;dispatch' pc 644 (src/classes/ClassHOW.pir:163)␤»
18:50 jnthn rakudo: my $role = role { method wtf { say "srsly wtf" } }; my $x = "hi"; $role = $role(); $x does $role; $x.wtf
18:50 p6eval rakudo 5b679a: OUTPUT«srsly wtf␤»
18:51 jnthn Tene: And thus the fix. :-)
18:51 jnthn Tene: When the role is anonymous, chance the role body blocktype from declaration to immediate in the generated PAST.
18:51 Tene you going to do it or want me to?
18:52 jnthn feel free - my dinner is ready now so I'm going to eat. :-)
18:52 jnthn back in a bit
18:53 Tene YAY DINNER
19:01 diakopter rakudo: my $a= #{{ hi } }} 3
19:01 p6eval rakudo 5b679a:  ( no output )
19:02 diakopter rakudo: my $a= #{{ hi } }} 3; say $a
19:02 p6eval rakudo 5b679a: OUTPUT«3␤»
19:19 jnthn OMG DINNER WAS TEH AWESOME
19:23 icwiener_ joined #perl6
19:23 Casan rakudo: 1..10.WHAT.perl.say;
19:23 p6eval rakudo 5b679a: OUTPUT«Int␤»
19:23 Casan rakudo: (1..10).WHAT.perl.say;
19:23 p6eval rakudo 5b679a: OUTPUT«Range␤»
19:25 jnthn Precedence. Sometimes it loves you. Sometimes it loves you not.
19:26 Casan jnthn: yeah, I just browsed through your ukraine slides and wondered.
19:28 jnthn Casan: Ooh.
19:28 jnthn Casan: Which ones?
19:28 jnthn This year's?
19:28 Casan just reading.. have a C# book I have to read, but it bores me, so I'm trying to do all the same tasks in p6
19:29 Casan yep
19:29 Casan on multi dispatch
19:29 jnthn Casan: Oh, the double(1..10); example?
19:29 Casan yup
19:30 jnthn Ah, OK.
19:30 jnthn I thought you meant I'd got that precedence error somewhere in my slides!
19:30 jnthn Casan: You coming to Nordic Perl Workshop?
19:30 Casan jnthn: nope I'm just cross referencing all the docs, articles etc I find and test with that
19:31 Casan jnthn: fraid not, overlaps with a term paper
19:32 jnthn Aww, too bad.
19:32 jnthn Hope the term paper goes well.
19:32 Casan cheers
19:46 pmurias LS
19:46 pmurias (caps-lock)--
19:48 jnthn (irc-not-being-your-terminal)--
19:53 payload joined #perl6
20:08 legis joined #perl6
20:18 Tene jnthn: ping
20:18 jnthn Tene: pong
20:19 Tene jnthn: have any preference on message for exceptions?
20:19 Tene If not, I'm going with "exception thrown from source line %S\n"
20:19 jnthn "died at line %S\n" is maybe more Perl-ish?
20:20 Tene and for warnings?
20:23 Tene Perl 5 says:
20:23 Tene %s at line %d\n
20:24 Tene <message> at <file> line <line>\n that is.
20:24 Tene same for warn.
20:26 jnthn Tene: I think if it was called warn("message") show <message> at ...
20:26 jnthn If there's no message, warning at... perhaps.
20:26 jnthn And same for die.
20:26 Tene I'm always inclined to try to add quotes somehow.
20:34 jnthn That may not be a bad idea...
20:44 Tene Looks like this will add some warnings I'm not sure about...
20:46 riffraff joined #perl6
20:47 ejs joined #perl6
20:59 brunov joined #perl6
21:18 hercynium joined #perl6
21:29 masak joined #perl6
21:30 masak salutations, Lobstercamels.
21:31 jnthn heeeeeeeee's back!
21:31 * masak looks behind and around himself in mock confusion
21:31 jnthn ;-)
21:32 masak can self mean anything directly in class blocks?
21:32 masak I increasingly find myself wanting it to.
21:32 masak (sometimes several different things one after the other)
21:34 jnthn The latter might be the reason why it can't. ;-)
21:34 masak I'm not yet at the stage where I've given up on it.
21:34 jnthn I'd tended to consider it an error outside of methods.
21:34 masak that's a fair alternative, I think.
21:34 jnthn But if there can be a sane non-confusing use of it...
21:34 masak yes.
21:34 jnthn The only other pace is attribute initializers
21:35 jnthn But since I think you can already write like
21:35 masak I was thinking of those.
21:35 jnthn has $.x will init { ... };
21:35 jnthn And that block gets self as a paraemter
21:35 masak hm :)
21:35 masak nice.
21:35 jnthn (OK, I dont think you can write that in Rakudo yet.)
21:35 masak no. :)
21:36 masak what happened today was that I wrote this:
21:36 masak has @!body;
21:36 masak has &!writer = { @!body.push($^x) };
21:36 masak ...and that simply cannot work, I the realized.
21:36 masak s/the/then/
21:38 masak the problem is that the 'self' I'd like to use there would be the one defined in the method where I called that closure.
21:38 masak I suspect that's a bit too much to ask. it feels too magical, even for Perl 6.
21:40 jnthn rakudo: class Foo { has @.body; has &.writer = method ($x) { @!body.push($x) }; }; my $x = Foo.new; $x.writer("oh"); $x.writer("hai"); .say for $x.body;
21:40 p6eval rakudo 5b679a: OUTPUT«Could not locate a method 'writer' to invoke on class 'Foo'.␤current instr.: 'die' pc 17360 (src/builtins/control.pir:222)␤»
21:41 masak <nelson>HA HA!</nelson>
21:41 jnthn ...that wasn't the error I was expecting.
21:41 masak I suffered the same bug today.
21:41 jnthn rakudo: wtf?
21:41 masak (it's in RT already, among the other 304)
21:41 p6eval rakudo 5b679a: OUTPUT«Statement not terminated properly at line 1, near "?"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:42 jnthn Damm, Perl 6 so needs a postfix:<?> :-)
21:42 masak oh wait, it's actually another error.
21:42 * masak submits rakudobug
21:42 jnthn 305
21:42 masak well, 306. :)
21:43 * jnthn wonders how similar in shape the Rakudobugs graph and the spectests graph look.
21:43 masak sounds like a job for science!
21:44 masak jnthn: thanks for the tip about anon methods. I'll keep that in mind.
21:45 jnthn masak: It may work for your privates.
21:45 masak one can only hope.
21:45 jnthn But seems there is some issue with the accessor generation.
21:45 masak aye.
21:46 * jnthn spent some of today writing his NPW slides
21:46 * masak too
21:47 masak rakudo: class Foo { has @.body; has &!writer = method { @!body.push($^x) }; method p($str) { &!writer($str) } }; my $f = Foo.new; $f.p("OH "); $f.p("HAI"); .say for $f.body
21:48 p6eval rakudo 5b679a: OUTPUT«No such attribute '!writer'␤current instr.: 'parrot;Foo;p' pc 570 (EVAL_21:191)␤»
21:48 masak ah.
21:48 masak that's the error that was reported already.
21:48 jnthn No, before it was no such method.
21:49 jnthn Hmm
21:49 jnthn I wonder if it is mis-handling &!foo attributes
21:49 masak jnthn: yes, those are two different bugs. I'm reporting yours as we speak.
21:49 masak but mine was already discovered and filed away.
21:51 masak rakudo: class A { has &!m = method {}; method f { &!m() } }; A.new.f
21:51 p6eval rakudo 5b679a: OUTPUT«No such attribute '!m'␤current instr.: 'parrot;A;f' pc 356 (EVAL_20:125)␤»
21:51 masak rakudo: class A { has $!m = method {}; method f { $!m() } }; A.new.f
21:51 p6eval rakudo 5b679a: OUTPUT«too few arguments passed (0) - 1 params expected␤current instr.: 'parrot;A;_block23' pc 157 (EVAL_20:64)␤»
21:51 masak rakudo: class A { has $!m = method {}; method f { self.$!m() } }; A.new.f
21:52 p6eval rakudo 5b679a:  ( no output )
21:52 masak rakudo: class A { has $!m = method { say "OH HAI {self}" }; method f { self.$!m() } }; A.new.f
21:52 p6eval rakudo 5b679a: OUTPUT«OH HAI A<0xb6a19880>␤»
21:52 masak that works. :)
21:52 masak those & sigils on attributes don't work so well.
21:53 jnthn & sigil handling is a tad special for non-attributes.
21:54 masak ok.
21:54 * masak rode a bus from one end to the other today
21:54 masak 9 hours.
21:55 masak I used up the battery getting Web::Lobster to show up in the browser.
21:55 masak going to blog about it tomorrow.
21:57 masak rakudo: class A { has $.cl = { self.say } }; A.new.cl()()
21:57 p6eval rakudo 5b679a: OUTPUT«Null PMC access in get_pmc_keyed()␤current instr.: 'parrot;A;_block27' pc 196 (EVAL_20:78)␤»
21:57 * masak submits rakudobug 307
21:57 literal masak: one end of what?
21:57 masak literal: the country.
21:57 literal which country? :)
21:57 masak literal: my country. :)
21:58 masak not lengthwise, mind you.
21:58 masak that takes ages.
21:58 literal Sweden?
21:58 masak aye.
21:58 jnthn Hah, for a moment I thought masak had taken my advice and visited Abisko, then thought...hey, that'd have been a hell of a fast bus.
21:59 jnthn masak: It really takes 9 hours?!
21:59 masak it's actually been quite a productive Perl 6 day. after the computer ran out of juice, I got time to think.
21:59 masak jnthn: those are buses, not fast trains. and they stop a lot to let people off and change drivers.
21:59 jnthn Ah.
21:59 jnthn Was gonna say, the trains is likely much faster.
22:00 masak they are.
22:00 masak especially the fast ones.
22:00 masak I prefer to do that distance by night if I go by bus.
22:00 jnthn Though probably costs ten times as much or something.
22:00 literal In the U.S. they're dog slow, unfortunately
22:00 masak twice as much or higher.
22:04 jnthn In the U.S. from what I've gathered from being there a bit, trains can be useful for getting into/out of the big cities, but for long distance you would do them more out of fun than practicality.
22:05 masak I got the same impression from a "Social Collapse Best Practices" talk I listened to the other day.
22:05 masak the US is in for a bumby ride, it seems.
22:05 literal yeah, I took a 14 hour one from NYC to WV once (13 hours), the next time around I drove (7 hours)
22:06 jnthn WV?
22:06 literal er, that "14 hour" wasn't supposed to be there
22:06 literal West Virginia
22:06 jnthn ah, OK
22:06 jnthn When you can drive in half the time of the train, it's a tad depressing.
22:06 literal actually, the only reason I drove the second time was because my train got derailed just before it got to my stop :)
22:07 jnthn epic fail!
22:07 jnthn Not only can they not go fast, but they can't stay on the track. :-)
22:07 literal amtrak--
22:08 jnthn Indeed.
22:08 jnthn Even makes the UK look like a good example.
22:16 jnthn OH NOES I arrive in Sweden just in time for rain.
22:16 masak you can't have everything, I guess.
22:17 literal doesn't it always rain in Sweden anyway?
22:17 literal or was that just Stockholm...
22:17 jnthn masak: Well, it's spring. Rain is kinda normal in this season. :-)
22:18 masak my Chinese friend says it's far too dry here in Sweden.
22:18 jnthn Really?
22:18 jnthn I like dry.
22:18 masak she's biased, though. she's only seen winter so far.
22:19 jnthn It wasn't very dry the days I was in Sweden this winter. :-P
22:19 * masak looks bedwards reluctantly
22:19 masak jnthn: no. I remember. :)
22:19 * jnthn needs to finish cooking before he can sleep
22:19 masak see y'all tomorrow.
22:19 jnthn night
22:24 orafu joined #perl6
22:46 ZuLuuuuuu joined #perl6
23:01 Tene_ joined #perl6
23:02 Tene_ jnthn: ping
23:03 Ehtyar joined #perl6
23:07 Ehtyar joined #perl6
23:17 gilimanjaro joined #perl6
23:46 wknight8111 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo