»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 30 July 2009.
mberends The audience response to pmichaud++'s lightning talk to announce Rakudo * was the highlight of the conference. The first mention of the name got a huge ovation :) It was a total surprise to everyone, and immediately was so right. Just imagine crowd elation. 00:00
colomon :) 00:02
mberends hmm, feather's security certificate expired 2009-06-25: feather.perl6.nl/irc/ 00:10
diakopter sho nuff 00:18
00:20 nErVe joined
sjohnson sup d00dz 00:23
japhb We down with OPP (Other Perl Projects) 00:24
KyleHa Dude. Your NBN reference has left me dumbfounded. 00:28
japhb KyleHa: whyso? 00:30
KyleHa I don't doubt that it's in no small part due to my current mental state. That is, I'm relying pretty heavily on the lizard brain right now, and that's kind of outside its scope. 00:32
japhb heh 00:33
00:42 Guest14794 left, fridim_ left
meppl good night 00:46
00:47 __ash__ joined, __ash__ left 00:49 meppl left 00:51 Jedai joined 00:54 nErVe left
pugs_svn r27896 | kyle++ | [t/spec] Test for RT #67790 01:43
r27897 | kyle++ | [t/spec] tests for RT #67786
colomon rakudo: my @a = gather loop (my $i = 1; $i < 10; $i++) { take $i }; @a.perl.say; 02:28
p6eval rakudo 7717c4: OUTPUT«[10, 10, 10, 10, 10, 10, 10, 10, 10]␤»
colomon rakudo: my @a = gather loop (my $i = 1; $i < 10; $i++) { take +$i }; @a.perl.say;
p6eval rakudo 7717c4: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9]␤»
wayland76 Morning all :) 02:32
colomon morning. don't suppose you understand gather? :) 02:33
I think what I don't understand has something to do with take returning a Capture. But I don't see how the examples in S04 are different than my first gather statement above, yet the results they return correspond to my second example... 02:37
02:38 araujo left
KyleHa If there are tests for it, that might be instructive. 02:39
In that case, you can see how it should work and check to see whether it does work that way.
colomon S04-statements/gather.t 02:40
Huh. That just leaves me more confused, actually. 02:41
rakudo: my @a = gather for 1..10 -> $i { take $i }; @a.perl.say; 02:42
p6eval rakudo 7717c4: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]␤»
colomon Yup, I totally do not get why this is different than the first loop statement version.
Ah, looks like RT #63634 is gather doesn't work with while -- wonder if loop is the same bug? 02:43
KyleHa I was just about to say that. 02:44
rakudo: my @a = gather { loop ( my $i = 1; $i < 10; $i++ ) { take $i } }; say @a.perl; 02:45
p6eval rakudo 7717c4: OUTPUT«[10, 10, 10, 10, 10, 10, 10, 10, 10]␤»
KyleHa rakudo my @a = gather loop ( my $i = 1; $i < 10; $i++ ) { my $x = $i; take $x; }; @a.perl.say; 02:46
rakudo: my @a = gather loop ( my $i = 1; $i < 10; $i++ ) { my $x = $i; take $x; }; @a.perl.say;
p6eval rakudo 7717c4: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9]␤»
KyleHa Yep. It's a bug. 02:47
colomon Also RT #62178?
I'm not good at searching RT yet.
KyleHa Well, that one was merged with the other one you found, so yes.
It would be good to note that the bug also affects 'loop'. I suspect the patch to fix it will fix them both, but I'm hardly learned enough to know. 02:48
colomon Is noting that as simple as sending an e-mail to rakudobug with 63634 in the subject line? 02:49
I can add a test for it.
KyleHa That would be awesome. testing++ 02:50
It is as easy as sending an email, but I think the subject has to be a little more specific, and I'm not sure it's to rakudobug.
I can find out for sure in just a moment...
It's [email@hidden.address] with a subject that has "[perl #62178]" in it. 02:52
pugs_svn r27898 | colomon++ | Added "todo" test for gather/take with loop. 02:56
colomon KyleHa++
I'll take care of the e-mail, too, then go to bed.
02:57 PZt joined
colomon Actually, wait -- is the current number 63634 or 62178? Which was merged into the other? 02:58
KyleHa We usually merge later tickets into earlier ones. That's true with these two also. The 63k was merged into the 62k.
colomon Okay, done. 03:00
pugs_svn r27899 | colomon++ | RT #63634 was merged into RT #62178, change the "todo" comments to reflect this.
KyleHa I looked at the test and didn't even notice that. 8-) 03:01
colomon Good night!
KyleHa Good night! 03:02
03:05 nihiliad joined 03:07 ginkgo joined
ginkgo ?eval say "hi" 03:07
03:08 ginkgo left 03:14 KyleHa left 03:20 donaldh left, donaldh joined 03:32 Limbic_Region left 03:36 sri_kraih_ joined 03:37 sri_kraih left 03:43 kane_ left 03:59 alester joined
pmichaud good morning, #perl6 04:01
wayland76 Good localtime() :) 04:11
Have you recovered yet?
pmichaud no. 04:16
well, yes.
well, it depends.
I just got home about an hour ago. Probably will have a messed up sleep schedule for a few days. But then I always have a messed up sleep schedule, so....
04:34 mofino left, Hale-Bopp left, japhb left, gbacon left, jiing left, Aisling left, zol joined, mofino joined, Aisling_ joined
pmichaud (sigh) we're getting lots of spectest fails on my machine 04:38
04:39 jiing joined
pmichaud in lives_ok { $test6 = Quux.^bar}, 'class attribute accessible via ^name'; 04:42
argg
in t/spec/S12-attributes/class.t we have
lives_ok { $test6 = Quux.^bar}, 'class attribute accessible via ^name';
....huh?
(reading spec) 04:46
okay, I can see that. 04:47
In general it looks to me like we're getting far too many "lives_ok" and "eval_dies_ok" tests in the suite.
I'd prefer to just #?rakudo skip things that don't work. 04:48
pugs_svn r27900 | pmichaud++ | [t/spec]: Fudge a couple of failing .HOW-related tests in meta-class.t. 05:01
r27901 | pmichaud++ | [t/spec] Rakudo fudge (regress) some tests in S12-enums/basic.t 05:04
r27901 | pmichaud++ | that have been failing for a few weeks.
05:10 SmokeMachine joined 05:20 Jedai left 05:39 missingthepoint joined
missingthepoint howdy all 05:40
i've a question... how can one do a use_ok()-type call currently? 05:41
(i'm trying to bend Test.pm to my will and not having much success ;) 05:42
05:50 orafu left 05:51 orafu joined 05:57 nihiliad left
wayland76 I was wondering the same thing as missingthepoint the other day, but never did find out 06:10
missingthepoint wayland76: it seems use errors aren't caught by try blocks. i don't know if this is according to spec. 06:19
(in rakudo) 06:20
06:26 Eevee left 06:34 alester left
missingthepoint ah, eval 'use ...' or die "caught: $!" does what I want. 06:36
wayland76 Thanks! I'll keep that in mind
missingthepoint no problem... i think try {} not handling use exceptions is a rakudobug, will submit unless you can tell me otherwise :) 06:37
06:40 dduncan joined, dduncan left
wayland76 missingthepoint: it's probably a rakudobug, but just check whether it's a control exception or not -- try/catch doesn't work on control exceptions 07:02
07:20 donaldh left 07:21 donaldh joined 07:22 nperez joined
nperez ping 07:23
mberends nperez: pong
07:24 japhb joined
nperez so I was curious about select() in rakudo 07:24
mberends not yet implemented, unfortunately, otherwise people would be busy porting POE and stuff already 07:25
nperez I'd like to work on a naive port of POE to rakudo but I am not finding select, heh
mberends hah
nperez so what is the level of effort required
I'd like to work on it
does select() exist in parrot land and it merely needs to be abstracted up in rakudo? 07:26
mberends nperez: it's probably quite tough, because the IO classes are tricky. Yep, it's Parrot work that may be incomplete. You'd have to confirm first whether Parrot has a select()-ish feature. I dunno. 07:27
nperez acknowledged 07:28
mberends well select() is not where you expect to find it in docs.parrot.org/parrot/latest/html/...e.pod.html 07:31
07:32 abra joined 07:39 Su-Shee joined
Su-Shee good mornings stars and starlets. :) 07:39
mberends gute morgen :) 07:41
Su-Shee mberends: is this actual german? :) if so - read the rakudo announcement on heise.de? 07:44
huf_ isnt that "guten"? 07:45
or... wait
mberends I hack german, because I'm dutch. I helped lichtkind++ with some de->en translation of his Perl 6 Tablets. We met in Lisbon too.
07:45 huf_ is now known as huf
Su-Shee mberends: ah. I've placed your name at the coast anyway. :) 07:46
07:47 Khisanth left
mberends reads the 'Fr􏿽xFChjahr 2010' article :) 07:47
wayland76 Früh = ??? 07:51
mberends early, (Spring)
Su-Shee wayland76: german spring is literally "early in the year" ;) 07:52
wayland76 Ok
missingthepoint I think the German was kind to Pm... he wanted it somewhat imprecise :) 07:53
wayland76 Yeah, I figured :). I figured out the "jahr" part somehow (no idea how), but the rest was beyond me :)
07:53 molaf joined
missingthepoint wayland76: force-fed German in primary school like me? 07:54
wayland76 No, never studied any German at all :) 07:55
missingthepoint your loss ;)
wayland76 But have picked up little bits of Old English, and other bits and pieces along the way :)
Su-Shee yes! all this nice grammar and inflection! ;)
wayland76 Well, I got French instead (although only in secondary school)
Anyway, I'm being called for food. afk& 07:56
huf Su-Shee: dont forget nouns with genders.. that part pissed me off always
Su-Shee huf: weren't you hungarian? 07:57
huf yeah
we have even less gender in the language than english
no he/she distinction
Su-Shee huf: yeah, because after doing your inflection style, there wasn't much left for other parts of grammar. ;)
huf oh, believe me we could put a lot of shit in :) but not genders. that is insane. 07:58
Su-Shee I had hungarian lessons for a few weeks.
huf how is a table or some cheese more male than not? does this make any sense to you?
this was a large part of my problem with hebrew too 07:59
Su-Shee huf: ask the greek and romans, we have more or less adopted their gender roles.
mberends the heise.de article has 110 comments, too much to quickly peruse, there are supporters and detractors there.
Su-Shee mberends: ah, yes. I see. I usally avoid reading comments - better for my health. ;) 08:00
mberends: half of it is stupid crap anyway. grr. 08:01
mberends yes, the backlogs on perlgeek.de are enough. it was just some curiosity about the wider public perception, that Rakudo * also aims to address. 08:02
Su-Shee yeah, under that impression it's interesting indeed.
"who needs this old crap" "perl is garbage anyway" "programming language x is cleaner/faster/better" ;) 08:03
moritz_ 'morning 08:04
Su-Shee hi moritz. :)
mberends hi moritz_, have you seen www.heise.de/developer/news/foren/S...3655/list/ ? 08:05
Su-Shee Now I'm angry again. :) "Perl 6 isn't Perl" 08:07
moritz_ mberends: not the comments, no
08:07 charsbar left
Su-Shee moritz_: if you care for your blood pressure: don't. ;) 08:07
08:08 charsbar joined
moritz_ Su-Shee: I'm youg enough not to care too much for my blood pressure 08:09
Su-Shee reading comments will change that fast. ;) 08:10
mberends We must be realistic and acknowledge the valid points other people make. Kool-Aid will not sustain us. Good working code is the best weapon, and that's what we'll have by April. 08:12
Su-Shee I've started to ask friends and fellow developers what would convince them to give perl 6 a try. interestingly, they all "somehow" liked perl5 and seemed to be very open minded for a more modern perl version. so, that's something to emphasize. 08:15
mberends you can try a lot of Perl 6 on a Perl 5 system: search.cpan.org/search?query=perl6&...ode=module 08:18
Su-Shee mberends: yeah, but rakudo works really well for quite some time and is no problem under Linux, so I usally recommend rakudo. 08:21
mberends agreed. the Perl 6->5 efforts are for certain scenarios: 1. company policy 2. existing code 3. functionality (DB etc) 4. speed 08:23
Su-Shee the speed thing is sadly the first thing you notice. 08:24
mberends Moose is also doing an excellent job of providing a semantically compatible object system. 08:26
08:27 araujo joined
Su-Shee Moose is really nice, I've just started to read up with Dave Rolsky's documentation and to experiment a little. 08:27
on the other hand.. I can have Rakudo now.. :) 08:28
08:31 Jedai joined 08:35 zamolxes joined
colomon I've kept on bumping into the speed thing all week. Seems like Rakudo is routinely at least 100x slower than you'd like it to be. 08:48
08:49 kane_ joined
colomon One script I wrote was 5000x times slower than the Perl 5 version. :( 08:49
Su-Shee "oh yeah." :) 08:50
mberends Improving speed is also on the roadmap for Rakudo * and there are known bottlenecks due to be fixed soon according to pmichaud++ and jnthn++, and they always deliver what they promise :) 08:53
missingthepoint something interesting i read recently re: the speed issue: awarth.blogspot.com/2009/01/use-of-...g-new.html
(meta, links to another paper but has insightful commentary)
08:55 tann joined
Su-Shee mberends: I wasn't really complaining, I'm sure it'll be fixed in time. 08:55
missingthepoint 404, sorry... www.sics.se/~joe/pubs/prac_appl_prolog.ps seems to work :)
08:55 fridim_ joined
colomon mberends: I understand there are plans to deal with it. It's just that from my perspective playing around with Rakudo, the biggest thing stopping it from feeling like a "real" tool today is the speed. 08:58
08:58 Jedai left
colomon That's actually an amazing testament to all the work done in the last six months! 08:59
missingthepoint colomon: true
pleasant remainder-of-day to you all :) 09:02
09:02 missingthepoint left 09:05 eMaX joined
mberends Not only the (lack of) speed hurts, also the amount of memory used bothers me. It seems to be a consequence of continuation passing style, and not using stacks. The heap is used instead, and that is expensive. The consolation will be that while very simple algorithms will take longer, we get far more powerful algorithms (eg hypers, laziness) that boost our more complex applications. Much of that is not yet implemented, unfortunately. 09:06
moritz_ mberends: I think it's more that everything is boxed 09:08
09:09 zamolxes left
mberends moritz_: also that, yes. 09:10
09:13 hanekomu joined
wayland76 The thing that makes it not feel like a real tool to me is the Null PMC errors :). But those will be fixed in time :) 09:20
09:21 hanekomu left, hanekomu joined 09:28 eMaX left, eMaX joined 09:29 hah joined 09:30 abra left 09:32 hanekomu left 09:33 hanekomu joined 09:35 tann left 09:51 zamolxes joined
pugs_svn r27902 | mberends++ | slides for "Perl 6 for Perl 5 Programmers" from YAPC:EU 2009, Lisbon 10:05
10:23 kane_ left 10:25 xinming left, Whiteknight joined 10:54 morenel joined 11:20 donaldh left, donaldh joined 11:30 meppl joined 11:45 zamolxes left
colomon wayland76: But that's kind of what I'm getting at -- for me, I'm only getting occasional Null PMC errors, and only when I try something "out there". The speed stuff is every time I try a program with a good-sized loop. 12:00
wayland76 Hmm. Well, I'm working on maybe 5 programs, and at least 3 of those are stuck on null PMCs 12:01
I suspect a difference in programming styles 12:02
(Which is fine, of course :) )
12:08 KyleHa joined
KyleHa I've always had the spectest fail on S12-attributes/class.t and S14-roles/basic.t, and I'm wondering if there's something my system is missing. They pass everything fine and then barf on exit. 12:17
12:18 Front_slash joined
moritz_ KyleHa: it fails for everybody 12:19
KyleHa Oh. Well, that explains it.
moritz_ it's the so-called "inferior run-loop" problem
KyleHa Too many croaking evals. Ribbit. 12:20
Is there a way to tell 'make spectest' how many jobs to run? 12:23
moritz_ in the TEST_JOBS env variable, iirc 12:24
yes
KyleHa Yep, that seems to work. 12:25
moritz_ KyleHa: do you have your commit bit yet? 12:26
KyleHa Not that I know of.
moritz_ when you go to github.com/rakudo/rakudo/ and see a "Your Clone URL", you have it ;-) 12:27
KyleHa That's good to know; I was wondering how I could tell that. 12:28
12:29 lisppaste3 left
KyleHa It says "Clone URL", but not 'Your'. 12:29
12:29 lisppaste3 joined
moritz_ then pmichaud++ hasn't added you 12:29
KyleHa He's a busy man. 12:30
moritz_ right; let's remind him when he's back online ;-)
KyleHa *nod* 12:31
colomon wayland76: Crazy!
wayland76: I haven't had a Null PMC that I couldn't work around in five minutes or so. Usually they just make me do something elegantly rather than extremely elegantly. :) 12:32
wayland76 phenny: tell pmichaud KyleHa needs a commit bit on github
phenny wayland76: I'll pass that on when pmichaud is around.
wayland76 lambdabot: @tell pmichaud KyleHa needs a commit bit on github
lambdabot Consider it noted.
wayland76 Thaqt should cover it :)
moritz_ wayland76: he, don't spam him ;-)
phenny: tell pmichaud github id is 'kyleha' 12:33
phenny moritz_: I'll pass that on when pmichaud is around.
moritz_ .o( let me do that ;-)
wayland76 lambdabot: @tell phenny Do bots talk to bots?
lambdabot Consider it noted.
wayland76 phenny: tell lambdabot do bots talk to bots?
phenny wayland76: I'll pass that on when lambdabot is around.
lambdabot phenny: You have 1 new message. '/msg lambdabot @messages' to read it.
phenny lambdabot: 12:33Z <wayland76> tell lambdabot do bots talk to bots?
wayland76 Ok, they do :) 12:34
wayland76 refrains from setting up infinite loops and things
moritz_ wayland76: since lambdabot doesn't deliver the message directly, it's a bit hard
wayland76 phenny: tell lambdabot @messages 12:35
phenny wayland76: I'll pass that on when lambdabot is around.
moritz_ oh.
wayland76 FSVO "hard" :)
moritz_ FSVO of "moritz stupid" ;-) 12:37
rakudo: my $a = any({ .say }, { say $_ x 2}); $a('foo') 12:38
p6eval rakudo 7717c4: OUTPUT«foo␤foofoo␤»
moritz_ rakudo++
pugs_svn r27903 | kyle++ | [t/spec] mark some infinite loop skip fudges as "noauto" for autounfudge.pl 12:40
moritz_ KyleHa: ah, I didn't bother with that, because I use the autounfudge.pl from the autounfudge-with-limits branch 12:41
which has a CPU time limit
KyleHa Will that ever be merged into master? 12:42
moritz_ that's a good question
it's a rather crude hack
something of which I'm not proud at all
KyleHa Sounds useful anyway. 8-) 12:43
I tried autounfudge just to get to know it, and it had about 4G of memory when I gave up on it. 12:45
moritz_ yes, memory limit is also done in that branch ;-)
t/spec/S06-operator-overloading/method.t looks rather broken
I can't find the spec that says that prefix operators can be methods 12:46
12:47 fridim_ left
moritz_ rakudo: for 1..10 { .say; last } 12:48
p6eval rakudo 93f2fc: OUTPUT«1␤»
KyleHa rakudo: my List $x = <1 2 3>; say $x.WHAT; 12:50
p6eval rakudo 93f2fc: OUTPUT«Array()␤»
KyleHa That surprises me.
moritz_ Array ~~ List
rakudo: say Array ~~ List
p6eval rakudo 93f2fc: OUTPUT«1␤»
KyleHa rakudo: say List ~~ Array 12:51
p6eval rakudo 93f2fc: OUTPUT«0␤»
KyleHa Fair enough.
colomon Does that mean an Array is a kind of List? 12:52
KyleHa Other way. A list is a kind of Array.
moritz_ no, colomon was correct 12:53
an Array is a List that is also mutable
it adds behaviour to the List
KyleHa I'm surprised again!
I guess I expect the Array to 'be' the List just by forbidding the operations the List does not support. 12:54
moritz_ actually it's a bit more complicated even 12:55
List is a (parametric) role
I think that Array is also a role
and Array does List 12:56
and List does Positional
and Everybody is Surprised
colomon I don't know how much Perl 6 follows the Lyskov Substitution Principle, but that's what makes sense here. Any function that expects a List should work just fine on an Array. But vice versa wouldn't work.
moritz_ colomon: we do know about Liskov, and try not to surprise her ;-) 12:57
colomon (Not sure how well these definitions fit with my intuitive non-Perl sense of what those terms mean, mind you.)
Yeah, not following Liskov is one of the things that makes me want to smack programmers whose code I have to work with.
Ugh horrible syntax. I mean, I try to follow it strictly. But I have to use code which doesn't, and I hate it. 12:58
12:58 pancake joined 13:00 JimmyZ joined
pugs_svn r27904 | moritz++ | [t/spec] remove eval from last.t; vim modelines 13:00
13:02 pancake left
pugs_svn r27905 | kyle++ | [t/spec] More types tests from moritz++ on IRC 13:02
KyleHa Moritz, could you confirm that my test descriptions are correct?
moritz_ KyleHa: they are fine 13:03
KyleHa Thanks!
moritz_ git-rebase -i kinda surprises me 13:04
I have to tell it the last revision that I leave unchanged
not the first I want to change
that feels... odd
how do you rebase the first commit, then? 13:05
13:07 xinming joined
KyleHa I think { $p ?? $t !! $f } makes more sense anyway, whether one wanted to steal the colon for something else or not. 13:10
moritz_ ah, you read the presentation ;-)
I agree; but it took me quite some time to get used to it
and many still do it wrong 13:11
KyleHa I'm part way through it...
moritz_ std: 1 ~~ Seq 13:12
p6eval std 27903: OUTPUT«ok 00:02 37m␤»
13:12 fridim_ joined, fridim_ left
KyleHa This might be improved slightly by references to the Syn whence each frame comes. 13:14
moritz_ well, the presentation is mostly meant for those that were at YAPC 13:17
most of them didn't have the synopsis available at that time anyway
if it were a scientific talk I'd agree
KyleHa Either way, it totally lives up to the hype. 13:19
moritz_ aye
mberends++
JimmyZ Hello, #perl6
pugs_svn r27906 | moritz++ | [t/spec] remove a duplicate test and some evals 13:20
moritz_ hi JimmyZ 13:21
KyleHa autounfudge has 4.2G of memory again. It's nice to have 8G. 13:22
moritz_ ;-)
13:27 M_o_C joined
colomon Does that +- operator (in the talk) work currently in Rakudo?! 13:37
13:46 maja left 13:47 JimmyZ left 13:50 maja joined 13:55 hercynium left
mberends aw, thanks guys :) it's a pity there's no audio. colomon, you can define your own unicode operator to make it work. 14:02
rakudo: sub infix:<􏿽xB1> ($l, $r) { $l-$r | $l+$r }; my $a = 5 􏿽xB1 2; if $a == 3 { "HAZ 3".say } if $a == 7 { "HAZ 7".say } 14:03
p6eval rakudo c13df6: OUTPUT«HAZ 3␤HAZ 7␤»
colomon rakudo++ mberends++
Every time I see someone diss operator overloading I want to hit them. 14:04
Just saw a big article arguing "How often do you need to define a class that can really justifiably overload operator +?" 14:05
But that's the wrong question -- should be "How often do you use a class that really justifiably should overload operator +?"
And for me the answer is pretty much every day.
mberends indeed. btw, your Texas +- is also ok: 14:06
sub infix:<􏿽xB1> ($l, $r) { $l-$r | $l+$r }; my $a = 5 􏿽xB1 2; if $a == 3 { "HAZ 3".say } if $a == 7 { "HAZ 7".say }
gah
KyleHa Why's it called "Texas"?
mberends big and crude
KyleHa Heh. 14:07
mberends sub infix:<+-> ($l, $r) { $l-$r | $l+$r }; my $a = 7 +- 2; if $a == 5 { "HAZ 5".say } if $a == 9 { "HAZ 9".say }
colomon Thought it might. Sweet!
mberends rakudo: sub infix:<+-> ($l, $r) { $l-$r | $l+$r }; my $a = 7 +- 2; if $a == 5 { "HAZ 5".say } if $a == 9 { "HAZ 9".say }
p6eval rakudo c13df6: OUTPUT«HAZ 5␤HAZ 9␤»
colomon Somehow I was under the impression that neither operator overloading nor unicode functions really worked yet. Apparently I was wrong! 14:08
mberends more than in almost every other language, Perl 6 operators are just syntactic sugar for subroutines :) 14:09
KyleHa Defining one's own operators has worked for quite a while. I recall it being demonstrated at YAPC::NA a year ago.
colomon (Now contemplating defining a 3D vector class just to do cross and dot products with the proper symbols...)
mberends colomon++: it should be no problem, just a small matter of programming the algorithm ;) 14:10
14:10 cogno joined
colomon And figuring out how to do Unicode in my editor. (Which should also be simple, admittedly.) 14:11
mberends colomon: what OS do you use?
colomon OS X on this machine. Well, and Windows XP on this machine as well. 14:12
Also have 64-bit VIsta and three different Linuxes running in the house.
I'm sure TextMate can do Unicode, I just don't know the magic invocations to get it. 14:13
KyleHa Sometimes there's a "character map".
cogno colomon, I tought texmate did Unicode by default 14:14
mberends oh wow. my ubuntu has character map tool, also right-alt + anotherkey does a few (aka AltGr). 􏿽xAB is AltGr+z and 􏿽xBB is AltGr+x. 14:15
KyleHa I think I'd just as soon use Texas style as figure out how to type Unicode. 14:16
14:17 nihiliad joined
mberends AltGr+qwertyuiop gives @łe¶ŧ←↓→øþ 14:18
KyleHa The "cartoon cursing" operator?
mberends heh :)
cogno With texmate that should not be difficult to add macros to generate appropriate Unicode chars 14:19
colomon rakudoL:+
whoops.
moritz_ on the german keyboard AltGr+y -> « 14:20
colomon rakudo: sub infix:<⋅>($a, $b) { return [+]($a <<*>> $b); }; say (1,2,3)⋅(3,4,5);
p6eval rakudo c13df6: OUTPUT«26␤»
moritz_ on the german keyboard AltGr+x -> »
colomon rakudo++
That's pasted from TextMate (don't know how to enter Unicode in my IRC client, either!).
moritz_ maybe it's AltGr + any< z x > on the US keyboard
colomon Edit / Special Characters brings up a tool for entering funky characters. And apparently Unicode is on by default. 14:21
reppie there's no AltGr on US keyboard :)
moritz_ well, on linux you can always use compose + < + < 14:22
colomon Cross product works as well, though it's a bit long to enter as a one-liner here. 14:29
mberends colomon++
colomon I need to get to real work, but I was serious about working on a vector class -- worth it just for the fun of finally having the proper notation available.
M_o_C <@moritz_> on the german keyboard AltGr+y -> «: On Linux that is? 14:30
moritz_ M_o_C: yes
M_o_C Btw, is unicode character support specced as required or optional? 14:32
moritz_ required.
mberends colomon: a vector class would be very handy, there are already some svg tools to render output to a browser.
moritz_ wonders if how sensible it would be to port a C++ linear algebra library with expression templates to Perl 6 14:33
s/if// 14:34
mberends moritz_ it may not be sensible, but do it anyway ;)
en.wikipedia.org/wiki/Compose_key 14:35
colomon mberends: Can you point me where I'd need to look? I was thinking 3D math because that's my day job, but if I can help product something useful and teach myself more Perl 6 at the same time, that would be pretty worthwhile IMO.
moritz_: What C++ library?
moritz_ colomon: I was thinking of eigen2 14:37
colomon moritz_: I'm not familiar with that, looks interesting.
Su-Shee vector classes? wrap cairo. 14:38
mberends colomon: github.com/perl6/perl6-examples/tre...04/lib/SVG and github.com/masak/svg/tree/master
colomon mberends: are those two forks of the same package or two different packages? 14:40
mberends masak++ is drawing 3D perspective in his Druid game as well, you may be able to collaborate with him. Those are all separate projects. 14:41
afk & 14:42
14:52 Psyche^ joined 14:56 Chillance joined 15:02 cogno left 15:03 Patterner left, Psyche^ is now known as Patterner 15:13 JimmyZ joined 15:18 Khisanth joined 15:20 donaldh left, Khisanth left 15:21 donaldh joined 15:27 whoisthatgoksie joined 15:28 KyleHa left
whoisthatgoksie hi 15:31
join perl6 15:32
15:37 Khisanth joined 15:39 Khisanth left 15:56 Khisanth joined 16:11 pmurias joined 16:12 Khisanth left 16:13 Khisanth joined, codeacrobat joined 16:14 Khisanth left
codeacrobat hi can anyone update the tutorial links on perl6.org, they all point to nirvana e.g. perl6.org/doc//books/tutorial/ch01_overview.html 16:15
16:20 kane_ joined
JimmyZ see perl6-projects.org/ 16:29
pugs_svn r27907 | pmichaud++ | [t/spec]: Fudge out some tests that have regressed for a while
moritz_ RT #68318 looks invalid to me 16:30
16:34 aindilis joined 16:36 Khisanth joined
moritz_ replied, rejected. 16:38
ENODALEK 16:39
16:46 alester joined 16:47 Khisanth left
codeacrobat @JimmyZ what has perl6-projects.org/ to do with perl6.org link errors? 16:50
lambdabot Unknown command, try @list
phenny lambdabot: 12:35Z <wayland76> tell lambdabot @messages
codeacrobat @JimmyZ what has perl6-projects.org/ to do with perl6.org link errors? 16:51
16:51 Guest14327 joined
pugs_svn r27908 | moritz++ | [t/spec] remove some incorrect tests from unicode.t 16:52
r27909 | moritz++ | [t/spec] removed useless eval
JimmyZ codeacrobat: perlcabal.org/svn/pugs/browse/docs/tutorial 16:53
codeacrobat JimmyZ:I know about the tutorials. I just think it is bad pr if you google for perl6 and tutorial and end up with dead links... 16:55
JimmyZ ahh
codeacrobat at least a link to the proper location should be placed on perl6.org
moritz_ I don't know who maintains perl.org, but it doesn't seem to be a community project 16:57
I'd really like to establish perl6-projects.org as *the* central website for Perl 6 stuff
and also replace dev.perl.org/perl6/ which is mostly out of date
Su-Shee moritz_: already planned for that.
JimmyZ perl6.org is out of date. 16:58
moritz_ Su-Shee: one step closer to world domination? ;-)
cognominal we should learrn from haskell.org
Su-Shee moritz_: already have half of a design, better suited for extensability.
16:58 kane_ left
Su-Shee moritz_: I want the success of Perl 6. :) 16:58
JimmyZ Su-Shee: Everyone here does. 16:59
16:59 aindilis left
Su-Shee JimmyZ: well that's no surprise :) 17:00
JimmyZ Su-Shee: ;)
JimmyZ must sleop 17:01
good night
17:01 JimmyZ left
Su-Shee moritz_: I've planned a very plain and easy/fast to read startpage and a better separation of interesting subjects and a dedicated list of business reasons to use perl 6. 17:01
moritz_: think of the demans "show me - real examples" "tell me - how to do business" - "give me - the source" "read me - some documentation" and so on. 17:02
demands.
17:03 dukeleto joined
dukeleto howdy 17:03
pugs_svn r27910 | kyle++ | [t/spec] Convert todo+lives_ok to skip 17:04
17:07 KyleHa joined 17:08 Guest14327 left 17:09 Guest14327 joined 17:13 kane_ joined 17:25 arnsholt left, Guest14327 left
KyleHa I have a commit to add a "# vim: ft=perl6" line to every t/spec .t file that doesn't have one. It changes some 400 files. Any reason I should hold it? 17:29
17:37 goksie joined 17:40 SmokeMachine left, frew joined 17:42 dukeleto left
mberends KyleHa: you can count on my forgiveness ;) 17:42
17:45 frew left, frew joined 17:50 goksie left
KyleHa May revision control have mercy on my soul. 18:33
pugs_svn r27911 | kyle++ | [t/spec] Add vim: lines everywhere. 18:35
r27911 | kyle++ |
r27911 | kyle++ | perl -e 'my %h;@h{`grep -rl "use v6" t/spec`}=();delete @h{`grep -rl "vim:" t/spec`};print keys %h'
r27911 | kyle++ | | grep '\.t$'
r27911 | kyle++ | | xargs perl -pi -e 'if (eof) {print "$_\n# vim: ft=perl6\n";$_=""}'
18:36 fredrecsky joined 18:38 codeacrobat left 18:44 Su-Shee left 18:46 masak joined, masak left
pmichaud moritz_: At YAPC::EU I asked TimToady++ about replacing dev.perl.org/perl6/ with a link to perl6-projects.org, and he thought it was a good idea. 18:47
phenny pmichaud: 12:32Z <wayland76> tell pmichaud KyleHa needs a commit bit on github
lambdabot pmichaud: You have 4 new messages. '/msg lambdabot @messages' to read them.
phenny pmichaud: 12:33Z <moritz_> tell pmichaud github id is 'kyleha'
pmichaud I'll see if I can do that this weekend.
18:47 Khisanth joined
pmichaud 'kyleha' added as committer to rakudo github repo 18:48
KyleHa Woohoo!! Thank you pmichaud++ 18:52
It works! 18:55
18:58 alester left 19:01 Khisanth left 19:03 Guest17110 joined, maja_ joined 19:10 Guest17110 left
nperez to reiterate from last evening, I'd like to help on the implementation of something select-like. The current IO spec had select() (both forms) removed. What is the plan for doing synchronous I/O multiplexing? 19:11
currently, parrot has an implementation to poll a socket
19:20 donaldh left, maja left, donaldh joined 19:24 Front_slash left 19:25 fredrecsky left 19:28 kane_ left, kane_ joined 19:29 Guest82420 joined
mberends nperez: glad to see you continuing :) 19:31
moritz_ nperez: I think wayland76 and ruoso did some of the IO design - maybe ask them
nperez Acknowledged 19:32
is there a message bot?
moritz_ nperez: yes. 'phenny, tell $nick $message' 19:33
nperez phenny, tell wayland76 I am interested what the plan is for polling io handles (ie. select(2)) and am willing to be guided/mentored to do the work 19:34
phenny nperez: I'll pass that on when wayland76 is around.
mberends nperez: you could try to make a proof-of-concept code example that exercises the Parrot code inside a Rakudo Q:PIR{ } block, and nopaste it at a time when many potential helpers are around. Search the Rakudo source files (eg in the setting) for Q:PIR examples. 19:35
nperez right. just not sure where the function should live since the spec explicitly says it was removed 19:36
mberends nperez: that's why an unspecced implementation helps to explore what a future spec might say about it. 19:37
pmichaud nperez: I'd go ahead and build something that meets your expectations about what you want things to look like
you'll then get feedback from people who say what they don't like about it :) 19:38
nperez heh
pmichaud but we'll at least have something working to start with (more)
nperez well, I'd like to start with the reason select() was removed from the spec in the first place
pmichaud and since you've had a lot of experience dealing with polling io things, you can somewhat bend the design to your will
I suspect the reason for removing select() was something to do with event loop management as a whole 19:39
nperez hrm.
mberends nperez: did you imagine that you'd come in here and start *designing* part of Perl 6 ;-)
nperez mberends, no. I just wanted my trusty old perl5 select :)
pmichaud but whatever the reason, the truth is that there will be a lot of folks coming into Perl 6 who are familiar with select(), so we probably want something that makes at least a bit of sense to them
nperez pmichaud, understood 19:40
pmichaud even if it doesn't turn out to be core, it may be a useful intermediate module
(keeping in mind that we're trying to keep the core small anyway)
nperez Which is doable considering parrot sockets have a poll method
pmichaud exactly.
we may discover that the spec ultimately ends up doing something radically different (more)
we may discover that the spec ends up being silent on async IO, leaving it up to modules to flesh out the details (more) 19:41
but if the spec does ultimately take on the async-IO issues, then it will either be very close to what you design, in which case refactoring will not be too much of an issue, or it will be radically different from what you design, in which case having another way of doing it would be a bonus 19:42
regardless, I think the effort will be helpful and worthwhile.
nperez Okay, that gives me some wiggle room then. I'll start with a class that mimics perl5 IO::Select
pmichaud (especially for someone with your background)
s/for/coming from/
nperez and you give me too much credit. I'm used to working ontop of the abstraction layers, not writing them :) 19:43
but something simple like IO::Select is doable
pmichaud yes, you're used to working on top of abstraction layers, which means you likely know what you wish the abstraction layer did differently :) 19:44
and here's your chance to make it be different :)
or "right". 19:45
but yes, IO::Select should be doable
nperez Okay, let me work on that and I'll let that be the conversation piece. All I really need is select for POE. It can manage the rest (at least the simple parts) 19:46
that's the driver by the way. I'd like to get a naive port of POE on rakudo 19:47
pmichaud that sounds perfect.
Tene nperez: I've been working on and thinking about a POE port. 19:48
nperez Tene, great, I'd like to see what you've been thinking
pmichaud wishes Perl 5 had .comb about now. 19:49
19:49 SmokeMachine joined
Tene I was just recently looking at the lack of select() in Parrot, and I'm planning to work with WhiteKnight to get that in really soon now. 19:49
Whiteknight Tene: I'm around to hack most of the day tomorrow if you want to get started 19:50
pmichaud ooh, nperez++ and Tene++ both working on POE would be an awesome combo
Tene can clearly take care of the parrot bits.
nperez Yeah, what I saw in the parrot source of the poll method on the socket, it should probably be a bit more generic than that and work on any handle like the C version 19:51
I'll be upfront, I am a complete noob on both projects
so educate me when possible :)
pmichaud we will certainly do so
Tene Yeah, also need a way to select() on many handles. 19:52
pmichaud you're much less of a noob on POE than I am, though :-)
mberends I'd like to join this party, as I was interested in porting POE as well ;)
Tene Whiteknight: That might be very possible. I'll need to work it out. i have a visitor at my house right now.
github.com/tene/Doten/tree/master was my first draft 19:53
Doten is the name of an author who imitated Poe
nperez I have some other code I need to do today (clean the MooseX::Method::Signature integration into MooseX::Declare), but after that I be a free set of hands
From my Moose+POE dealings, I have consider that most of the POE concepts should instead be Roles 19:55
considered*
So instead of a proper class for Session, a Role gives you much more flexibility
pmichaud that seems sensible.
(at least to this noob it does :-)
nperez You can see this in action @ github.com/nperez/psm/tree/master 19:56
From there all sorts of POE roles become possible like TCPServer/Client, etc
19:57 Guest82420 left
Tene nods... 19:57
nperez Then for all of the methods you want exposed to the dispatching, you decorate them with traits
Tene That was my plan too.
nperez Okay, gotta run. I'll be back later, no doubt, attempting to write IO::Select and needing guidance 20:01
20:02 Guest82420 joined
pmichaud rakudo: my $a = ({ say 'foo'}); say $a.perl; 20:02
p6eval rakudo 5667dc: OUTPUT«foo␤Bool::True␤» 20:03
pmichaud hmmmm.
20:03 Guest82420 left 20:04 Guest82420 joined 20:05 Guest82420 left 20:07 Whiteknight left
pmichaud rakudo: { say 'foo' }; { say 'bar' }; 20:08
p6eval rakudo 5667dc: OUTPUT«foo␤bar␤»
pmichaud rakudo: ({ say 'foo' }; { say 'bar' })
p6eval rakudo 5667dc: OUTPUT«foo␤bar␤»
pmichaud rakudo: ({ say 'foo' }, { say 'bar' })
p6eval rakudo 5667dc: ( no output )
pmichaud Interesting.
Not quite sure what to do about that one. 20:11
Tene rakudo: (1;1;1)
p6eval rakudo 5667dc: ( no output )
20:12 __ash__ joined, dukeleto_ joined, dukeleto_ left, dukeleto_ joined
pmichaud I guess blocks in a semilist should never be marked as immediate. 20:13
20:14 zamolxes joined 20:15 KyleHa left 20:20 Guest64806 joined 20:21 Guest64806 left
__ash__ is there a way to call a role's method inside a function if you over ride it? gist.github.com/164492 has an example if you want to see what i am referring too 20:21
20:22 hah left 20:25 dukeleto_ is now known as dukelet0 20:31 nacho__ joined
TimToady hey, charlotte airport has free wifi 20:32
20:33 trexy joined 20:36 trexy left 20:50 frew left
dukelet0 TimToady: good to know 20:53
20:57 zamolxes left
TimToady well, better go find our gate... 20:58
bbl &
20:58 stdisease joined
stdisease HI 21:00
21:01 whoisthatgoksie_ joined
stdisease Is the llama6 book still being worked on? I can't check out a draft. 21:01
21:01 frew joined
stdisease It says svn.lohutok.net host not found. 21:04
colomon I've not actually heard it mentioned at all. 21:05
No sign of it in the pugs SVN tree, which is where I would expect it to live these days...
But that may just be a sign of my ignorance. :)
21:12 whoisthatgoksie left
stdisease colomon, hm, why do you expect it to live in pugs's svn? 21:15
colomon That's where the majority of the Perl 6 documentation type things live these days.
The specs live there, the spectests live there, and lots of other documentation and some examples. 21:17
stdisease ah, do I sense Pugs is currently the defacto implementation? I was just about to try the one in parrot instead
colomon No, rakudo is the current default implementation (if such a thing exists). 21:19
stdisease the lack of a recommendation is kind of confusing to a newcomer such as myself
colomon You should try rakudo, for sure. 21:20
Though come to think of it, it's written using parrot, but it's not actually in the parrot distribution any more, is it? 21:21
stdisease Now all is left is to find me some decent documentation/introduction material
It's not?
well this page www.parrot.org/languages lists is 21:22
colomon It's written in Parrot, yes.
But it lives at the web page you get when you click on the Rakudo link on that page, which is its own repository on github. 21:23
stdisease ah so this parrot 'thing' is not centralized
colomon If you scroll down on the Rakudo github page, it explains how to get rakudo and how to build it (fetching and building Parrot automatically). 21:24
But yeah, there are three main places for this at the moment: 21:25
The parrot repository
The rakudo repository
The pugs repository
Each with its own piece of the puzzle.
Specs and such are at pugs, as well as some miscellaneous Perl 6 implementations. 21:26
Rakudo is the most complete implementation at this time, at its own site.
Unless you're interested in hacking Parrot, you can probably ignore that repository and just have Rakudo build what it needs of Parrot.
21:26 morenel left 21:27 rfordinal left
stdisease Hmm, hopefully I have a better overview now, thanks 21:27
colomon BTW, I use perlcabal.org/syn/ for documentation -- but it is very much a spec, not a beginner's guide.
21:27 __ash__ left
colomon When I can't figure out things there, I ask here. 21:27
:0 21:28
:)
stdisease :D
colomon The perlcabal copy of the spec is rebuilt from an updated copy every hour, so is as up-to-date as anything out there. 21:29
21:31 molaf left
stdisease colomon, have you used perl5 before 6? 21:33
21:34 __ash__ joined
colomon Yes. I'm not hardcore like lots of the people here, but I've been using Perl since 1995. 21:34
__ash__ is there a way to call a role's method inside a function if you over ride it? gist.github.com/164492 has an example if you want to see what i am referring too
21:35 mikehh left
stdisease heh, that's longer than the time I've been using computers. I just hope it's possible to directly pick up p6 without having any prior experience with p5, caus' I'd really hate to have to expend energy on that. See I'm also trying to evaluate my options here. 21:40
21:44 frew left
colomon stdisease: I don't think you particularly need to know p5 to learn p6. 21:44
But a lot of the current materials are focused on that direction, on the assumption that they're trying to "convert" p5 programmers.
stdisease Huh - that could be a bit problematic. 21:45
colomon Give me a sec to poke around the pugs repo.
21:47 mikehh joined
stdisease I can't help but compare in this case (havens know how much I'm not into holy wars), but in the case of Python 3.x I can see a `clear road' towards that should I choose that language and stick with it, can't say the same for perl6, perhaps because it isn't official released yet (actually it's not clear to me if that's true or not ATM). 21:47
Keeping in mind I know them both (and other alternatives) equally well = pretty much not at all 21:48
colomon perl6 is not officially released yet. There are plans for a rakudo release in Q2 next year, but even that will not be the full p6.
A big release, that is, there are development releases every month. 21:49
stdisease colomon, will not be full as in doesn't entire implement the spec?
21:49 Whiteknight joined
stdisease *entirely 21:49
colomon Yes.
stdisease Oh, sort of like C++0x
and gcc 21:50
colomon It probably won't have full threading at that point, for instance.
21:50 whoisthatgoksie joined
stdisease But the spec itself is finalized? 21:50
21:51 whoisthatgoksie_ left
colomon Certainly not finalized yet, and I think they're planning on using feedback from the big Q2 Rakudo release to fine tune the spec. 21:51
On the other hand, for lots of stuff Rakudo currently works reasonably well, though slowly. 21:52
21:53 RonOreck left 21:54 RonOreck joined, whoisthatgoksie left 21:55 whoisthatgoksie joined
colomon stdisease: I don't want to sugar coat things. I think p6 is a fantastic language, and I'm deeply enjoying working with it on very small projects right now. 21:58
But if probably won't really be ready for significant projects until sometime next year.
stdisease I'll poke around a bit for now, see how far I can get. 22:01
colomon BTW, the pugs repo does continue a tutorial which is intended for anyone, not just p5 programmers. 22:03
pugs/docs/tutorial
svn co svn.pugscode.org/pugs/docs/tutorial should get it for you. 22:04
stdisease yeah
22:10 braceta joined 22:11 braceta left, braceta joined 22:13 akl joined
colomon So, does anyone out there have an example of overloading "say"? 22:23
For a class, I mean.
Hmmm... or should I overload stringify instead?
22:29 arnsholt joined 22:35 __ash__ left 22:39 tann joined
colomon I think it's overload stringify, but while I can say that, I'm not sure how to do it. 22:44
22:46 carlin joined 22:51 Whiteknight left
tann rakudo: caller.perl; # :) 22:52
p6eval rakudo 5667dc: OUTPUT«Could not find non-existent sub caller␤»
colomon rakudo: 1..10.say; 22:53
p6eval rakudo 5667dc: OUTPUT«10␤»
colomon rakudo: (1..10).say;
p6eval rakudo 5667dc: OUTPUT«12345678910␤»
colomon Hmm... is that calling Range's ~ method internally? 22:54
Str, I mean, looking at the setting file again. 22:55
22:58 dukelet0 left
colomon Sweet! That does it. If I overload method Str on my class, "say" calls it when I try to print out an object of that class. 22:58
rakudo: class A { has $.a }; sub infix<+>(A $x, A $y) { return $x.a + $y.a; }; say A.new(:a(1.0)) + A.new(:a(2.0)); 23:07
p6eval rakudo 5667dc: OUTPUT«Malformed routine definition at line 2, near "infix<+>(A"␤in Main (src/gen_setting.pm:3366)␤» 23:08
colomon rakudo: class A { has $.a }; sub infix:<+>(A $x, A $y) { return $x.a + $y.a; }; say A.new(:a(1.0)) + A.new(:a(2.0))
p6eval rakudo 5667dc: OUTPUT«Parameter type check failed; expected A, but got Num for $x in call to infix:+␤in sub infix:+ (/tmp/XRDot9wc7c:2)␤called from sub infix:+ (/tmp/XRDot9wc7c:2)␤called from Main (/tmp/XRDot9wc7c:2)␤»
23:10 tann left 23:13 stdisease left
jnthn hi - just to let folks know I'm safe and well after my flight away form YAPC. Visiting UK friends at the moment and will be back to Perl 6 stuff on Wed. :-) 23:15
(For a definition of well that involes me actually being quite sick at the moment...but with folks who will care for me, so don't worry :-))
colomon: You probably wanted multi to add a candidate. You just replaced all candidates with that declaration... 23:17
23:17 Limbic_Region joined
colomon rakudo: class A { has $.a }; multi sub infix:<+>(A $x, A $y) { return $x.a + $y.a; }; say A.new(:a(1.0)) + A.new(:a(2.0)) 23:19
23:20 donaldh left
p6eval rakudo 5667dc: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/DKvWmCN4jN:2)␤» 23:20
23:21 donaldh joined
colomon rakudo: class A { has $.a }; sub multi infix:<+>(A $x, A $y) { return $x.a + $y.a; }; say A.new(:a(1.0)) + A.new(:a(2.0)) 23:21
p6eval rakudo 5667dc: OUTPUT«Malformed routine definition at line 2, near "multi in"␤in Main (src/gen_setting.pm:3366)␤»
colomon jnthn++ You said that just in the nick of time to stop me submitting an incorrect bug report. :) 23:22
23:23 stdisease joined 23:24 stdisease left
jnthn colomon: The fact it doesn't work even as a multi is a (known and already reported) Rakudo bug though. :-( 23:37
jnthn is tired and flu-ish...sleep 23:38
23:39 Whiteknight joined 23:51 __ash__ joined