»ö« | 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
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
meppl good night 00:46
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
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.
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
ginkgo ?eval say "hi" 03:07
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....
pmichaud (sigh) we're getting lots of spectest fails on my machine 04:38
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.
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
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
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
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
nperez ping 07:23
mberends nperez: pong
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
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.
Su-Shee mberends: ah. I've placed your name at the coast anyway. :) 07:46
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 :)
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
Su-Shee moritz_: if you care for your blood pressure: don't. ;) 08:07
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
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
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
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)
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 :)
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
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
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
mberends moritz_: also that, yes. 09:10
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
pugs_svn r27902 | mberends++ | slides for "Perl 6 for Perl 5 Programmers" from YAPC:EU 2009, Lisbon 10:05
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 :) )
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
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
KyleHa It says "Clone URL", but not 'Your'. 12:29
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
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
pugs_svn r27904 | moritz++ | [t/spec] remove eval from last.t; vim modelines 13:00
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
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␤»
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_ ;-)
colomon Does that +- operator (in the talk) work currently in Rakudo?! 13:37
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
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
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
whoisthatgoksie hi 15:31
join perl6 15:32
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
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
moritz_ replied, rejected. 16:38
ENODALEK 16:39
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
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.
Su-Shee moritz_: I want the success of Perl 6. :) 16:58
JimmyZ Su-Shee: Everyone here does. 16:59
Su-Shee JimmyZ: well that's no surprise :) 17:00
JimmyZ Su-Shee: ;)
JimmyZ must sleop 17:01
good night
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.
dukeleto howdy 17:03
pugs_svn r27910 | kyle++ | [t/spec] Convert todo+lives_ok to skip 17:04
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
mberends KyleHa: you can count on my forgiveness ;) 17:42
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";$_=""}'
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.
pmichaud 'kyleha' added as committer to rakudo github repo 18:48
KyleHa Woohoo!! Thank you pmichaud++ 18:52
It works! 18:55
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
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
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
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
pmichaud rakudo: my $a = ({ say 'foo'}); say $a.perl; 20:02
p6eval rakudo 5667dc: OUTPUT«foo␤Bool::True␤» 20:03
pmichaud hmmmm.
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 )
pmichaud I guess blocks in a semilist should never be marked as immediate. 20:13
__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
TimToady hey, charlotte airport has free wifi 20:32
dukelet0 TimToady: good to know 20:53
TimToady well, better go find our gate... 20:58
bbl &
stdisease HI 21:00
stdisease Is the llama6 book still being worked on? I can't check out a draft. 21:01
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. :)
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.
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.
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
stdisease colomon, have you used perl5 before 6? 21:33
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
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
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.
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?
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.
stdisease But the spec itself is finalized? 21:50
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
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
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?
colomon I think it's overload stringify, but while I can say that, I'm not sure how to do it. 22:44
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
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)␤»
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
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
p6eval rakudo 5667dc: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/DKvWmCN4jN:2)␤» 23:20
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
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