»ö« | 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.
00:00 unitxt left 00:02 unitxt joined, angelixd left 00:05 jonjj joined
jonjj japhb: actually my complain is basically that if i use only certain parts of perl6 grammar will i be paying a parsing cost ?? this a problem with perl5 too, parsing a perl5 file has an additional cost even if it is a simple 50 line script. its the principle from c++ if i dont use it will it affect me ?? 00:07
if i can expliciltly disable subparts of perl6 grammar by "use statements" then i think the would be solved ... 00:11
00:16 plarett left 00:19 jonjj left 00:23 PZt left 00:31 alester_ joined 00:44 c1sung left 00:46 damyan^ left, krunen left, dukeleto left, japhb left, rhr left, huf left, alester_ left 00:48 kane_ left, cookys left, kst` left, frew left, Aisling_ left, zol left, cosimo left, bloonix_ left, mdxi left, edenc left, pjcj left, Lorn left, c9s left, sunnavy left, bigpresh_ left 00:49 dukeleto joined, japhb joined, rhr joined, damyan^ joined, huf joined, pjcj joined, kane_ joined, cookys joined, kst` joined, frew joined, Aisling_ joined, zol joined, sunnavy joined, mdxi joined, bloonix_ joined, bigpresh_ joined, Lorn joined, edenc joined, cosimo joined, c9s joined 00:50 c1sung joined 00:54 lisppaste3 left, lisppaste3 joined 00:55 aindilis left, cognominal left, aindilis joined, nperez left 00:56 nothingmuch left, nothingmuch joined, nperez joined 00:57 krunen joined 01:01 nothingmuch left, bloonix_ left, mdxi left, frew left, Aisling_ left, edenc left, kane_ left, zol left, Lorn left, c9s left, sunnavy left, kst` left, cookys left, cosimo left, bigpresh_ left 01:02 nothingmuch joined, kane_ joined, cookys joined, kst` joined, frew joined, Aisling_ joined, zol joined, sunnavy joined, mdxi joined, bloonix_ joined, bigpresh_ joined, Lorn joined, edenc joined, cosimo joined, c9s joined 01:03 Lorn left, Lorn joined, nothingmuch left 01:05 mkelly32 left
pugs_svn r27964 | kyle++ | [t/spec] Test for RT #68290 01:06
01:07 mkelly32 joined 01:08 carlin joined, nothingmuch joined 01:14 KyleHa joined 01:17 payload left 01:18 PZt joined 01:25 payload joined 01:26 nperez left 01:27 payload left, payload1 joined 01:56 krunen_ joined 01:57 krunen left, he_ left, integral left 01:58 integral joined 02:00 he_ joined 02:04 cognominal joined, wayland76 joined
wayland76 Has anyone arranged for Ben Morrow to have a pugs commit bit? (See mailing list) 02:05
KyleHa I don't see him in the AUTHORS file. 02:11
wayland76 Ok, who do we ask about this? And does anyone know if he has an IRC handle? 02:12
KyleHa I don't know who all is authorized to hand out commit bits. I know I got mine from TimToady, and I'm pretty sure I've seen others offering them, but I don't remember who. 02:13
wayland76 Ok. I'm pretty sure moritz_ has the power, and since he's been interacting with Ben, I'll hassle him via e-mail :) 02:15
02:16 betterworld left
KyleHa You could also email Ben, tell him how easy it is, and let him approach an admin if interested. That's approximately what I'd expect Moritz to do anyway. 02:18
wayland76 Well, I sent them both an e-mail :) Hopefully that should cover it. 02:19
KyleHa I also like shotgun debugging. 02:25
sjohnson i use print-statement debugging 02:28
i guess i'm too old-schol
02:30 alanhaggai joined, Jedai left
wayland76 sjohnson: I'm the same. Unless I have a nice IDE, I use print-statement debugging. Works almost anywhere, in any (useful) language :). 02:31
sjohnson my brother uses "logger" technology 02:32
at least that's what he called his function
just a macro in vim that writes a function to spit out any info you want to a separate file, especailly handy for PHP
where printing causes all hell to break loose
forgive me if this is very obvious
i'm not as good as a lot of these Perl guru's here are :] 02:33
wayland76 I've had to resort to logger tech when writing daemons :)
(afk, back in 3&)
02:34 PZt left
wayland76 (sorry, afk much longer) 02:37
02:41 carlin left
KyleHa When I was doing PHP, sometimes I'd print HTML comments. 02:43
sjohnson can anyone recommend a good .exe win32 perl compiler? 02:46
i asked on #perl and got laughed at, and my brother warned me that a lot of them out there "don't work" so i wanted to ask here
Perl 5, btw 02:47
KyleHa If you want something that takes Perl and turns it into an .exe, there are solutions, but it's not quite right to call it a compiler. 02:48
What it'll do is take your Perl source and bundle it up with a Perl interpreter.
That said, I don't know any of the solutions out there; I haven't wanted to do that in many years. 02:49
02:51 __ash__ joined 02:52 __ash__ left
sjohnson ahh shit 02:56
i know there is one for python
as long as it just makes an .exe, even if it's 1MB of overheard
as long as it's just that
alester sjohnson: Have you seen what the Perl 5 FAQ has to say about it? 02:58
sjohnson is it in there? 02:59
i see "How can I compile my Perl program into byte code or C? "
i don't seen a clickable answer though
ahh nevermind, thanks alester 03:00
you pointed me in the right direction
alester Your question is very Frequent.
sjohnson thanks alester , sorry to be a n00b
i didn't even know there was a perlfaq.. until now
:)
alester Now you do. :-)
And you won't like the answer in there, but there it is. 03:01
sjohnson perl2exe might solve my problem
ahh shit 03:02
nevermind
i mgiht have to translate this into python
sjohnson SIGHS loudly
i should have done some research prior to solving this guy's freelance job
sjohnson learned a lesson
03:06 payload1 left 03:11 justatheory joined 03:12 Limbic_Region left 03:19 frew__ joined 03:20 donaldh left
frew__ how do I get package variables in a class? 03:20
class Foo { CLASS.method } ?
rakudo: class Foo { station }
03:20 donaldh joined
p6eval rakudo a5dfe9: OUTPUT«Could not find non-existent sub station␤» 03:21
frew__ rakudo: class Foo { self.meta }
p6eval rakudo a5dfe9: OUTPUT«Lexical 'self' not found␤»
frew__ rakudo: class Foo { class.meta }
p6eval rakudo a5dfe9: OUTPUT«Unable to parse class definition at line 2, near ".meta }"␤in Main (src/gen_setting.pm:1506)␤»
frew__ rakudo: class Foo { CLASS.meta }
p6eval rakudo a5dfe9: OUTPUT«Could not find non-existent sub CLASS␤»
frew__ rakudo: class Foo { __PACKAGE__.meta }
p6eval rakudo a5dfe9: OUTPUT«Could not find non-existent sub __PACKAGE__␤» 03:22
frew__ rakudo: class Foo { $.meta }
p6eval rakudo a5dfe9: OUTPUT«Lexical 'self' not found␤»
frew__ :-/
KyleHa frew: Do you want to make reference to a package variable or have a class variable accessible to all instances?
frew__ class variable 03:23
KyleHa Let me look...
frew__ I actually was wondering about how to use wrap instead of method overriding
KyleHa Looks like "$.name" variables are shared by all instances. 03:25
I'll get a URL for what I'm looking at.
frew__ rakudo: class Foo { has $.bar; }; class Bar extends Foo { $.bar.wrap({ say 'in wrapped method' }); };
p6eval rakudo a5dfe9: OUTPUT«Unable to parse class definition at line 2, near "extends Fo"␤in Main (src/gen_setting.pm:1506)␤» 03:26
KyleHa dev.pugscode.org/browser/t/spec/S12...es/class.t
eternaleye rakudo: class Foo { my $bar; method setbar() { $bar = 7; }; method getbar() { say $bar }; }; my $foo = Foo.new; my $baz = Foo.new; $baz.setbar; say $foo.getbar; say $baz.getbar 03:27
p6eval rakudo a5dfe9: OUTPUT«7␤1␤7␤1␤»
eternaleye erm
KyleHa dev.pugscode.org/browser/t/spec/S06...res/wrap.t
eternaleye rakudo: class Foo { my $bar; method setbar() { $bar = 7; }; method getbar() { say $bar }; }; my $foo = Foo.new; my $baz = Foo.new; $baz.setbar; $foo.getbar; $baz.getbar
p6eval rakudo a5dfe9: OUTPUT«7␤7␤»
eternaleye frew__: ^^^^^ 03:28
frew__ eternaleye there's no wrap there..
or subclassing even
eternaleye 'my' in a class declares a static variable (as in what Java calls a static variable, ie shared among all instances) 03:29
frew__ eternaleye: gotcha
eternaleye frew__: I set $bar in $baz, and it changed for $foo too
frew__ but really I'm trying to use wrap and unwrap here
and use it on the method inherited from another class
eternaleye ah 03:30
frew__ rakudo: class Foo { has $.bar; }; class Bar extends Foo { &.bar.wrap({ say 'in wrapped method' }); };
p6eval rakudo a5dfe9: OUTPUT«Unable to parse class definition at line 2, near "extends Fo"␤in Main (src/gen_setting.pm:1506)␤»
eternaleye rakudo: sub foo() { say 'qux'; }; foo; my $cookie = &foo.wrap( sub ( $bar ) { say 'wrapped foo, recieved $bar'; callwith(); } ); foo( 'test' ); 03:32
p6eval rakudo a5dfe9: OUTPUT«qux␤wrapped foo, recieved $bar␤qux␤»
frew__ I know how that works
KyleHa: gave a good link
eternaleye frew__: There are a lot of things that make that not work the way you intend 03:33
frew__ right
I was just wondering how it should work really
because I'm trying to figure out how the Moose around modifier relates to wrap
which (I think) it's based on
eternaleye class Foo { has $.bar; #`{ Bar here is a variable, not a method } }; class Bar extends #`{ we use 'is' in Perl6 } Foo { #`{ The first dot shouldn't be there, since declaration != use with 'has'; also, you are referring to &bar, but only $bar exists } &.bar.wrap({ say 'in wrapped method' }); }; 03:34
frew__ uh 03:36
eternaleye rakudo: class Foo { method bar() { say 'bar'; }; }; class Bar is Foo { &bar.wrap({ say 'in wrapped method' }); }; my $foo = Foo.new; $foo.bar; my $bar = Bar.new; $bar.bar;
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'Failure'␤»
frew__ got it
KyleHa I think that when you declare a $.var, you get a 'var' method for free.
frew__ hahaha
KyleHa rakudo: class Hi { has $.x }; say Hi.can( 'x' );
eternaleye rakudo: class Foo { method bar() { say 'bar'; }; }; class Bar is Foo { self.&bar.wrap({ say 'in wrapped method' }); }; my $foo = Foo.new; $foo.bar; my $bar = Bar.new; $bar.bar; 03:37
p6eval rakudo a5dfe9: ( no output )
rakudo a5dfe9: OUTPUT«Lexical 'self' not found␤»
eternaleye frew__: ( #`{...} is the new syntax for embedded comments)
frew__ eternaleye: I know, I keep in touch :-)
KyleHa rakudo: class Hi { has $x }; say 'can x: ' ~ Hi.can( 'x' );
p6eval rakudo a5dfe9: OUTPUT«Use of uninitialized value␤can x: ␤»
eternaleye rakudo: class Foo { method bar() { say 'bar'; }; }; class Bar is Foo { &Foo::bar.wrap({ say 'in wrapped method' }); }; my $foo = Foo.new; $foo.bar; my $bar = Bar.new; $bar.bar;
KyleHa rakudo: class Hi { has $.x }; say 'can x: ' ~ Hi.can( 'x' );
p6eval rakudo a5dfe9: OUTPUT«in wrapped method␤in wrapped method␤» 03:38
rakudo a5dfe9: OUTPUT«get_string() not implemented in class 'P6Invocation'␤in Main (/tmp/KFRdtdtbES:2)␤»
KyleHa rakudo: class Hi { has $.x }; say 'can x: ' ~ Hi.can( 'x' ).perl;
p6eval rakudo a5dfe9: OUTPUT«Method 'perl' not found for invocant of class 'P6Invocation'␤»
frew__ eternaleye: don't you need to call the original method somehow?
KyleHa rakudo: class Hi { has $.x = 23 }; my $hi = Hi.new; say $hi.x(); 03:39
eternaleye Whoops, yeah
p6eval rakudo a5dfe9: OUTPUT«23␤»
KyleHa rakudo: class Hi { has $x = 23 }; my $hi = Hi.new; say $hi.x();
p6eval rakudo a5dfe9: OUTPUT«Method 'x' not found for invocant of class 'Hi'␤»
eternaleye rakudo: class Foo { method bar() { say 'bar'; }; }; class Bar is Foo { &Bar::bar.wrap({ say 'in wrapped method'; callsame }); }; my $foo = Foo.new; $foo.bar; my $bar = Bar.new; $bar.bar;
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'Failure'␤»
frew__ rakudo: class Hi { has $x = 23 }; Hi.new.x.say;
p6eval rakudo a5dfe9: OUTPUT«Method 'x' not found for invocant of class 'Hi'␤» 03:40
frew__ rakudo: class Hi { has $x = 23 }; (Hi.new).x.say;
p6eval rakudo a5dfe9: OUTPUT«Method 'x' not found for invocant of class 'Hi'␤»
eternaleye rakudo: class Foo { method bar() { say 'bar'; }; }; class Bar is Foo { &Bar::Foo::bar.wrap({ say 'in wrapped method'; callsame }); }; my $foo = Foo.new; $foo.bar; my $bar = Bar.new; $bar.bar;
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'Failure'␤»
frew__ rakudo: class Hi { has $.x = 23 }; (Hi.new).x.say;
p6eval rakudo a5dfe9: OUTPUT«23␤»
frew__ rakudo: class Hi { has $.x = 23 }; Hi.new.x.say;
eternaleye frew__: Really, if you're inheriting, you probably don't want .wrap 03:41
p6eval rakudo a5dfe9: OUTPUT«23␤»
frew__ eternaleye: ok, then let's say I am doing a role
then I want to wrap, right?
eternaleye frew__: You want to do class Foo { method baz() {...} }; class Bar is Foo { method baz() { dostuff; ...; self.Foo::baz(); ...; } } 03:42
frew__: I don't think that's how roles work.
.wrap is useful when dealing with procedural or functional code - OO code doesn't really benefit IIUC 03:43
frew__ hm
eternaleye Although, you can use it to implement a really nice logging system by wrapping everything in a debugging statement that prints when each function begins and ends 03:44
s/logging/debugging
frew__ right
eternaleye When you inherit, you can override and call the parent's inside. It's pretty much the same functionality as wrap 03:45
IIUC, the same is true for roles and composition
However, calling the parent to an overridden method is NYI
03:45 ruoso left
frew__ well, at least with Moose, with roles if there is a role with method foo, and a class with method foo, and the class uses the role, the roles foo never even gets called 03:47
so the main way to deal with that is with an around
eternaleye rakudo: &infix:<+>.wrap({ say "started addition"; callsame; say "ended addition"; }); say 10 + 2; 03:48
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'MultiSub'␤»
eternaleye frew__: in rakudo you can do self.Role::method()
s/rakudo/perl6/
Rakudo hasn't implemented it yet
rakudo: &infix:<**>.wrap({ say "started exponentiation"; callsame; say "ended exponentiation"; }); say 10 + 2; 03:49
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'MultiSub'␤»
eternaleye rakudo: &infix:<**>.wrap({ say "started exponentiation"; callsame; say "ended exponentiation"; }); say 10 ** 2;
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'MultiSub'␤»
eternaleye rakudo: &infix:<...>.wrap({ say "started series"; callsame; say "ended series"; }); say 10 ... { (); }; 03:50
p6eval rakudo a5dfe9: OUTPUT«Method 'wrap' not found for invocant of class 'Perl6MultiSub'␤»
eternaleye hm 03:51
pugs_svn r27965 | kyle++ | [t/spec] Test for RT #64946
eternaleye TimToady: pmichaud: any idea on how .wrap on multis is supposed to work?
pugs_svn r27966 | kyle++ | [t/spec] Test for RT #64948
eternaleye Is there a way to specify the variant of multi to wrap? Is there a way to wrap every variant? 03:52
03:53 justatheory left 03:59 cdarroch left, KyleHa left 04:06 s1n left 04:07 s1n joined
frew__ eternaleye: couldn't you do Foo.*wrap for mutlis? 04:09
04:11 eighteenrabbit joined
eternaleye frew__: Where is that from? 04:13
04:13 alester_ joined
eternaleye actually... 04:13
rakudo: &infix:<...>».wrap({ say "started series"; callsame; say "ended series"; }); say 10 ... { (); }; 04:14
p6eval rakudo a5dfe9: OUTPUT«invoke() not implemented in class 'ResizablePMCArray'␤in Main (/tmp/MW7glhASDU:2)␤»
frew__ eternaleye: perl 6?
eternaleye: Foo.? means 0 or 1 methods
Foo.+ means 1 or more
Foo.* means 0 or more
eternaleye frew__: I meant what synopsis 04:15
rakudo: &infix:<...>.*wrap({ say "started series"; callsame; say "ended series"; }); say 10 ... { (); };
frew__ oh
I'm not sure 04:16
p6eval rakudo a5dfe9: OUTPUT«No applicable candidates found to dispatch to for 'infix:...'␤in Main (/tmp/GYyNBWo0sC:2)␤»
frew__ rakudo: class Hi { method foo { say "foo"; }; }; Hi.new.foo
p6eval rakudo a5dfe9: OUTPUT«foo␤» 04:17
eternaleye rakudo: &infix:<...>.*wrap({ say "started series"; callsame; say "ended series"; }); my @foo = 10, 12; say @foo ... { (); };
p6eval rakudo a5dfe9: OUTPUT«1012␤»
frew__ rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo;
p6eval rakudo a5dfe9: OUTPUT«foo␤other foo␤»
frew__ rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; Yo.*foo.wrap({ say 'in foo' }); Yo.new.foo; 04:18
eternaleye rakudo: &infix:<...>.+wrap({ say "started series"; callsame; say "ended series"; }); my @foo = 10, 12; say @foo ... { (); };
p6eval rakudo a5dfe9: OUTPUT«foo␤other foo␤other foo␤foo␤Method 'wrap' not found for invocant of class 'List'␤»
rakudo a5dfe9: OUTPUT«Could not invoke method 'wrap' on invocant of type 'Multi()'␤in Main (/tmp/UcaVmPNEfq:2)␤»
eternaleye rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; Yo.*foo>>.wrap({ say 'in foo' }); Yo.new.foo; 04:19
p6eval rakudo a5dfe9: OUTPUT«foo␤other foo␤other foo␤foo␤Method 'wrap' not found for invocant of class ''␤»
eternaleye rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; Yo.+foo>>.wrap({ say 'in foo' }); Yo.new.foo; 04:21
p6eval rakudo a5dfe9: OUTPUT«foo␤other foo␤other foo␤foo␤Method 'wrap' not found for invocant of class ''␤»
eternaleye rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; Yo.&foo>>.wrap({ say 'in foo' }); Yo.new.foo;
rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; Yo.&foo.wrap({ say 'in foo' }); Yo.new.foo;
p6eval rakudo a5dfe9: OUTPUT«foo␤other foo␤invoke() not implemented in class 'Undef'␤in Main (/tmp/laHzdmA7Tj:2)␤»
rakudo a5dfe9: OUTPUT«foo␤other foo␤invoke() not implemented in class 'Undef'␤in Main (/tmp/XPX9zBqbcl:2)␤»
eternaleye frew__: Yo.*foo.wrap was calling foo and then calling .wrap on the result 04:22
rakudo: class Hi { method foo { say "foo"; }; }; class Yo is Hi { method foo { say "other foo" }; }; Hi.new.foo; Yo.new.foo; &(Yo.foo).wrap({ say 'in foo' }); Yo.new.foo;
p6eval rakudo a5dfe9: OUTPUT«Use of contextualizer & not implemented. at line 2, near ".wrap({ sa"␤in Main (src/gen_setting.pm:2946)␤»
04:34 eighteenrabbit left 04:38 sevvie joined 04:44 PZt joined 05:11 frew__ left 05:15 kane_ left 05:20 sevvie left 05:25 alanhaggai left 05:27 kane_ joined 05:40 zamolxes left 05:43 rfordinal joined 05:45 orafu left, orafu joined 05:51 missingthepoint joined 05:54 missingthepoint is now known as bpetering 05:58 wayland76 left 05:59 guest_007 left 06:14 rfordinal left 06:15 justatheory joined 06:19 justatheory left 06:27 szabgab left
moritz_ good morning 06:33
phenny tell wayland76 every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine) 06:34
phenny, tell wayland76 every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine)
phenny moritz_: I'll pass that on when wayland76 is around.
moritz_ phenny, tell KyleHa every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine)
phenny moritz_: I'll pass that on when KyleHa is around.
06:42 nihiliad left, alester_ left 06:45 Su-Shee joined
Su-Shee good morning! :) 06:45
moritz_ oh hai 06:50
06:50 masak joined
masak oh hai #perl6 06:50
moritz_ masak: www.reddit.com/r/perl/comments/99ob...my_mmorpg/ 06:52
Su-Shee EVE is _so_ _not_ about the usal classes.. ;))
masak rakudo: ((Temporal::DateTime.new(date => Temporal::Date.new(:year(2010), :month(4)), time => Temporal::Time.new()).epoch - time) / 86400).ceiling.fmt("%d days left until April!").say
p6eval rakudo a5dfe9: OUTPUT«232 days left until April!␤»
masak Su-Shee: I know.
moritz_ masak: in particular I like the last comment
masak moritz_: thanks! nice to make reddit again. 06:53
masak reads
yep, I like the last comment too. :)
for a reddit comment, that's praise.
(this one www.reddit.com/r/perl/comments/99ob...pg/c0bxpi5 -- for people from the future reading backlog) 06:54
06:54 rfordinal joined, eternaleye left, eternaleye_ joined
moritz_ it's a shame that this is only submitted to the "perl" category 06:55
06:55 tomaw_ left
moritz_ I should submit it again to "programming" 06:55
much wider audience
masak good idea. 06:56
(I think. I don't know about the reddit category system.)
moritz_ www.reddit.com/r/programming/commen...my_mmorpg/ here it is now
masak moritz_++ 06:58
moritz_ masak++ for writing it ;-)
masak it was a pleasure.
I originally suggested the idea to pmichaud for his Hacking Rakudo talk... 06:59
moritz_ I know
masak when I didn't see it materialize there, I guess I felt the need to write something myself instead. :)
moritz_ would like to see some heroic pictures for the various classes ;-) 07:00
masak lurkers: you heard the man! 07:02
eternaleye_ mage (well, technomancer) (not made by me) cw.myfirstgorilla.com/gallery_technomancer.html 07:04
Su-Shee does one of you actually play EVE? 07:06
masak well, my two colleagues do.
Su-Shee hm. ok. 07:07
07:09 szabgab joined
Matt-W Morning 07:13
Matt-W plays Lord of the Rings Online and Champions Online, and a handful of tabletop RPGs too 07:14
07:15 tann joined
tann hola, senors 07:15
masak que tal, tann?
tann rakudo: my @a = 1, 2, 3; for @a -> $i { say $i; @a.pop; @a.pop }; # bug? 07:16
p6eval rakudo a5dfe9: OUTPUT«1␤2␤3␤»
07:16 Su-Shee left
Matt-W no that looks right 07:17
masak yep.
there's consensus that if you want to modify what you loop over, you should use a while loop.
07:18 kyle_l5l joined
tann what if i like to *eat up*/*skip* some part of what i'm looping 07:18
Matt-W That's pretty much what you just did 07:19
07:20 donaldh left 07:21 donaldh joined
masak tann: I tend to use 'next' for that. 07:25
tann masak: doing that now
thought there was some neat clever way :) 07:26
frettled and I thought that 'next' was neat and clever :(
masak yes, 'next' is the clever way. 07:27
it can really lead to wonderful code if you internalize it.
for @foo { next if #`(something); next if #`(something else); last if #`(something else entirely); #`(real code); } 07:28
tann i have somethig like this: for qqx/foo/ -> $line { if $line ~~ /header/ { $line = next line; write $line to $file until see the next header then go to for again } :) 07:29
masak that sounds like the flip-flop operator to me. 07:30
tann oh, be kind to tell me what it is
Matt-W oooh a use for the flip flop operator
Matt-W listens intently
masak tann: you can start by grepping for 'flip-flop' in 'perldoc perlop'. 07:31
after that, all you need to know is that it's spelled 'ff' and 'fff' in Perl 6.
tann masak: thanks 07:32
masak beware, though, that exactly that piece of documentation in perldoc has been called insane by Steve Yegge.
(I find it not too bad, but I guess I have internalized much of the insanity.)
frettled Perl 5: ff = flip-flop. Perl 6: frackin' flip-flop 07:33
Matt-W masak: I've read the documentation several times, and still don't know why I'd want to use it 07:34
tann uh oh...after all these years with perl, first use of flip-flop operator :))
though i vaguely remember having encountered it once or twice :D 07:35
masak Matt-W: it's quite useful when parsing files, and only being interested in an interval of lines.
moritz_ public announce to all pugs committers: let it be known that you can also hand out new commit bits - nobody with magic powers required. Bookmark commitbit.pugscode.org/admin/project/Pugs/people and be happy.
masak \o/ 07:36
frettled woot
Whoa, javascript overkill. 07:37
(1.4 megabytes of javascript to serve a login page) 07:38
Matt-W :o 07:39
1.4 MEGABYTES?
masak surely there's a decimal-point error somewhere in that figure. 07:40
right? please? :/
frettled -rw-r--r--@ 1 jani staff 1453607 Aug 12 09:38 82e771696bba4ae209191272ce15e523.js
masak wow.
Matt-W decides to just give up and go mad now 07:41
frettled It's all of the Jifty package in one script, I think.
masak Matt-W: for some reason, your "give up" reminded me of this: www.youtube.com/watch?v=D1NAwlepnSs 07:42
frettled Thank goodness that this JS code isn't used for the login button, and that it still works with JS disabled. 07:43
frettled hugs NoScript (Firefox) and Opera's Site Preferences.
masak oh, so that 1.4 Mb of js was unnecessary. what a relief!
frettled And it only loads if you've got JS enabled, which I'm sure you don't by default, right? :D 07:44
masak frettled: I've also become a NoScript believer lately. thanks for the tip.
frettled NP :)
Matt-W Why why why 07:45
1.4 megabytes!
masak :)
Matt-W I'm not sure even google docs uses that much... 07:46
frettled It's like importing half of CPAN in order to do 􏿽xABHello, world􏿽xBB.
Matt-W Mmm
the only javascript you might want on a login page is really quite minimal
07:47 dakkar joined
Matt-W perhaps as part of a global site navigation system that's very very fancy (and possibly unnecessary) 07:47
but I can't imagine needing 1.4 megabytes of it for anything at all on the web...
07:47 jd8hh57 joined
frettled It's a part of the JS do-it-all craze; JQuery is another thingy that's very popular, but I don't think it's quite that big. 07:48
bpetering masak: EXCELLENT. That there's some impressive Perl evangelism... :) (use.perl)
Matt-W JQuery is pretty small
masak bpetering: thank you.
Matt-W they offer a version that's been run through a tool that cuts the source text right down to about the smallest it can be and still work 07:49
and because so much of the stuff is in plugins anyway, you don't have to pull down a load of useless baggage 07:50
unless the site author was an idiot, of course
07:51 hanekomu joined
frettled Matt-W: the problem is that when code is compressed like that, it also looks like malicious javascript that intends to control your browser :) 07:52
Matt-W frettled: do you manually audit all javascript that comes down to your browser? 07:53
frettled Matt-W: I try to, yes.
bpetering masak: as someone who's only been hanging around here a bit, that distilled a lot of my impressions of the "contribution structure" very well 07:54
Matt-W frettled: wow.
masak bpetering: glad to hear that. with a bit of luck, it might attract new people too.
frettled For work purposes (I work with a domain registrar/web hosting company), I've created a script that uses regexps to check various JS signatures. I've had to make an exception for ext-all.js, since it always comes up as a false positive.
Essentially, I wouldn't want to have JS enabled at all, as long as JS is allowed complete control over the DOM, browser navigation, mouse click and keyboard capture, plus move windows to the front (focus). 07:55
masak is scared now 07:56
Matt-W hmm
Only if there's a hole in the browser
frettled Which there is like, every other week? :D
07:57 tomaw_ joined
Matt-W might as well just unplug your network cable 07:57
frettled I've been tempted to. 07:58
Ooh, there's a delete button to the right of 􏿽xABdamian: [email@hidden.address] (administrator, pending)􏿽xBB 08:02
eternaleye_ masak: For flipflop in p6, how is it used? $var ~~ /foo/ ff /bar/ ? 08:05
since $. is no longer with us
masak eternaleye_: no, it's used between boolean expressions, just like in Perl 5. 08:06
eternaleye_: there's $*IN.ins instead of $.
eternaleye_ Ah
masak but I don't know how it ties into ff and fff. it probably doesn't.
eternaleye_ masak: And didn't the one in p5 do integer comparisons if it was a scalar rather than code/regex? 08:07
(against $.)
masak yes, I think so.
08:09 Jedai joined
eternaleye_ ah, perldoc perlop says that it's int-compared if it's a constant expression 08:09
Which means a constant expression of an array would compare # of elements to line #. Eww. 08:10
masak um. regexes are constant expressions.
eternaleye_ masak: Then perldoc is wrong :/
masak fancy that.
08:12 payload joined
moritz_ today is another #perl6-soc meeting I suppose? 08:14
masak yes. 08:15
08:16 jferrero joined
eternaleye_ hm 08:18
@list.map( /foo/ ff * ) - is * a whatever that creates whatevercode with map, or is it a flipflop that never flops?
TimToady: ^^^ Seeming parse ambiguity per S03:2391 08:19
Well, semantic ambiguity 08:20
08:20 azawawi joined
azawawi hi 08:21
08:21 sri_kraih joined 08:24 guest_007 joined
kyle_l5l Hullo everyone. I'm playing around with creating new threads in rakudo - is this possible at the moment? I'm having some trouble: I've got a dumb little PIR sub that works in Parrot, but when I cause it to be executed by rakudo, clone_interpreter() has trouble. 08:25
bpetering kyle_l5l: i don't think it's possible now... maybe have a look at the roadmap? 08:26
azawawi masak: ping
masak azawawi: pong. 08:27
moritz_ kyle_l5l: that's a known problem, and the reason why rakudo doesn't have basic threads yet
azawawi masak: you level-ed to a new level in blogging with your last post. simply amazing :)
moritz_ kyle_l5l: see trac.parrot.org/parrot/ticket/757 08:28
bpetering kyle_l5l: stuff that's planned (ie, not yet implemented) in Rakudo: github.com/rakudo/rakudo/blob/a5dfe...cs/ROADMAP
masak azawawi: thank you. :)
azawawi masak: so what are Padre P6 developers? :) 08:29
masak azawawi: you tell me. :)
eternaleye_ masak: I'd have to say you're an Archer/Bard multiclass ;D 08:30
masak many of us here have multiclass characteristics. :)
moritz_ thought of masak mostly as a warrier
masak yah, me too.
kyle_l5l moritz_, ooo, that'll do it. parrot/rakudo/etc needs a bug tracker tracker - I must have gone in circles around that ticket.
moritz_ is more of a worrier instead 08:31
masak warrior's what I enjoy the most. but then I briefly become a priest every time I submit a bug ticket.
eternaleye_ masak: Hmm. Maybe a warrior with levels in archer, who took a bard-oriented prestiege class?
Matt-W yes I think masak is a warrior/priest
eternaleye_ masak: You do everything! 08:32
Matt-W appears to be a warrior/priest who just took his first level of mage
masak eternaleye_: with varying success. :)
Matt-W maybe masak's a conglomeration of NPCs
representing all classes
masak that sounds painful.
moritz_ masak's mage skills need more training, though
eternaleye_ Shh, Matt-W! Someone might figure out he's the DM!
Whoops
masak :P
(I'm not, though) 08:33
azawawi :)
moritz_ but sounds like he's a power gamer :-)
bpetering code
azawawi std: #(
p6eval std 27966: OUTPUT«===SORRY!===␤(Possible runaway string from line 1)␤Couldn't find terminator ) at /tmp/7077UQMN4L line 1 (EOF):␤------> #(⏏<EOL>␤Other potential difficulties:␤ Embedded comment without backtick is deprecated at /tmp/7077UQMN4L line 1:␤------>
..[…
azawawi std: #) 08:34
p6eval std 27966: OUTPUT«ok 00:02 36m␤»
08:34 EDevil joined
moritz_ std: #` 08:34
08:34 frettled left
p6eval std 27966: OUTPUT«ok 00:02 36m␤» 08:34
eternaleye_ masak: Actually, the DM analogy kinda fits: you work on the Setting, create a good backdrop of apps, document the events that unfold, and bring in new players!
masak eternaleye_: I'm just this guy, you know. 08:35
08:35 frettled joined
frettled rakudo: say "Hello, Dolly!" 08:35
p6eval rakudo a5dfe9: OUTPUT«Hello, Dolly!␤»
frettled …and is my UTF-8-ness visible for you guys as well? (ellipsis at the beginning of this line) 08:36
moritz_ frettled: yes
08:37 tann left
masak frettled: aye 08:37
moritz_ frettled: and the IRC logs pick it up correctly too
masak frettled++
frettled Thank goodness. I just discovered -- in another channel -- that while I saw my UTF-8-ness correctly, it wasn't sent, due to unsaved irssi configuration. 08:38
bpetering frettled: i wrestled irssi into some level of UTF-8-ness recently... benmissingthepoint.blogspot.com/200...irssi.html 08:40
(incidentally, does anyone know which clients have the best Unicode support? I think irssi's is kinda broken...)
frettled bpetering: irssi's is just fine, I think. 08:41
But I'm running irssi from a Linux box.
Matt-W works fine for me on a linux box too
once I persuade screen and my ssh clients and terminals to behave :) 08:42
bpetering Ah... I've heard the 'recode' stuff is broken, but perhaps the plain Unicode support is fine.
frettled What I had to do in order to make it work, was to set the following:
conversions = { "#perl6" = "utf-8"; }
This is because…
recode_out_default_charset = ISO8859-1
But with UTF-8 as the default, it should Just Work. 08:43
Matt-W: screen is also a bit tricky, but I can give you a hand if you like, since I've just recently been through the conversion.
bpetering should move to screen on a Linux box instead of this silliness... 08:44
frettled bpetering: screen is great, except when it isn't :D
bpetering frettled: that about sums it up. 08:45
frettled And then you'll have a horrible time trying to google for solutions, since the name is too generic.
moritz_ I found screen to be very non-tricky when started with the -U option
08:45 frederico joined
frettled moritz_: well, you also need to ensure that the locale was correct before you started. 08:46
moritz_ it seemed to be correct in my case :-)
masak phenny: tell mberends I looked at the temporal-flux repo and decided to do things in two steps: (1) re-arrange the current stuff from code to method descriptions, (2) add new convenience stuff, mainly nice constructors. I want to be able to write DateTime.new("2010-04") a la iso8601, for example. also, pondering renaming .iso8601 to just .iso
phenny masak: I'll pass that on when mberends is around.
frettled If you're running a screen that was started in a non-UTF-8-locale, you'll need to use _‹escape command› : utf-8 ‹RET›_ to fix it.
azawawi std: #say "Hello"; 08:50
p6eval std 27966: OUTPUT«ok 00:02 36m␤»
Matt-W frettled: no, I got it working a number of years ago, thanks
08:53 Jedai left
frettled :) 08:53
bpetering moritz_, i'd like to start contributing to the tests... 08:55
anything you'd like to let me know in particular?
Matt-W bpetering: hurrah! 08:57
bpetering i've read KyleHa++'s article on PerlMonks... and just going through your "reorganization" article now 09:00
Matt-W: :)
09:02 hanekomu left
masak moritz_: re writing a Perl 6 book together: thinking a bit more about it, I don't think the two of us have the energy/tuits to write a 200-page book. however, I think we could produce a pretty useful thing by (for example) finding five really good Perl 6 scripts which highlight interesting/useful features of the language. a bit like the Exigeses; a self-contained script, and then a lot of explanations of individual bits of it. 09:03
bpetering moritz_, others: are any particular parts more important than others right now? 09:04
09:06 tomaw_ left 09:07 abbe joined 09:08 kane_ left
bpetering something to think on... :) 09:09
will bbl 09:10
09:10 bpetering left
moritz_ masak: I'll think a bit about it. "Perl 6 by example" with a nice introduction would be not too bad 09:11
masak moritz_: sounds good. 09:12
09:13 Su-Shee joined
moritz_ phenny, tell bpetering there are no really urgent tasks in the test suite right now. Anything mentioned in the t/spec/TODO file is worth doing... 09:13
phenny moritz_: I'll pass that on when bpetering is around.
09:13 tomaw_ joined
moritz_ phenny, tell bpetering if you understand regexes (partly) there are many things in S05 that need better coverage and aren't all that complicated 09:15
phenny moritz_: I'll pass that on when bpetering is around.
09:18 cahek joined
jnthn o/ 09:18
moritz_ o! 09:19
frettled masak, moritz_: I could help out, if you like.
masak jnthn: oh hai! 09:20
frettled: cool.
frettled jnthn: good $timeofday
jnthn masak: hi! :-) 09:23
masak here's a talk I held in May, btw. masak.org/carl/stockholm.pm/perl6.pdf -- it condenses parts of the material in moritz_++'s blog posts.
(I'm updating my homepage on feather with links to talks, that's why I got to thinking about that old talk)
09:24 cahek left 09:27 zloyrusskiy joined
frettled masak: thanks, I'm downloading it and will look at that. 09:32
masak frettled: downloading what?
frettled masak: the PDF :)
masak ah, the talk. :)
my updated home page on feather: feather.perl6.nl/~masak/ 09:33
frettled Clean,. 09:34
s/,//
masak it's compatible with just about every browser out there. :)
moritz_ masak++ # using HTML definition lists 09:35
masak moritz_: they're the hashes of HTML.
moritz_ aye :-)
and severly underused 09:36
masak I really like them.
surprisingly often, they're what I want.
frettled Getting them to look nice is a bit tricky, but CSS is our friend. 09:37
09:54 payload left, azawawi left 10:00 _timbunce joined 10:05 pmurias joined 10:07 Muixirt joined, riffraff joined 10:08 riffraff left 10:09 riffraff joined 10:18 hanekomu joined
Matt-W uses definition lists quite frequently in those rare times he writes websites 10:22
for CSS purposes it'd be nice if there was a container around each dt/dd pair 10:23
masak Matt-W: but semantically, they're not coupled. just like given/when.
Matt-W yes they are 10:25
the dd defines the dt which preceded it
masak oh, for sure.
just as the when acts inside a given, if there is one. 10:26
but -- and the HTML 4.01 spec gives an example of this -- there can be several dt in a row, and several dd in a row. 10:28
Matt-W mumbles incoherently
masak there are several unspoken taboos with definition lists, however. havind a dd without a dt would be one, I guess. 10:29
that kinda screams of using semantic markup solely for presentation purposes. 10:30
the other one I've heard about is having several identical dt elements. that parallels the uniqueness of hash keys. there's no physical limitation in this case, though. it's just frowned upon. 10:31
10:32 frederico left 10:33 kyle_l5l left
masak ah. seems I picked up that meme here long ago: 24ways.org/2007/my-other-christmas-...ition-list 10:34
10:43 szabgab left
masak lunch & 10:44
10:49 abbe left 10:50 abbe joined
Matt-W masak: I think that probably just starts to make the semantics of a dl look a bit silly 10:50
masak: after all, defining the same thing twice, differently? 10:51
probably some cases where you do want to do that, but not most of the time
10:51 Su-Shee left
jnthn Matt-W: Well, in a dictionary (natural language type), words often have more than one meaning. 10:52
Matt-W jnthn: this is indeed true
11:05 synth left 11:07 szabgab joined 11:14 meppl joined 11:20 donaldh left, donaldh joined
moritz_ jnthn: how's your grant going? from a quick look it seems to be mostly done... 11:21
I'm just not sure how much work on traits is left
11:22 polettix joined
moritz_ Matt-W: think of it as multi sub definitions :-) 11:22
polettix hi there, I tried to Google a bit but with little luck... Is there some perlish-6 way to swap the contents of two arrays, a-la ($x, $y) = ($y, $x)? 11:24
jnthn moritz_: Mostly done.
moritz_: Health allowing, I want to try and clear up some final bits over the next week and get a final report together.
11:24 M_o_C joined 11:25 M_o_C left
moritz_ polettix: ($x, $y) = ($y, $x) works fine 11:26
polettix moritz_: I wanted to know about arrays
moritz_ can't read
polettix moritz_: eh, I asked about arrays but did an example with scalars :-) 11:27
moritz_ polettix: that might work somehow with slice context, but since nobody implements that yet it's a bid hard to say
or maybe with signatures...
jnthn Something with sig binding should work. 11:28
moritz_ :(@a, @b) := (@b, @a)
jnthn Not yet in Rakudo though.
polettix jnthn: OK, I tried the example by moritz_ but I got an error in rakudo, so I thought that the source I was reading for (dated 2002) was outdated 11:29
thank you all :)
jnthn Rakudo should support that sig binding stuff in the not too distant future. 11:30
moritz_ rakudo: multi swap(@a is rw, @b is rw) { my @tmp = @a; @a = @b; @b = @tmp }; my @x = 1..3; my @y = 'foo', 'bar'; swap(@x, @y); say @x.perl; say @y.perl 11:31
p6eval rakudo a5dfe9: OUTPUT«["foo", "bar"]␤[1, 2, 3]␤» 11:32
polettix I have an implementation of project euler #25, can I add it to the examples in github? 11:44
moritz_ polettix: what's your github id? 11:45
polettix moritz_: polettix :) 11:46
moritz_ phenny: tell pmichaud could you please add `polettix' as a committer to the perl6/perl6-examples repo on github? 11:47
phenny moritz_: I'll pass that on when pmichaud is around.
moritz_ can anybody else hand out commit bits for that repo?
guest_007 rakudo: my @zombies = 1..666; say "I see "~+@zombies~" dead people!"; 11:49
p6eval rakudo a5dfe9: OUTPUT«I see 666 dead people!␤»
pmurias rakudo: my @zombies = 1..666; say "I see {@zombies.elems} dead people!"; # ;) 11:55
p6eval rakudo a5dfe9: ( no output )
pmurias rakudo: my @zombies = 1..666; say "I see "~@zombies.elems~" dead people!"; # ;)
p6eval rakudo a5dfe9: ( no output )
frettled yay 11:56
pmurias rakudo: my @zombies = 1..666; say "I see "~ +@zombies ~ " dead people!"; # ;)
p6eval rakudo a5dfe9: ( no output )
pmurias rakudo: my @zombies = 1..666; say "I see "~ +@zombies ~ " dead people!";
p6eval rakudo a5dfe9: ( no output )
pmurias wtf
frettled unyay
rakudo: my @zombies = 1..666; say "I see" ~+@zombies ~"dead people!"; 11:57
p6eval rakudo a5dfe9: ( no output )
moritz_ rakudo: say 3
p6eval rakudo a5dfe9: OUTPUT«3␤»
frettled rakudo: my @zombies = 1..666; say "I see" ~ +@zombies~ "dead people!"; 11:58
p6eval rakudo a5dfe9: ( no output )
frettled rakudo: my @zombies = 1..666; say "I see" ~ +@zombies~"dead people!";
pmurias rakudo: my @zombies = 1..2; say "I see "~ +@zombies ~ " dead people!"; # ;)
p6eval rakudo a5dfe9: OUTPUT«I see666dead people!␤»
rakudo a5dfe9: OUTPUT«I see 2 dead people!␤»
frettled Aha!
pmurias frettled: what's the problem?
polettix ?
pmurias rakudo: my @zombies = 1..666; say "I see {@zombies.elems} dead people!"; # ;) 11:59
p6eval rakudo a5dfe9: OUTPUT«I see 666 dead people!␤»
pmurias rakudo: my @zombies = 1..666; say "I see @zombies.elems dead people!"; # ;)
frettled rakudo: my @x = 1..6; say "I see " ~ +@x~" dead people!"; say "I see " ~ +@x ~ " living people!";
p6eval rakudo a5dfe9: OUTPUT«I see @zombies.elems dead people!␤»
rakudo a5dfe9: OUTPUT«I see 6 dead people!␤I see 6 living people!␤»
frettled pmurias: the problem? I thought it was the same that made you go «wtf» ... 12:00
polettix rakudo: my @zombies = 1..666; say "I see" ~+@zombies ~"dead people!"; 12:01
pmurias frettled: what i meant what was the source of rakudo not printing anything
p6eval rakudo a5dfe9: ( no output )
polettix rakudo: my @zombies = 1..666; say "I see" ~+@zombies~"dead people!"; 12:02
frettled pmurias: yes, and I was wondering about the same thing, testing different output to see
p6eval rakudo a5dfe9: ( no output )
frettled rakudo: my @x = 1..6; say "I see" ~ +@x ~ "dead people!"; say "I see " ~ +@x ~ " living people!";
p6eval rakudo a5dfe9: OUTPUT«I see6dead people!␤I see 6 living people!␤»
polettix rakudo: my @zombies = 1..666; say "I see "~+@zombies~" dead people!";
p6eval rakudo a5dfe9: ( no output )
12:02 abbe left
frettled rakudo: my @x = 1..6; say "I see "~+@x~" dead people!"; say "I see " ~ +@x ~ " living people!"; 12:03
p6eval rakudo a5dfe9: OUTPUT«I see 6 dead people!␤I see 6 living people!␤»
frettled rakudo: my @x = 1..666; say "I see "~+@x~" dead people!"; say "I see " ~ +@x ~ " living people!";
polettix does not understand
p6eval rakudo a5dfe9: ( no output )
pmurias maybe it's a timeout
polettix rakudo: my @x = 1..6; say "I see "~+@x~" dead people!"; say "I see " ~ +@x ~ " living people!";
frettled I think it has something to do with the array size then.
p6eval rakudo a5dfe9: OUTPUT«I see 6 dead people!␤I see 6 living people!␤»
frettled rakudo: my @x = 1..100; say "I see "~+@x~" dead people!"; say "I see " ~ +@x ~ " living people!"; 12:04
p6eval rakudo a5dfe9: OUTPUT«I see 100 dead people!␤I see 100 living people!␤»
pmurias rakudo: my @zombies = 1..6666; say "I see @zombies.elems dead people!"; # ;)
frettled rakudo: my @x = 1..499; say "I see "~+@x~" dead people!"; say "I see " ~ +@x ~ " living people!";
p6eval rakudo a5dfe9: ( no output )
rakudo a5dfe9: OUTPUT«I see 499 dead people!␤I see 499 living people!␤»
frettled rakudo: my @x = 1..500; say "I see "~+@x~" dead people!";
p6eval rakudo a5dfe9: OUTPUT«I see 500 dead people!␤»
pmurias maybe we shouldn't flood the channel?
frettled pmurias: we're probably on everyone's ignore lists by now, no worries! :D 12:05
moritz_ sometimes p6eval has high load and the CPU time limit is exceeded 12:07
then you don't get any output
which is why I'd recommend to test such things locally
pmurias it would be nice if a correct error would be printed
polettix I seem to remember that Rakudo * will sport big integers - is it correct? 12:08
jnthn polettix: It's not a "we'll not release if we don't have it done" level issue, but it's on the nice-to-have.
moritz_ and it will strongly depend on parrots support for them 12:09
jnthn Right.
We'll have to see what the GSOC project in that area has achieved. 12:10
moritz_ pastie.org/581165 recursive SQL -> paste.debian.net/43973 output
jnthn: that was about decimal numbers, don't know if that covers bigints too
jnthn moritz_: Ah, true. 12:11
moritz_: I guess that may help us support Rat...
pmurias Rats are 2 big ints aren't they? 12:13
moritz_ and decnums are neither.
pmurias: plus behaviour 12:14
pmurias moritz_: that's easily written in Perl6 ;)
12:20 takadonet joined
takadonet hey all 12:20
moritz_ oh hai 12:21
12:22 stepnem left 12:27 stepnem joined, stepnem left 12:30 stepnem joined 12:32 alester_ joined 12:33 stepnem left 12:35 ruoso joined 12:36 xinming_ joined, eternaleye_ left
pmurias ruoso: hi 12:38
ruoso hi pmurias
pmurias re context vars i'm not sure how context vars should be marked in the lexical scope 12:39
12:39 SmokeMachine joined
ruoso pmurias, I think we can ask TimToady if the "is context" applies to the container or to the lexical scope 12:40
pugs_svn r27967 | pmurias++ | [re-smop] pass a null terminated string to snprintf 12:41
pmurias ruoso: can't the same container can be in two lexical scopes? (using binding)
pugs_svn r27968 | pmurias++ | [re-smop] dlclose() dynamic libraries handles 12:42
ruoso yes... the question is, will this binding add dynamic visibility there as well?
pmurias another thing we block on :/ 12:45
12:47 Front_slash joined 12:49 stepnem joined 12:50 alester_ left
pmurias ruoso: we are keeping continuations in &?ROUTINE and &?BLOCK and they are specced to hold the current routine and block 12:52
12:52 xinming left 12:53 synth joined 12:59 jferrero left
ruoso pmurias, yeah... we need to fix that... 13:01
pmurias ruoso: by renaming the variable? 13:03
ruoso yeah
13:07 zloyrusskiy left, missingthepoint joined, stepnem left 13:11 stepnem joined 13:12 stepnem left 13:14 stepnem joined 13:20 riffraff left
masak phenny: tell mberends that at his convenience, I'd like to have a quick tutorial on how to use the new, improved HTTP::Daemon. (The Nibbler isn't HTTP::Daemon-compatible anymore, it seems.) For extra super bonus points, we should sit together and draft up a Handler (a la Rack/Web.pm), which would be the Proper Way to use HTTP::Daemon through Web.pm. 13:22
phenny: tell mberends that at his convenience, I'd like to have a quick tutorial on how to use the new, improved HTTP::Daemon. (The Nibbler isn't HTTP::Daemon-compatible anymore, it seems.) For extra super bonus points, we should sit together and draft up a Handler (a la Rack/Web.pm), which would be the Proper Way to use HTTP::Daemon through Web.pm.
phenny masak: I'll pass that on when mberends is around.
mikehh rakudo (a5dfe95) builds on parrot r40503 - make test/make spectest (up to 27968) PASS - Ubuntu 9.04 i386 13:25
masak mikehh++
mikehh now I gotta switch to my amd64 - I haven't got my VM working properly yet (wireless network problems) 13:31
13:35 jferrero joined 13:37 mikehh left 13:45 mikehh joined
pmurias ruoso: one problem i can see with merging SV*/SMOP__Object* is that perl5 has a lot of macros operating on SV* 13:51
ruoso pmurias, the biggest part of the job would be to change that macros
moritz_ that seems like "ouch" 13:52
pmurias that would slow perl5 down
ruoso not really... we could change all p5 macros to operate on the RI
pmurias you mean call a method instead or if (->RI == ) ...? 13:53
ruoso pmurias, I mean macros like add refcount implement SMOP_REFERENCE(...) 13:55
pmurias lunch& # will thing that over 13:59
13:59 pmurias left
pmichaud good morning, #perl6 14:12
phenny pmichaud: 11:47Z <moritz_> tell pmichaud could you please add `polettix' as a committer to the perl6/perl6-examples repo on github?
masak oh hai pmichaud
pmichaud polettix added. 14:14
moritz_ polettix: now you can commit your euler solution. Welcome :-)
frettled pmichaud: good morning!
polettix thank you, I'll try to figure out how to push three more examples in the project euler directory
moritz_ thanks pmichaud++
jnthn pmichaud: oh hai...I'm back. ;-) 14:15
frettled The Terrible Twins
PerlJam frettled: I thought there were *4* horsemen of the apocalypse 14:16
frettled PerlJam: I don't see that mentioned in the synopses. ;) 14:17
masak so, when's the next Rakudo day? :) 14:19
pmichaud wb, jnthn 14:21
I'll probably do rakudo day today -- merging ins2 branch into trunk
masak \o/
only 232 days left!
moritz_ YaY (ins2 merge) 14:22
14:22 cdarroch joined
missingthepoint wayland76++, pimchaud++ 14:22
frettled masak: perhaps we should sneak in an internal method for Rakudo * day, returning the amount of days remaining 14:23
masak frettled: my goal is akin to that: I'm about to refactor Temporal.pm so that such things are much more feasible. 14:24
you've probably seen my current one-liner. I have one of half its length that would work after my planned refactor.
frettled masak: ah!
masak: if you want to, I'm available for nitpicking over Temporal.pm behaviour. 14:25
masak excellent.
jnthn pmichaud: (ins2 merge) sounds good.
pmichaud: I'll likely hack on Rakudo later on today.
masak frettled: I'll let you know when I have something to review.
14:25 rfordinal left
frettled masak: the main reason that I'm actually interested in working with Perl 6, is that the time before code is considered "stable" (or something like that) is the most interesting time. 14:26
masak frettled: aye, I know what you mean.
frettled I just regret that I haven't had the tuits to get involved at an earlier stage. 14:27
The community is grand.
masak yes, and the "community rewrite" thing really seems to be working. 14:28
as mberends++ said in his talk, something of this magnitude probably hasn't happened before, ever.
EDevil And the yapcs are great. :)
frettled yes! 14:29
I'm trying to figure out how I can get to participate in more YAPCs.
masak I really enjoyed this year's YAPC::EU.
frettled Next year, I'm going to the US anyway, so I may be able to have my vacation intersect with YAPC there. 14:30
masak: agreed! Portuguese++
moritz_ frettled: it's easy. Buy a ticket, book a flight, attend :-)
frettled hehe
polettix I'd like to change the README file in perl6-examples in order to help people that would like to contribute... what's the best thing to do? come here and ask? Write to some mailing list? Go to some web site?
masak was it just me, or is Portuguese really easy to read? 14:31
polettix: come here and ask, methinks.
moritz_ polettix: just do it :-)
frettled masak: it's not just you, it's the same for several others who know bits and pieces of Spanish, French and Italian.
masak oh, good. 14:32
14:32 mberends joined
frettled polettix: As TimToady said (and keeps saying, I think): it's better to ask forgiveness than permission 14:32
masak mberends: o/
messages for you.
mberends \o #perl *
phenny mberends: 08:46Z <masak> tell mberends I looked at the temporal-flux repo and decided to do things in two steps: (1) re-arrange the current stuff from code to method descriptions, (2) add new convenience stuff, mainly nice constructors. I want to be able to write DateTime.new("2010-04") a la iso8601, for example. also, pondering renaming .iso8601 to just .iso
mberends: 13:22Z <masak> tell mberends that at his convenience, I'd like to have a quick tutorial on how to use the new, improved HTTP::Daemon. (The Nibbler isn't HTTP::Daemon-compatible anymore, it seems.) For extra super bonus points, we should sit together and draft up a Handler (a la Rack/Web.pm), which would be the Proper Way to use HTTP::Daemon through Web.pm.
frettled mberends: hiho 14:33
mberends frettled: hihi
jnthn mberends: hi! :-) 14:34
mberends jnthn: sorry to hear about your fever, get well soon 14:35
frettled jnthn: oh, you've caught a fever? Do get well!
14:35 guest_007 left
masak jnthn: oh! wishes of hasty recovery. 14:36
14:36 icwiener joined
masak s/hasty/speedy/ 14:36
moritz_ s/speedy/thorough/
mberends masak: this is our private rewrite of Temporal, right? So it doesn't matter what others have written previously? 14:37
masak mberends: well, except that I aim for it to be integrated back into the official spec when it feels ready. 14:38
frettled masak: See also perl #68434 ;) 14:39
masak frettled: yep, saw that. 14:40
mberends I like DateTime.new("2010-04"), but then we would have to allow "2010" and "2010-04-30" as well.
frettled Yes.
masak frettled: my thought was "hm, mberends will know what to do" :)
frettled masak: muahaha
mberends frettled: those 23 seconds are going to be a pain
masak mberends: of course.
mberends ;)
frettled mberends: yes.
14:40 rfordinal joined
frettled mberends: they will be 23 pains from 1972 until now, and 11 pains before 1972. or something like that. 14:40
masak mberends: basically, I plan to accept most date and time formats of ISO 8601. 14:41
frettled There is no way around having to store the date and time for the inserted leap second in some kind of database (flat file or whatever).
masak: and perhaps a few simplified but rather unambiguous ones? 14:42
masak mberends: so, "2010-04-01", "20100401", "2010-04", "2010" for dates, and similar for times.
frettled A nice variety would be to allow the date formats specified by locale.
masak frettled: not sure the core will be handling locales. but definitely localtime and time zone observances.
frettled These are, IIRC, unambiguous within the locale.
moritz_ oh noes, locales are a pain 14:43
14:43 rdice joined
masak frettled: what moritz_ said. 14:43
frettled moritz_: yep, but something one has to live with.
masak I don't want pain.
frettled hee-hee.
masak frettled: if _you_ want pain, you're welcome to spec and implement it. :P
mberends so far the Observance bits have avoided the locale/timezone tarpit
moritz_ frettled: no, we don't have to live with that
masak mberends: oh, and in order to give even more of a fait-accompli feeling to the spec proposal, I plan to implement the revised Temporal.pm in Rakudo before mailing p6l. :) 14:44
frettled masak: ooops
14:45 leedo_ joined 14:46 Psyche^ joined
Muixirt hi, rakudo doesn't seem to supoort --target=parse|past|post Why? 14:46
jnthn Muixirt: It did last I checked... :-S 14:47
Muixirt jnthn, only --target=pir works
frettled moritz_: In some ways we do, but it depends on at which level we look at it. Implementations should respect locale where locale plays a role, such as user input/output.
moritz_ Muixirt: not if mixed with -e
jnthn Muixirt: Ah, strange.
pmichaud correct, --target=parse|past|post seems to not work with -e 14:48
there's already a ticket for it, iirc
masak aye.
Muixirt moritz_, good info
14:48 missingthepoint left
moritz_ frettled: that's one way to look at it. The other is that Perl 6 is sufficiently extensible that we can leave such ugliness to module authors. 14:48
mberends masak: I would like to aim to accept *all* iso8601 formats if possible, not just *most*, because the latter will require more explanation
frettled moritz_: and one way to look at it is that the settings library _is_ a set of modules :) 14:49
moritz_ frettled: yes. But it still doesn't have to be in core.
masak mberends: right. the one I planned to exclude were mostly things like repetitions and the like.
pmichaud personally, I think it's okay if the core uses an idealized version of time and we leave the ugly details to modules (for use when people need them) 14:50
masak mberends: but I agree; iso8601 looks very good to build an API around.
pmichaud iso8601++
mberends S32-Temporal actually promises (if that's the word) modules supplied with the core, to extend the minimal functionality of Temporal.pm 14:51
masak but I'm leaning to renaming .iso8601 into .iso -- I have no trouble remembering the four digits, but it might bit of a mouthful to learn for others.
mberends: allow me to be sceptical as to that promise.
mberends agreed, the digits serve no useful purpose
masak mberends: actually, in my first commit to temporal-flux, I already replaced s/absolutely minimal/minimal/ 14:52
mberends masak: /me is skeptical too
masak I believe that the core date/time API could very well be usable and pleasant without any extra modules. 14:53
and it won't take much extra work. so that's my goal with this rewrite.
pmichaud mberends: where does S32 say that, ooc?
14:53 KyleHa joined, unitxt left, unitxt joined
masak pmichaud: S32/Temporal:68-69. but I read "a simple set of classes" as those already described in that document, not as a different, yet unwritten set of modules. 14:57
mberends pmichaud: I misread Temporal.pod:69, confusing classes with modules, sorry.
pmichaud mberends: no problem -- I figured that was the misreading :)
I agree with masak++ 14:58
this does mean that sentence could use a rewording, if anyone is up to it :)
mberends I jumped to the conclusion that the classes would be in modules, not in the setting.
frettled Hmm.
14:59 unitxt left
masak pmichaud: I can rewrite it. 14:59
pmichaud: but I'll probably do it in our fork...
14:59 rfordinal left
mberends masak: heh, now they can't ignore the rewrite ;) 15:00
15:00 unitxt joined
masak well, there probably will be some bikeshedding, but I do expect the proposal to be largely accepted. :) 15:00
jnthn masak: I'll only accept it if the bikeshed is pink with lime green stripes painted on it at an angle of 32.5 degrees from the vertical. 15:01
;-) 15:02
frettled jnthn: shouldn't that be 22.5 degrees? ;)
masak jnthn: clockwise or counter-clockwise?
pmichaud masak: my acceptance requirements are less stringent than jnthn++'s
15:02 polettix left
masak pmichaud: but slightly different? :) 15:02
pmichaud I only require the "pink" part.
jnthn masak: Is think you just invented meta-bikeshedding. ;-)
masak oh, same colour. phew.
jnthn s/Is/I/ 15:03
15:03 Patterner left
jnthn ;-) 15:03
masak jnthn: I question the name 'meta-bikeshedding' :P
pmichaud yes, I think it should be called 'pseudo-bikeshedding'
and 'bikeshedding' is too long -- we should huffmanize it to 'meta-bs' or 'pseudo-bs' 15:04
masak yah, that'll catch on.
moritz_ and bikeshedding about pseudo-bs is then pseudo**2-bs 15:06
jnthn bs++
moritz_ and an arbitrary meta level is then pseudo***-bs
mberends nothing to do with bull?
moritz_ "to the power of the star"
PerlJam bs*
moritz_ rakudo: say (3 ** *).WHAT 15:07
p6eval rakudo a5dfe9: OUTPUT«WhateverCode()␤»
masak std: my $bs; $bs***
p6eval std 27968: OUTPUT«ok 00:02 38m␤»
moritz_ rakudo: say (3 ***).WHAT
p6eval rakudo a5dfe9: OUTPUT«WhateverCode()␤»
15:07 Psyche^ is now known as Patterner
moritz_ rakudo++ say 3***.(2) 15:07
rakudo: say 3***.(2)
p6eval rakudo a5dfe9: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/7uKpltvdUM:2)␤»
moritz_ rakudo: say (3***).(2) 15:08
p6eval rakudo a5dfe9: OUTPUT«9␤»
moritz_ this is going to become a great obfu.
frettled yikes 15:09
What does *** do?
moritz_ ** is exponentation
and * is Whatever
and $value op Whatever creates a closure 15:10
pmichaud rakudo: say (3 ** *).(2)
p6eval rakudo a5dfe9: OUTPUT«9␤»
PerlJam rakudo: say (3******).(2)
moritz_ os 3*** returns a closure that returns 3 to the power of its argument
p6eval rakudo a5dfe9: OUTPUT«81␤»
masak rakudo: say (* ***).(2)
p6eval rakudo a5dfe9: OUTPUT«4␤»
moritz_ PerlJam: now you're being evil
PerlJam and the beauty is that rakudo allows for evil :) 15:12
frettled moritz_: okay, that was actually understandable. 15:13
PerlJam rakudo: say (* ***).(2); say (* *** ***).(2); say (* *** *** ***).(2)
p6eval rakudo a5dfe9: OUTPUT«4␤16␤65536␤» 15:14
PerlJam :-)
masak could someone explain to me what this sudden s/awesome/grand/ meme is all about? I muchly prefer the former. I mean, who isn't awed by Camelia? she's huge!
frettled masak: Paul Fenwick's second talk at YAPC::EU
15:14 nihiliad joined
masak frettled: please elaborate. 15:14
frettled masak: he had been talking to one or two of the Irish attendees, and was told that in Ireland, they don't say «awesome», they say «grand».
masak ok. 15:15
15:15 hanekomu left
PerlJam grand! 15:15
pmichaud "awesome" apparently means something like "idiotic"
PerlJam (doesn't seem to have the same punch as "awesome!")
frettled So his talk was renamed on the spot.
masak nono, "awesome" means "awesome". there must be some misunderstanding.
PerlJam pmichaud: I thought that was aweful :)
frettled pmichaud: yep, I think it was something like that, and that rhymes with how idiotic many of the statements with «awesome» in them are (not here at #perl6, but elsewhere, like, oh, da intarwebs) 15:16
jnthn
.oO( great, now we have to rename a bunch of RT tickets to be "less than grand" )
masak I concede that a grand piano is grand. but I can't think of much else.
PerlJam masak: don't you have a grand father?
masak PerlJam: oh, right.
yes, two, actually. 15:17
both of them really grand.
moritz_ I reject this motion. "grand" just doesn't has enough syllabies to be truely impressive
PerlJam masak: and here in southern USA we have Grand Prix
frettled moritz_: confabulous!
jnthn grand can also be English for "a thousand pounds" (as in the currency)
"It cost me two grand!"
masak PerlJam: but you must admit that "Awesome Prix" sounds better. :)
frettled jnthn: that's just … grand! 15:18
I say, this bikeshed's really looking grand now.
PerlJam wonders what a grand jury really is though
moritz_ rakudo: say (* ** * ** * + 2 ** *).(3) 15:19
masak PerlJam: a jury consisting only of grandfathers?
p6eval rakudo a5dfe9: OUTPUT«7625597484995␤»
15:19 hercynium left 15:20 donaldh left
sjohnson anyone know how to install pp / PAR Packer on windows? 15:20
moritz_ rakudo: say (* ** * * * + 2 ** *).(3)
p6eval rakudo a5dfe9: OUTPUT«89␤»
masak sjohnson: are the Perl 5 people being non-responsive again?
15:20 donaldh joined
sjohnson masak: yep :[ 15:20
masak what a brain-drain... :)
sjohnson well i asked on efnet #perl 15:21
ill ask on freenode there
15:21 pmurias joined
PerlJam moritz_: now, *that's* grand ;) 15:21
moritz_ PerlJam: that's ord("J") - you can guess what I'm working on :-) 15:22
pmurias ruoso: one thing i'm afraid of is that the perl5 macros might operate on an too low a level to map cleanly
masak moritz_: you should write a script that generates what you're working on for you :)
moritz_: and then blog about it :D
PerlJam moritz_: It would be quite cool if you could just vary the spacing between * and get ... something useful let's say :) 15:23
moritz_ meta-japh-prgramming
PerlJam: aye
sjohnson FML. looks like par packer is yanked out of activeperl package manager or something
15:24 justatheory joined
PerlJam sjohnson: this is #perl btw. (besides, shouldn't you be using strawberry instead?) 15:24
pmurias ruoso: that's why i think going with proxy objects might be the more resonable choice 15:25
sjohnson PerlJam: i'm going to google Strawberry Perl
never heard of this term b4
wow 15:26
good bye active perl
ruoso pmurias, I've already checked with #p5p people, and they seem to think my idea is reasonable
moritz_ rakudo: say (*+2, *+3)>>.(5) 15:29
p6eval rakudo a5dfe9: OUTPUT«!whatever_closure!whatever_closure␤»
moritz_ it would have been gra^Wawesome if I could have called the closures like that
15:29 justatheory left
frettled moritz_: grawsome 15:29
or grandsome
moritz_ rakudo: say (*+2, *+3).map: *(3) 15:30
p6eval rakudo a5dfe9: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/jsA33bpfeK:2)␤»
moritz_ rakudo: say (*+2, *+3).map: *.(3)
p6eval rakudo a5dfe9: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/sJjPQnMYSp:2)␤»
moritz_ that would have been grawsome, too
KyleHa Good morning #perl6! 15:33
phenny KyleHa: 06:34Z <moritz_> tell KyleHa every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine)
masak KyleHa: o/
pmurias ruoso: so what to we need to work on your perl5 interop plan? 15:34
sjohnson PerlJam: can i has a hint as to how to install Par-packer in CPAN?
it seems "PAR-Packer" is the name of what i want, but i'm afraid to install PAR::Packer
*puppy dog eyes* 15:36
TimToady your name is Rin Tin Tin, you can do anything
mofino sjohnson, #perl may be able to help as well
pmichaud jnthn: does "is default" work yet?
jnthn pmichaud: multis? 15:37
moritz_ it worked at some point
pmichaud jnthn: (on multisubs)
pmurias TimToady: does $foo is context set the contextual information on the variable or the scope?
jnthn pmichaud: To mark default cand?
sjohnson alright, will try. if they make fun of me, i might come back here and ask for a hug
jnthn pmichaud: AFAIK yes
pmichaud jnthn: yes
jnthn pmichaud: Tested also.
moritz_ rakudo: multi a() is default { 1 }; multi a() { 2 }; say a
p6eval rakudo a5dfe9: OUTPUT«1␤»
mofino sjohnson, this is really a perl6 development channel
pmichaud jnthn: oh. Could we use that to resolve the infix:<+>(Complex, _) versus infix:<+>(_, Complex) difficulty?
jnthn pmichaud: Yes. 15:38
pmichaud Ah. I will do that today then.
TimToady pmurias: why would it mark the scope?
jnthn Could.
pmurias TimToady: that is if i put the container in a different scope is it still contextual?
jnthn pmichaud: However, I'm slightly uncomfortable on that front.
pmichaud jnthn: why?
pmurias TimToady: my $bar; {my $foo is context; $bar := $foo}; #is $bar a context variable? 15:39
jnthn pmichaud: One of the design principles of MMD in Perl 6 is that parameter order becomes less important.
TimToady contextuals only care about the lexical view, but other scopes generally alias into the lexical scope anyway
jnthn pmichaud: Sorry
pmichaud: I mean, is not important.
pmichaud: While you can use is default here, part of me wonders if we're missing something somehow.
pmichaud I don't mind if it's a stop-gap until we have something better. 15:40
jnthn But my brain is too mush today to think beyond that. ;-)
OK, in that case certainly go for it.
pmichaud I'd just like to see us get to where people can overload the operators.
in particular, to resolve some of: lastofthecarelessmen.blogspot.com/2...ector.html
"The only drawback I have found so far is a significant Rakudobug -- you cannot define an operator which uses any version of that operator internally." 15:41
jnthn pmichaud: OK. Go for it. No objections, the wins are worth it. And it may well be the Right Thing.
pmichaud: Something just feels a little almost-but-not-quite-right about it.
pmichaud I suspect it's not the Right Thing, but it would lift a significant barrier for folks. It will also be interesting to see how much of a speed hit we take
15:42 rfordinal joined
pmichaud egads 15:42
TimToady pmurias: I think $bar is contextual is the simplest answer, probably, and people who use aliasing like that should be taken out and made to dig holes all day
pmichaud I just did "git merge ins2" to bring the ins2 branch into trunk and.... everything passes.
jnthn Quite a bit, but because of signature binding, rather than Rakudo multi dispatch.
masak ins2++
pmichaud running spectest now
moritz_ pmichaud: that was my experience too, when last I tried it 15:43
(about a week ago)
pmichaud I'm quite impressed that git was able to merge the ins2 branch without any difficulties -- that branch is three weeks old
PerlJam pmichaud: you're just used to the brain-dead merging of other SCMs.
pmichaud PerlJam: yes, I am.
KyleHa I notice that on one machine with newer TAP::Harness, everything passes, but with the older one on another machine there's always two that fail. 15:44
frettled pmichaud: are you less worried about branches now, then? :D
moritz_ pmichaud: actually now and again I rebase the autounfudge-with-limits branch, which is now months old. The worst thing that happened so far was a merge conflict in build/PARROT_REVISION 15:45
pmichaud KyleHa: I added an option to t/harness that tells newer TAP::Harness to ignore exit-code-errors
KyleHa pmichaud: That explains it.
pmichaud older Test::Harness doesn't understand that option, so it still reports the exit code errors
(that's my guess, anyway) 15:46
KyleHa I figured it was something like that, which is why I highlighted the harness difference.
There are other differences too, of course. One's Debian, one's Ubuntu...
pmurias ruoso: should i update the perl5 fork on gitorious or start a new one on github? 15:54
15:55 stepnem left
pugs_svn r27969 | lwall++ | [STD] catch #` with no opener, moritz++ 16:01
16:02 stepnem joined, stepnem left 16:04 payload joined, stepnem joined 16:07 stepnem left 16:12 Guest1717 joined
pmichaud Okay, I just pushed the 'ins2' branch to github. Testing welcome. 16:15
(merged to trunk, that is)
dalek kudo: a50e07d | pmichaud++ | :
Merge branch 'ins2'
16:16
masak moritz_++ # perlgeek.de/blog-en/perl-6/timeline....writeback 16:17
pmichaud I would've liked to have seen the time in the title, though :) 16:18
moritz_ pmichaud: you mean "less than one hour"
pmichaud "Timeline for a syntax change in Perl 6 -- 43 minutes)
moritz_ ?
pmichaud yes, something like that
I'm starting to see how much good titles matter
masak I expect some people will look at such a list of events and exclaim "wha'? you're still fiddling with pieces of syntax, X years later?", completely ignoring the well-oiled machinery that must be in place for a change to go through this quickly. 16:19
aye, good titles are really important.
pmichaud I liked the example that cog gave in the closing yapc::eu keynote, showing that the blog post entitled "YAPC::EU fail" was quite misleading
PerlJam masak: one battle at a time :)
frettled pmichaud: yes!
pmichaud: he did well to say so, in the way that he did. 16:20
pmichaud the other one was "Why do corporations hate Perl?", when the article then went on to basically prove that corporations like perl. But someone just reading the title would conclude that corporations don't like Perl.
frettled yup
16:20 frederico joined
pmichaud so I'm looking at titles a bit more closely these days. Many times in my feed reader I don't get past the title :) 16:21
frettled I have the same problem, but many times, I don't even get to read the titles. :D
masak frettled: that's why absolutely nothing is important. :P 16:22
16:22 DQuest left
frettled I see that I've mostly avoided the trap of being dangerously negative in my blog titles, thank goodness. 16:24
16:25 jd8hh57 left 16:26 nickcammarata joined
pmurias TimToady: one problem with the contextual bit being kept on the container is if you get the container from somwhere else like $foo := foo() or even worse sub foo($foo is ref) {...} 16:29
16:34 justatheory joined
masak mberends: you still there? 16:34
16:35 akl_ joined, guest_007 joined 16:38 nickcammarata left 16:39 iblechbot joined
TimToady pmurias: good point, and it might actually be easier to scan symbol tables than the actual containers 16:43
using "symbol table" to mean the hash containing names, which there is only one of, regardless of how many times the closure is cloned. 16:44
1 stash corresponds to (potentially) many pads
btw, was it you who was using "stash" to mean something other than "symbol table hash" a week or so ago? that bothered me 16:45
16:45 akl left
TimToady not because "stash" doesn't mean the other thing in English, but merely because we were using the term ambiguously 16:46
pmurias TimToady: don't think so, i always thought stashes were something Template Toolkit uses
moritz_ actually the word doesn't appear in the synopsis anywhere 16:47
TimToady "stash" is a technical term in P5 innards for symbol table hash, so I tend to carry that over
you'll find it in the method names in STD 16:48
moritz_ does it contain lexicals, too?
TimToady find_stash and such
yes
(in p6)
or, at least, a desciption of how to find the lexical in whatever the current pad is 16:51
package stashes don't have to deal with cloning, generally 16:52
moritz_ does anbody know if rakudo needs the 'parrot-devel' or 'libparrot-dev' packages? 16:55
16:56 justatheory left 17:02 EDevil left
ruoso pmurias, is there a p5 repo on github already? if there is, you can use it... if not it probably make sense to keep it on gitorious 17:03
moritz_ I know that chip has one on github. Don't know if there's an "official" one 17:04
github.com/chipdude/perl/ 17:05
ruoso TimToady, I think when we (in SMOP/mildew) say stash, we refer to the lexical scope object
dalek kudo: 006ae4d | moritz++ | README:
notes on installed parrots in README
kudo: a5aea15 | moritz++ | README:
mention perl6-projects.org in README
ruoso which is a hash, but is something more than that...
moritz_ github.com/github/perl/tree/blead looks rather official 17:06
17:06 Guest1717 left
mberends masak: just git checked gist.github.com/masak/temporal-flux...ree/master 17:07
17:09 stepnem joined
masak mberends: grand. I'm going home now, but I'd like to sit down at some point and build some kind of bridge between HTTP::Daemon and Web.pm. 17:09
mberends right. tomorrow morning, fairly early? 17:10
moritz_ reminds people of #perl6-soc 17:11
17:13 mikehh_ joined 17:14 pyrimidine joined 17:15 SmokeMachine left
masak mberends: deal. 17:15
mberends aweso^W grand!
17:15 kane_ joined
pmurias ruoso: there seems to be a mirror of perl at github 17:15
what's wrong with awesome?
17:16 riffraff joined
masak moritz_: aye, good. I'm going home to eat now, but will be back for 19:00 UTC. 17:16
literal: meeting tonight. :) 17:17
ruoso pmurias, so I guess you can work there...
moritz_ masak: he's already in there ;-)
ruoso the gitorious branch is unused and outdated
mberends pmurias: awesome was been (temporarily I think) eclipsed by the Irish term. See today's backlog
moritz_ food is a good idea, though
17:17 pyrimidine left 17:18 Patterner left, riffraff left
literal masak: aye 17:18
phenny literal: 06 Aug 13:45Z <masak> tell literal was going to tell you that I was going to miss yesterday's meeting, but was too preoccupied to do even that. looking forward to an update the next time we happen to intersect (my life will be returning to normality starting Sunday)
masak refuses to cede on awesome
17:18 pyrimidine joined
literal masak: you were abroad, I heard? 17:19
masak literal: good. see you then, for two weeks of resume. :)
literal: aye, YAPC::EU, Lisbon.
17:19 Psyche^ joined
masak food & 17:19
17:19 masak left, Psyche^ is now known as Patterner 17:20 abra joined 17:22 M_o_C joined
pmurias ruoso: adding you as a repository collaborator is enough to grant you a commit bit? 17:23
literal on github? yep
pmichaud at the moment I'm sticking with awesome, until/unless I find myself in Ireland. 17:26
pugs_svn r27970 | fglock++ | starting a Lisp (SBCL) emitter for MiniPerl6
r27970 | fglock++ |
r27970 | fglock++ | $ echo 'class Main { say "hello, World" }' | perl -Ilib5 mp6-lisp.pl
r27970 | fglock++ | ;; Do not edit this file - Generated by MiniPerl6
r27970 | fglock++ | (if (not (ignore-errors (find-class 'Main)))
pmichaud I personally find "grand" to be less than "awesome", and in Perl 6 we don't do "less than awesome". :-)
pugs_svn r27970 | fglock++ | (defclass Main ()
17:26 mikehh left
pugs_svn r27970 | fglock++ | ((my-arg :initarg nil)))) 17:26
r27970 | fglock++ | (Main:say "hello, World") 17:27
pmichaud I'll even submit a proof: Would awesome be more than $1000? If so, then "awesome" is greater than (a) "grand". QED
:-) 17:28
afk, lunch 17:29
jeekobu Some things are more grand than others www.newel.com/PreviewImage.aspx?ItemID=6955 17:32
17:36 stepnem left
pmurias ruoso: is using pkg-conf sane? 17:42
dalek ok: 5a38b11 | (Hinrik Örn Sigurðsson)++ | (2 files):
Depend on Pod::Text::Ansi 0.04
17:51
ok: c0c8ec4 | (Hinrik Örn Sigurðsson)++ | (9 files):
Bump version to 0.19
17:57 donaldh left
frettled pmichaud: if the dollar has depreciated enough, sure! ;) 18:00
18:03 Front_slash left
frettled moritz_: regarding which package would be required by rakudo, check the contents of the packages (should be on the web, or if you can be bothered with installing them and uninstalling the one you don't need, dpkg -L packagename). In my install, made by proto, rakudo links to libparrot.so.1.4.0. 18:04
rakudo: my $1000 = 1; say $1000; 18:07
p6eval rakudo a5aea1: OUTPUT«Use of uninitialized value␤␤»
mberends rakudo a5aea1: OUTPUT«Use of less than awesome value␤␤» 18:08
PerlJam shouldn't that be "Use of less than grand value"? :) 18:09
mberends In the Irish locale, yes :) 18:10
frettled :)
See, this is why we need locale support in the core!
18:10 kane_ left, zamolxes joined 18:13 masak joined, nihiliad left
colomon_ I must say (after scanning the morning's #perl6) that my (admittedly rough) understanding of Irish English would have "grand" as much less impressive than American English's "awesome". 18:16
I'd think their "mighty" would be closer... 18:17
frettled colomon_: Well, you have to take into account that everything in American English is grossly exaggerated. 18:18
When an American says "great!", they don't necessarily mean that it's great, only that it's okay. :D
moritz_ in Frakonia it's just the other way round 18:19
masak colomon_: I could go with 'mighty'. :)
moritz_ a "ok" or "not bad" is about the highest praise you ever get
masak "less than mighty error message..." :P
moritz_ "baassd scho"
colomon_ But that's exactly how I hear the Irish "grand" -- positive approval, but nothing special.
frettled colomon_: are you American, by any chance? :D 18:20
colomon_ frettled: Yup.
frettled See?
_timbunce colomon_: I agree
mikehh_ rakudo does not build on parrot anymore
moritz_ mikehh_: have you tried 'perl Configure --gen-parrot', or an installed parrot? 18:21
colomon_ frettled: but I mean, my understanding of Irish "grand" is about your understanding of American "great".
frettled colomon_: aha
colomon_ I play Irish traditional music, which makes for a fair amount of contact with Irish natives. :)
mikehh_ using perl Configure.pl --parrot-config=../parrot/parrrot_config 18:22
moritz_ mikehh_: that only works with an installed parrot these days
frettled Isn't "mighty" used mostly with "fine", e.g. "mighty fine"? That makes the usage different from "grand".
moritz_ mikehh_: pmichaud++ merged the ins2 branch a while ago
mikehh_ thats BS - it worked this morning 18:23
frettled The ins2 branch was merged today.
colomon_ frettled: I'd think of "mighty fine" as an American expression, not Irish at all.
moritz_ mikehh_: what exactly is BS?
18:24 nickcammarata joined
mikehh_ I don't want to INSTALL parrot - I build it and test it myself - I do this 4 or 5 times a day - why would I want to install it 18:24
moritz_ mikehh_: you can install it locally, which is what --gen-parrot does - really not much more effort than building it
heck, it doesn't even have to be in $PATH if you pass the appropriate options to COnfigure.pl 18:25
but supporting both installed and build tree parrot is nearly impossible today
masak wow, sometimes I can feel the currents of information between #perl6 and Twitter intersecting. it tickles, sort of.
s/between/in/
mikehh_ why would I want to do that - I use different compilers and lots of different config options
moritz_ mikehh_: because you want to build rakudo? 18:26
mikehh_ I thought our idea was to get the build tree and install tree to be the same 18:27
moritz_ yes. But nobody implemented that
so we took a different route
when somebody implements install tree == build tree we'll happily pick up the auld ways again 18:28
mikehh_ I will look at it
18:29 nihiliad joined
frettled colomon_: "mighty fine" was British English in 1830, at least, according to Bellenger (A dictionary of idioms: French and English" 18:29
18:29 mikehh_ is now known as mikehh
frettled colomon_: anyhoo, just in -Ofun - I'll stop stretching it further 18:29
colomon_ :) 18:32
jnthn hopes he can get away with moving a git repo on disk and having it still Just Work without having to clone it freshly. 18:33
Oooh, looks like yes.
git++
masak jnthn: aye; all of the info is relative to the top dir of the checkout. 18:34
jnthn That's nice. :-)
masak git tends to be nice.
jnthn Often. 18:35
Aside from the learning curve.
PerlJam git is SCM done right.
jnthn: perl has a learning curve too you know :)
jnthn tries a build now ins2 is merged in.
masak I've been time traveling at work today with git, picking up files from a year ago. it felt like science fiction.
moritz_ actually even svn repos can be relocated without trouble, IME
jnthn PerlJam: I know, but Perl seemed to mind my baby speak less. ;-)
masak jnthn: I find the learning curve mostly consists of unlearning what I used to think I knew about RCSes. :)
jnthn masak: Heh, yeah, but I still have to deal with other RCSes. ;-) 18:36
pmichaud other than mikehh's notes above, anyone else having trouble with the ins2 branch merge?
jnthn But in terms of what to expect, I can see that, yes.
pmichaud (more precisely, with rakudo trunk after the ins2 branch merge?)
jnthn pmichaud: Configure.pl --gen-parrot here spat out a "Path not found" style error right at the start.
But then has continued to check out Parrot and is now building it. 18:37
moritz_ pmichaud: worked fine here, after I spend 2 minutes reworking my custom scripts
masak I think Aristotle is the one brandishing the slogan that git is really, really simple -- and it is.
PerlJam masak: once you understand the number and scope of the things you have to deal with it's simple :)
masak it's just that to get to the complexity level you're used to from other systems, using the simple primitives found in git, you have to tear down a lot of useless knowledge in order to take in the git way of things. 18:38
a year ago, I didn't completely buy into distributed version control. now, I'm sold.
PerlJam masak: what specifically sold you? (if it was any one thing) 18:39
masak PerlJam: hm. let me think.
pmichaud I was already sold on git a bit earlier in the year, but if I hadn't been, the ability for people to clone the rakudo git repository and build their own releases would've done it for me 18:40
to me, that's a feature we never really had with svn
masak PerlJam: it's hard to pinpoint any one thing. but I think two things independently made me super-happy: offline commits and (somewhat later) rebasing. 18:41
pmichaud having "git merge ins2" work this morning was a happy surprise, though
18:42 kane_ joined
jnthn pmichaud: fail :-( 18:42
src\pmc\perl6_group.dll : fatal error LNK1120: 68 unresolved externals 18:43
pmichaud hmmm
I wonder what's up with that
takadonet omg Perl 6 is broken!!! 18:44
masak ok, so what's the new way to build Rakudo? my usual build sequence fails now.
18:44 [particle]1 joined
pmichaud it's supposed to be same as before 18:44
masak then something broke, yes.
pmichaud perl Configure.pl --gen-parrot; make
masak pmichaud: oh, but I've always build Rakudo-in-Parrot. 18:45
pmichaud if you're building your own parrot, you need to do "make install" and point Configure.pl at the installed parrot_config
masak aha.
pmichaud Rakudo no longer builds from the Parrot build tree
masak so I need to install my Parrot from now on.
gotcha.
pmichaud it can be installed to a local dir -- this is what --gen-parrot now does
18:45 tann joined
pmichaud oh, and it needs to be "make install-dev" 18:46
(for parrot)
tann perl6: 1 ff 1 and say 'plop!';
PerlJam pmichaud: except that his version of parrot was probably already up to date, so it didn't do that
masak hm, I already did 'make install'
p6eval pugs: OUTPUT«*** No such subroutine: "&infix:ff"␤ at /tmp/IHos3behmT line 1, column 1-23␤»
..rakudo a5aea1: OUTPUT«sh: ./perl6: No such file or directory␤»
..elf 27970: OUTPUT«Undefined subroutine &GLOBAL::infix_ff called at (eval 127) line 3.␤ at ./elf_h line 5881␤»
pmichaud needs to be "make install-dev"
masak oki.
jnthn pmichaud: I did perl Configure.pl --gen-parrot 18:47
masak tann: very unimplemented, as you can see...
arthur-_ do grammars work in rakudo ?
jnthn pmichaud: And then make.
masak arthur-_: oh yes.
jnthn pmichaud: Is that the expected sequence?
pmichaud jnthn: yes, I'm not sure what's up there. Other people have been able to get it to work under windows
arthur-_ masak: ok cool, i'll try to use them to get paths in queries
masak tann: and I can see why, given that those operators have special state connected to their source location. 18:48
18:48 abra left
masak arthur-_: nice! looking forward to it. 18:48
pmichaud jnthn: is it failing while creating the .dll itself, or at some other step?
jnthn pmichaud: When linking the DLL
pmichaud: It looks like it can't resolve any of the symbols from Parrot.
pmichaud I wonder if there's an option missing there
18:48 PZt left
masak pmichaud: Rakudo builds here. thanks. 18:48
jnthn pmichaud: The link line looks wrong. 18:49
pmichaud: It's missing stuff.
TimToady to get the Irish on board, maybe we should go with "gobsmacked" instead :)
pmichaud jnthn: I just basically copied from what partcl did
TimToady though the valence is a bit wrong
pmichaud jnthn: if the link line is missing stuff, I'm not sure what should go there :-|
masak TimToady: "less than gobsmacked error message..." ? :P 18:50
18:50 dakkar left
jnthn pmichaud: link -out:src\pmc\perl6_group.dll perl6_group.obj src\pmc\\*.obj -nologo -nodefaultlib -debug -dll 18:51
pmichaud: That is not even referencing libparrot.dll
pmichaud: Not only that, but it's missing references to any of the standard Windows lib too.
TimToady it'd have to be "less than gobsmacking", I expect
pmichaud how does it work for pbctoexe, I wonder? 18:52
frettled TimToady++
jnthn The missing Windows lib(s) causes __DllMainCRTStartup@12 to be not found too...
frettled Perl 6 is gobsmacking! 18:53
jnthn Ah, this looks wrong
LIBPARROT =
(that is, not set to anything)
colomon_ TimToady: Isn't gobsmacking British, too? I think I'd go for "desperate" rather than "less than gobsmacking" to appeal to the Irish. :)
18:53 SmokeMachine joined
pmichaud jnthn: what does parrot_config produce for 'inst_libparrot_ldflags' ? 18:54
aha!
looks like the name changed
inst_libparrot_linkflags => '-L/home/pmichaud/rakudo/parrot_install/lib -lparrot'
would that be closer to correct?
(I wonder why we have two configuration variables here) 18:55
TimToady maybe one of them is Irish?
jnthn pmichaud: That looks to be part of what's missing. 18:56
pmichaud: Also the contents of libs
pmichaud jnthn: try changing build/Makefile.in:19 to have LIBPARROT = @inst_libparrot_linkflags@
frettled colomon_: "Perl 6 - more than desperate" doesn't have quite that ring to it. 18:57
jnthn pmichaud: Trying. 18:58
18:59 fridim_ joined
masak #p6s starting now. 19:00
colomon_ frettled: You're quite right. But "desperate error message" has a nice ring to it.
19:00 tann left
frettled yep 19:00
jnthn pmichaud: Oh gah 19:01
19:01 leedo__ joined
jnthn pmichaud: While on the one hand it adds what is needed in terms of linking in libparrot 19:01
19:01 leedo__ left
jnthn pmichaud: It does it with gcc syntax, not msvc++ syntax. 19:01
LINK : warning LNK4044: unrecognized option "LC:\Consulting\rakudo\parrot_instal
l\lib"; ignored
LINK : warning LNK4044: unrecognized option "lparrot"; ignored
pmichaud rakudo's makefile doesn't (afaik) add anything in terms of its own ideas about syntax
it just takes whatever comes from parrot_config 19:02
so, try parrot_config --dump and see if any of the options there have the linker values that would "look correct" to you
mikehh I did a sudo make install, but it alsao needs sudo make install-dev
Matt-W So, new build process then?
pmichaud mikehh: correct -- we have to have "make install-dev" to build
Matt-W: the --gen-parrot option to Configure.pl should continue to work 19:03
it only requires a new build process for those who are doing something different with parrot
mikehh anyway it built and is now running make spectest
Matt-W pmichaud: ah excellent, that suits me very well
not doing any parrot development myself
pmichaud also, it doesn't require that one do a system-wide install of parrot --any installation location will work
19:04 [particle] left
pmichaud in fact, that's what --gen-parrot does by default -- it "installs" parrot into a subdirectory of the rakudo dir 19:04
19:06 eternaleye joined
jnthn pmichaud: bbia little bit - nomming dinner 19:06
mberends frettled: you'll pay for RT#68434 (sorry, no patch) one day! It only seems fixable by a lookup table for a wiggly curve like this: hpiers.obspm.fr/eop-pc/earthor/utc/...econd.html 19:07
19:07 [particle]1 is now known as [particle]
pmichaud I'm not sure I'm willing to classify 68434 as a bug yet 19:09
frettled mberends: :)
mberends: yes, I know, a LUT is the only solution for that one.
19:09 takadonet left
frettled mberends: hpiers.obspm.fr/eop-pc/earthor/utc/...s_tab.html 19:10
pmichaud: it's not an urgent bug, at least.
But it's nice to have there in case one wants to implement UTC support.
mikehh ok - make test/make spectest PASS rakudo (a5a515) on installed parrot r40503 (spectest up to 27970) 19:11
thats on Ubuntu 9.04 amd64
[particle] smolder reports would be so much nicer 19:12
pmichaud frettled: yes, but I'm not sure that leap-second-aware UTC support should be exposed in the core
[particle] i wonder what's needed for that to happen
pmichaud it should be available via a module, certainly
pmichaud reads up on tai and utc again
frettled pmichaud: if so, we should change the spec a bit, so that it doesn't appear to give the impression that gmtime is UTC based. 19:13
mikehh it worked earlier on Ubuntu 9.04 i386 - rakudo (a5dfe95) on parrot r50503 spectest up to 27968
r40503 19:14
PerlJam masak: your YAPC::EU talk looks like it's trying to be takahashi, but the font needs to be bigger :) 19:16
masak PerlJam: is takahashi a fixed set of rules?
PerlJam no, but takahashi is typically few words, large font 19:17
masak PerlJam: anyway, I think you're quite right. my slide guidelines have been inspired by many things, takahashi among others.
PerlJam: I hope to be releasing that slide software soonish as a CPAN module.
PerlJam I like the way you rotated the whipuptitude/manuplexity graph 45 degrees. 19:18
19:19 mikehh_ joined
masak thanks -- that's the second time I steal that graph for my purposes. :) 19:20
19:21 nickcammarata left
colomon_ pmichaud: Getting the main rakudo from github post ins2 -- configures and builds okay on OS X, make test is fine, make spectest fails on a bunch of tests. 19:22
mikehh_ BTW the build used g++ rather than gcc on Ubuntu 9.04 amd64 19:24
19:24 frederico left 19:25 SmokeMachine left
pmichaud colomon_: what is "a bunch of tests"? 19:26
Rakudo just uses whatever was used to build Parrot (or whatever parrot_config reports was used to build it)
19:26 SmokeMachine joined
lisppaste3 colomon pasted "Tests failing on OS X" at paste.lisp.org/display/85283 19:27
mikehh_ pmichaud: yes - but just letting you know I build using g++ rather than gcc
19:27 frederico joined
pyrimidine colomon_: I'm using an installed parrot on OS X and am running spectests (still going), but so far everything is passing (S02, S03 tests all passed so far) 19:30
installed parrot with 'make install-dev' 19:31
19:32 mikehh left
jnthn pmichaud: Got a few @task to deal with now - will look later at the linking issue. 19:34
colomon_ pyrimidine: I just used the classic "perl Configure.pl --gen-parrot", which I believe the above conversation indicated is supposed to work still. 19:35
pyrimidine colomon_: ok, I'll try that. Using 'make install-dev' and 'make spectest' everything passes 19:39
19:39 eMaX left, Tene left 19:47 masak left, masak joined
pyrimidine colomon_: so far, all spectests passing (up to S04 now) after removing my installed parrot and using 'perl Configure --gen-parrot' 19:48
colomon_ Hmmm. Wonder what could be different between our builds? 19:50
19:50 eMaX joined
pmichaud colomon_: any idea what version of Parrot you're building with? 19:51
The errors you're getting look to me like a much older parrot.
colomon_ r40428
according to SVN.
pmichaud what does "parrot_config revision" report? 19:52
colomon_ 40428
pmichaud what does "parrot_config has_icu" report?
colomon_ Is it possible it might build parrot using --gen-parrot and then link parrot somewhere else? 19:53
19:53 eMaX left
pmichaud it's possible, yes, if there's another parrot on the system 19:53
colomon_ I might have installed a parrot sometime last year that doesn't get used for anything now. (Until this, maybe.)
19:53 SmokeMachine left, M_o_C left
colomon_ How to tell? 19:53
pmichaud anyway, those failing tests are all files that are marked as "# icu" in spectest.data
so it looks like rakudo is having trouble finding your icu library 19:54
19:54 SmokeMachine joined
pmichaud so either parrot_config is improperly reporting that you have icu available when you don't, or t/harness is improperly testing for icu 19:54
...checking the latter now
PerlJam pm: are the failed assertions a known thing (with make spectest) ?
pmichaud ...what failed assertions? you mean on exit? Yes, they're known. 19:55
PerlJam src/call/pcc.c:613: failed assertion 'PObj_is_PMC_TEST(sig_pmc)'
pmichaud PerlJam: is that on exit?
colomon_: what does the HAS_ICU line in your Makefile say?
pyrimidine './parrot_config has_icu' on mine is 1 19:56
pmichaud aha. there doesn't seem to be a HAS_ICU line in the makefile
that's a bug
colomon_ grep HAS_ICU Makefile gets HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code --icu=$(HAS_ICU)
pmichaud right 19:57
I don't see where HAS_ICU is being defined now
PerlJam I get that twice. for t/spec/S14-roles/basic.rakudo and t/spec/S12-attributes/class.rakudo
colomon_ I have to deal with meatspace issues. Back in 10.
pmichaud PerlJam: yes, known bug in Parrot
PerlJam figured. It seemed familiarish.
pyrimidine PerlJam: Seeing the same thing (failed assertions) during S12-attributes/clone.t, S14-roles/composition.rakudo 19:59
20:00 nErVe joined
pmichaud colomon_: just pushed a fix for the icu issue to github -- try again when you get a chance 20:00
phone
dalek kudo: a04c54b | pmichaud++ | build/Makefile.in:
Restore lost HAS_ICU definition (colomon++)
20:01
kudo: 67e3439 | pmichaud++ | :
Merge branch 'master' of [email@hidden.address]
arthur-_ masak: first sucessfull astaire run with w::rq and w::rs 20:06
masak arthur-_: wow, neat!
arthur-_ i start writing tests tomorrow
masak heads over to november-wiki
20:07 nErVe left 20:11 eMaX joined 20:14 frederico left
cxreg i think the ins2 merge broke the build 20:15
make: *** No rule to make target `/usr/local/lib/parrot/1.4.0-devel/library/PGE/Perl6Grammar.pbc', needed by `src/gen_grammar.pir'. Stop.
20:17 mikehh_ is now known as mikehh 20:23 [particle]1 joined
cxreg parrot_config is reporting /usr/local/lib even when run with a relative path. maybe this is a parrot bug. 20:24
colomon_ pmichaud++ # looks like that cleared up the S02 errors I was getting, at least.... 20:26
20:27 stepnem joined 20:28 [particle] left, masak left 20:32 polettix joined 20:36 fridim_ left 20:37 mzedeler joined 20:38 Tene joined 20:39 kane__ joined
pmichaud cxreg: did you try rebuilding with --gen-parrot ? 20:40
cxreg no, i have a separate parrot checkout already
pmichaud ah
cxreg so i used --parrot-config
pmichaud Rakudo now only works from a "make install-dev" copy of Parrot 20:41
cxreg oh, ok.
pmichaud we can no longer build Rakudo from a Parrot build tree
I should probably add some sort of check into rakudo's Configure.pl that gives a helpful message when trying to build from a build-tree copy of Parrot 20:42
cxreg "(If you want to build Rakudo on top of an installed parrot, make sure. that the development files are also installed (C<make install-dev> when installing parrot, or the C<parrot-devel> and C<libparrot-dev> packages on Debian)."
that should probably not be conditional, then
pmichaud I suspect the parrot-devel packages won't be sufficient for rakudo clone checkouts
the packages are only for the latest 1.4.0 release -- rakudo often relies on features added/changed in Parrot since its last monthly release 20:43
moritz_ cxreg: read on.
Note that an installed parrot still has to
satisfy the minimum version requirement, so if you have an official
parrot release installed, chances are that you can only build the
corresponding Rakudo release on top of that, not the latest
development version
cxreg that still implies that an install is not required
pmichaud I can re-work the readme a bit 20:44
also, rakudo does now have a "make install" target -- it installs in the same location(s) that parrot installs
frettled There, finally got git-core installed from ports, now I can clone Rakudo and test on MacOS 10.4 :) 20:45
lisppaste3 colomon annotated #85283 "One remaining failing test on OS X" at paste.lisp.org/display/85283#1
cxreg rebuilds parrot with a --prefix
colomon_ I think that one failed a couple of days ago when I built the then-current Rakudo on my 64-bit Linux box. 20:46
20:46 kane_ left
Matt-W I'm sure rakudo builds much faster these days than it used to 20:47
colomon_ (and I'm off to dinner, back in a few.)
20:52 [particle]1 left
mberends pmichaud: the post-ins2 perl6 executable runs fine on Jaunty (and make test/spectest) *only* if rakudo is the current working directory :( 20:53
pmichaud mberends: yes, because the dynamic libraries always look in "dynext/". Doing "make install" for Rakudo will cause it to install itself in Parrot and then work for other directories. 20:54
mberends ok, thanks :) 20:55
20:56 frederico joined
KyleHa rakudo: my @av; @av[0][0] = 'boo'; say 'yay'; 20:57
p6eval rakudo 67e343: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'Failure'␤»
pmichaud known autovivification bug
KyleHa Thanks, pmichaud++
20:57 [particle] joined 20:58 hercynium joined
Tene pmichaud: if I have: module Curses { use Curses:from<parrot>; ... }; do you have any ideas on the appropriate way to re-export everything from Curses:from<parrot>; ? 20:58
pmichaud use Curses:from<parrot> :EXPORT 20:59
(nyi, of course)
Tene Ah, nice. 21:01
would implementing that conflict with anything you have scheduled? 21:02
mzedeler I have a question regarding instantiation of object instances: how do I call the constructor of my super class inside a constructor in order to make it set the attributes it is responsible for?
pmichaud mzedeler: that normally happens "automatically", if you're overriding BUILD
Tene: implementing that shouldn't be a major conflict for me right now, no 21:03
dalek kudo: 81e46d5 | pmichaud++ | README:
Update the README a bit more to explain build+installation process.
mzedeler So BUILD basically is the replacement of $class->SUPER::new( ... )? 21:04
KyleHa pmichaud: How you decide what to work on? Are you driven by the road map? RT tickets? Regressed tests? Unpassing tests? Personal interest? I'm just curious...
s/How you/How do you/
21:04 Limbic_Region joined
pmichaud KyleHa: it depends. Things that are blocking others tend to get my attention a bit more 21:05
jnthn mzedeler: BUILDALL calls the BUILD down the hierarchy.
mzedeler Hmm... top-down?
pmichaud beyond that, it somewhat depends on what I feel like doing for any given day
jnthn mzedeler: Thus you can just specify the initialization for the current class.
Tene again debates trying to dive in and fix a problem with threading in parrot. 21:06
jnthn And know that BUILD has been called for all of your parents already.
KyleHa pmichaud: Makes sense, thanks.
jnthn Yes, top-down, so you can rely on your parents being ready before you. :-)
Unless you are wanting to munge the parameters to new.
In which case you write a custom new method. 21:07
It depends exactly on the use case, whether you override new or write a submethod BUILD.
pugs_svn r27971 | kyle++ | [t/spec] Better RT #64948 tests
r27972 | kyle++ | [t/spec] Tests for RT #64952
mzedeler jnthn: I'll look at it. Not sure I got it, but I have a case where I can try it. Maybe I'll be back in a couple of minutes. Thanks!
mzedeler reading S12 again. 21:08
jnthn mzedeler: If you want more of a real-code example, I think masak used them heavily in Druid 21:10
github.com/masak/druid/
phenny: tell masak submethod BUILD(Druid::Game :$game!, Int :$color! where { $_ == 1|2 }) { # can just write where 1|2 21:11
phenny jnthn: I'll pass that on when masak is around.
mzedeler jnthn: yes, and he is using .* and .+ that I refuse to use. I raised it at YAPC::Europe 2009 and has talked to Masak about it later. Will write a posting on the mailing list about why I consider them both harmful. 21:13
Tene rakudo: module Foo { sub bar { say 'called bar' }; class Omg { method wut { bar() } } }; my Foo::Omg $o .= new(); $o.wut();
p6eval rakudo 67e343: OUTPUT«Could not find non-existent sub bar␤» 21:14
Tene jnthn: can you confirm whether my pasted snippet should work?
pmichaud Tene: I'm not sure we correctly handle nested classes yet
Tene mzedeler: I'm very curious about why you consider them harmful. I look forward to your post.
pmichaud: that's a class in a module, not in another class. Works fine for me, though. 21:15
21:15 explorer__ joined
Tene rakudo: module Foo { class Bar { } }; my Foo::Bar $f .= new(); say $f.WHAT; 21:15
p6eval rakudo 67e343: OUTPUT«Foo::Bar()␤»
pmichaud okay.
the problem is that class Omg doesn't see a lexical declaration of bar() then 21:16
Tene Yes.
pmichaud and method "wut" is not in the same package.
Tene It fails at compile-time.
KyleHa rakudo: my @x; ( @x.defined ?? "defined with no value?" !! "this is what P5 does" ).say 21:17
p6eval rakudo 67e343: OUTPUT«defined with no value?␤»
pmichaud ...fails at compile-time ?
I don't understand... the example you did above failed at runtime
mzedeler To whoever came up with the idea of encapsulating key/values in Pairs: thanks! Its really great.
Tene Oh, maybe not. Not sure.
Yeah, I think I was misremembering.
cxreg oh geez. --prefix does not imply --exec-prefix? 21:18
KyleHa Is it right that "my @x" immediately defines @x even though "my $x" does not?
moritz_ KyleHa: both should
KyleHa moritz: SRSLY? 21:19
pmichaud my $x doesn't give $x a defined value, no 21:20
I think that "my @x" does.
KyleHa pmichaud: Yes, and RT 64968 calls that a bug. Is it really?
moritz_ KyleHa: sorry, I was thinking about "declare", not "define"
pmichaud KyleHa: I'd want clarification from p6l on this point 21:21
KyleHa Aw, heck declarations go back in time. 8-)
pmichaud I can argue it either way
mberends pmichaud++: 'make install' works as you said :) I think I'll add a mention of when you would need to use install into the README if that's ok.
moritz_ doesn't feel that .defined on arrays/hashes makes much sense
pmichaud mberends: that would be great. Note that I just updated the README a short bit ago
mberends yes, pulled that :) 21:22
pmichaud okay. anything you can do to make it clearer will be greatly appreciated
KyleHa OK, I'll talk to the p6l.
pmichaud since it's the case that lexicals are vivified at the beginning of the block in which they're declared, the question becomes whether it's good to have an undefined Array 21:23
21:23 pmurias left
pmichaud i.e., does "my @x" result in a defined-but-empty Array, or is it bound to an undefined Array that is vivified when something is first stored into it 21:23
s/bound to// 21:24
KyleHa I like the latter. 21:26
cxreg i swear to god, i give up. nothing i do will make parrot not install to /usr/local
KyleHa Maybe the @new[0][1] bug would go away if that were the case.
(I say, knowing nothing about it.) 21:27
21:28 leedo_ left, leedo_ joined
pmichaud cxreg: --prefix to the parrot config is the normal way of adjusting things 21:28
cxreg pmichaud: nope
i'm setting both --prefix and --exec-prefix, and neither has any effect that I can tell 21:29
pmichaud where are you looking for an effect ?
cxreg i'm expecting "make install" not to fail
pmichaud still talking about a Parrot "make install"?
cxreg indeed
pmichaud --prefix works for me, otherwise Rakudo wouldn't build 21:30
21:30 stepnem left
cxreg oh wait, I'm passing those to Makefile.PL, not Configure.pl 21:30
moritz_ parrot$ perl Configure.pl --prefix=~/rakudo/install/
pmichaud :-)
cxreg self.shoot
pmichaud that sounds like a Makefile.PL bug, then 21:31
21:31 polettix left
mzedeler I am writing a binary tree implementation for perl 6. Is anyone out there aware of any existing implementations? 21:32
KyleHa rakudo: loop(my $i=0; $i<10; $i++) { say $i } # > 21:33
p6eval rakudo 67e343: OUTPUT«Redeclaration of variable $i␤Redeclaration of variable $i␤Statement not terminated properly at line 2, near "(my $i=0; "␤in Main (src/gen_setting.pm:3369)␤»
pmichaud hmmm, that's bogus. 21:34
loop( needs a space
KyleHa rakudo: loop (my $i=0; $i<10; $i++) { say $i } # >
p6eval rakudo 67e343: OUTPUT«Redeclaration of variable $i␤Statement not terminated properly at line 2, near "(my $i=0; "␤in Main (src/gen_setting.pm:3369)␤»
KyleHa Anything else that's wrong? 21:35
pmichaud rakudobug, looks lik
*like
jnthn rakudo: my $i; loop ($i=0; $i<10; $i++) { say $i }
p6eval rakudo 67e343: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
jnthn Rakudo bug.
pyrimidine rakudo: loop (my $i=0; $i<10; $i++) { say $i } #
p6eval rakudo 67e343: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
KyleHa rakudo: my $i; loop ($i=0; $i<10; $i++) { say $i } # >
p6eval rakudo 67e343: OUTPUT«Statement not terminated properly at line 2, near "($i=0; $i<"␤in Main (src/gen_setting.pm:3369)␤»
jnthn wow
pmichaud maybe it thinks the <...> are a postcircumfix? 21:36
jnthn Looks like it!
moritz_ yes
21:36 Guest84057 left
jnthn std: my $i; loop ($i=0; $i<10; $i++) { say $i } # > 21:36
pmichaud rakudo: my $i; loop ($i=0; $i < 10; $i++) { say $i } # >
p6eval std 27972: OUTPUT«===SORRY!===␤Missing block at /tmp/PrsyuJZWs8 line 1 (EOF):␤------> loop ($i=0; $i<10; $i++) { say $i } # >⏏<EOL>␤ expecting any of:␤ noun␤ prefix or noun␤ standard stopper␤ term␤ terminator␤ whitespace␤FAILED 00:03 41m␤»
rakudo 67e343: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
pmichaud std thinks it's a postcircumfix too :-)
jnthn lol 21:37
That's...a little painful.
moritz_ strongly recommends whitespaces around infix operators
frettled Hmm.
KyleHa I recall hearing that whitespace around infix was required. That's why I brought it here to ask. I thought maybe it wasn't supposed to work. 21:38
jnthn It's not required.
But I guess you run the risk of things like the above.
literal rakudo: say " foo ".trim
moritz_ KyleHa: they are only required where ambiguous
p6eval rakudo 67e343: OUTPUT«foo␤»
jnthn std: loop (my $i=0; $i<10; $i++) { say $i } #
moritz_ KyleHa: and that's one of these ambiguous cases
p6eval std 27972: OUTPUT«===SORRY!===␤(Possible runaway string from line 1)␤Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/gQwvAZk5hu line 1 (EOF):␤------> loop (my $i=0; $i<10; $i++) { say $i } #⏏<EOL>␤FAILED 00:02 38m␤»
21:39 jan joined
jnthn Oh hmm. 21:39
21:39 jan is now known as Guest62163, pyrimidine left
KyleHa Moritz: In that case, should this bug be rejected? 21:39
moritz_ KyleHa: which ticket is that? 21:42
KyleHa rt.perl.org/rt3/Ticket/Display.html?id=64974
21:43 stepnem joined
moritz_ yes, reject 21:43
21:43 gigabo joined
literal rakudo: my $str = " foo "; $str .= trim; say $str; 21:43
p6eval rakudo 67e343: OUTPUT«foo␤»
frettled 21:44
literal en.wikipedia.org/wiki/Trim_%28progr...g%29#Usage 21:47
literal snickers at Objective-C
21:48 Whiteknight joined
frettled Is it safe to do «make -j5» with rakudo, or is it sensitive to parallelism? 21:48
literal: crikey.
KyleHa I "make -j 4" all the time. No problems that I have noticed. 21:49
literal KyleHa: you have 3 cores?
KyleHa I have four.
literal I thought the rule of thumb for -j was "number of cores/CPUs plus one"
moritz_ frettled: parallel build works fine for me 21:50
KyleHa literal: Might be, but I haven't learned that rule yet. 8-)
frettled moritz_: thanks
oh, and thanks to KyleHa as well, I just triggered on the highlight first.
/usr/bin/ld: flag: -undefined dynamic_lookup can't be used with MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1 21:51
21:51 ruoso left
frettled hmm. 21:51
That's rather interesting. If I read it right, it implies that it attempts to build as 10.1, even though it seems to have detected that I'm at 10.4 correctly. 21:53
21:59 KyleHa left
frettled MACOSX_DEPLOYMENT_TARGET seemed to be undefined in the environment, but when I set it manually to 10.4, then the build continues. 22:00
22:01 timbunce joined
frettled Seems like a possible parrot bug. 22:02
jnthn pmichaud: About? 22:03
pmichaud jnthn: yes
jnthn pmichaud: I'm looking at the output of parrot_config --dump 22:04
pmichaud: And it looks kinda screwed up.
pmichaud are you looking at the installed version of parrot_config ?
jnthn Yes, installed.
The value for inst_libparrot_linkflags is pre-formated as a linker line.
pmichaud I don't understand "preformatted as a linker line" 22:05
jnthn ...but in a syntax my linker doesn't accept.
22:05 mzedeler left, explorer__ left
jnthn -LC:/Consulting/rakudo/parrot_install/lib -lparro 22:05
That is the output of parrot_config inst_libparrot_linkflags
oh, I missed the last char, it's -lparrot 22:06
pmichaud what is Parrot itself using to link things when it does it?
frettled Except for that little version thingy error, it appears that Rakudo builds nicely on MacOS 10.4/PowerPC, and I'm now running spectests. 22:07
pmichaud would @ld_share_flags@ be a better option here?
jnthn For me that's just -dll 22:08
pmichaud isn't that what we're building at this step?
jnthn Yes 22:09
But we're already getting -dll in there
The problem is that we're not getting a reference to libparrot.
pmichaud and a dll needs that?
jnthn Well, it needs to know it's linking against libparrot to be able to resolve the various calls into Parrot. 22:10
pmichaud again, my question is then "what does Parrot use for its dynpmcs"?
jnthn LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib] 22:12
pmichaud looks like Parrot is using @ld_load_args@, among other things
jnthn oh, that's in the generated makefile
pmichaud sorry, @ld_load_flags@
jnthn let me check what that's generated from.
pmichaud config/gen/makefiles/dynpmc.in 22:13
does ld_load_flags look more like what you would expect ?
jnthn LINKARGS := $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@
pmichaud (in parrot_config)
jnthn LD_LOAD_FLAGS := @ld_load_flags@
LIBPARROT := @libparrot_ldflags@
pmichaud does ld_load_flags look more like what you would expect ?
jnthn ld_load_flags is fine. 22:14
@libparrot_ldflags@ is what we are missing
lambdabot Unknown command, try @list
pmichaud should we use that in our makefile instead of inst_ld_*
jnthn Well, it's a necesary-but-not-sufficient issue.
pmichaud feel free to fix up the targets
jnthn Well, I'm not sure what to fix them up to.
OK, I know addoing @libs@ to the link line will help 22:15
22:15 duckyd joined
jnthn But unless I'm missing it, I don't see a single key that contains the location of the (installed) libparrot. 22:15
22:15 eMaX left
pmichaud I'm still not sure I understand why libparrot is needed there 22:15
but I'll take your word for it :) 22:16
jnthn Because otherwise the linker can't resolve the symbols?
pmichaud the linker normally doesn't need to resolve all of the symbols at this point
i.e., there should be some unresolved symbols that get resolved when the library is loaded
jnthn Hmm
Maybe there's a way to tell it that.
pmichaud we don't need the symbols to be resolved to produce the dll
I suspect @libs@ might do that 22:17
on my system, @libs@ contains the --shared flag
oh wait, not that
just s ec
ld_shared_flags has it
although ld_load_flags has it also
but on my system, "-shared" is what tells the linker it's okay for some symbols to still be unresolved 22:18
jnthn OK, trying adding @libs@ to link line.
pmichaud anyway, I'm guessing we need our makefile to look more like the dynpmc Makefile
22:18 _timbunce left
jnthn @libs@ being added helps. 22:19
lambdabot No module "being added helps." loaded
jnthn But doesn't fix it.
lambdabot: ffs, shut up
(That is, it gets rid of one of the linker erros) 22:20
22:20 zamolxes left
pmichaud what does "libparrot_ldflags" look like on your system? 22:21
and WHY OH WHY does parrot_config have both "libparrot_linkflags" and "libparrot_ldflags"?!?
jnthn pmichaud: gist.github.com/166823 # this gets it to work 22:23
It looks like:
"C:/Consulting/rakudo/parrot\libparrot.lib" 22:24
pmichaud feel free to commit that
jnthn Is it right though?
pmichaud I suspect there is no "right" here.
jnthn Note that path is parrot, not parrot_install?
OK.
22:24 explorer__ joined
pmichaud Oh. 22:24
You're right, wrong path
is there one that refers to the installed libparrot.lib ?
jnthn Right. And I don't have anything I can see when I --dump that is containing this same thing but with parrot_install instead of parrot.
pmichaud bleah 22:25
jnthn pmichaud: Yup. Just searched to make sure.
fwiw libparrot_linkflags and libparrot_ldflags are identical here. 22:26
22:26 nihiliad left
pmichaud they're not identical here. ldflags is empty on my box. 22:26
same is true for the install* versions
linkflags is non-empty, ldflags is empty
jnthn uff
pmichaud libparrot_ldflags => '' 22:27
jnthn IO have
inst_libparrot_ldflags => ''
pmichaud libparrot_linkflags => '-L/home/pmichaud/rakudo/parrot/blib/lib -lparrot'
jnthn And
inst_libparrot_linkflags => '-LC:/Consulting/rakudo/parrot_install/lib -lparrot'
Which is wrong for Win32
pmichaud inst_libparrot_linkflags => '-L/home/pmichaud/rakudo/parrot_install/lib -lparrot'
inst_libparrot_ldflags => ''
jnthn (Should simply be inst_libparrot_linkflags => '"C:/Consulting/rakudo/parrot_install/libparrot.lib"' 22:28
)
That would likely work.
jnthn wonders however we get to that config key.
pmichaud I think we want inst_libparrot_ldflags to be fixed
at the moment we don't use linkflags 22:29
jnthn OK
Even with my makefile tweaks, we still have an issue.
$(OPS_DIR)/$(OPS)_cg$(LOAD_EXT) \
$(OPS_DIR)/$(OPS)_cgp$(LOAD_EXT) \
When we had scripts managing the process, they were smart enough to know only to build files for the runcores that were actually built by Parrot.
pmichaud right. 22:30
jnthn That is, computed goto doesn't work away from gcc, so it didn't build the _cg and _cgp
In my makefile here it tries to do both.
Neither of those two will work.
pmichaud right. For some reason I thought you had already tried and succeeded with the ins2 branch.
and other windows folks had reported they were able to build okay. I guess they were all using gcc. 22:31
jnthn No.
I'm guessing they were, in which case this would probably have worked fine.
pmichaud I don't have an easy mechanism to do conditional compilation of those items at the moment.
jnthn I thought somebody had said it worked on MS VC++. But even discounting version specific issues, I'm struggling to see how that was done.
22:32 PZt joined
jnthn I'm going to just rip them out now to see if we get through a build. 22:32
pmichaud that's a good first step
jnthn If so, at least we know it's just two issues that need solving, not more.
22:33 icwiener_ joined
jnthn I'm guessing we're going to need a Parrot fix somewhere in all of this. 22:33
pmichaud well, inst_libparrot_ldflags sounds like it needs fixing. 22:34
jnthn *sigh* allison may have been right that the previous scripts for building these things were scary, but they were scary because they incorporated a bunch of learned platform knowledge.
pmichaud allison did say that we could write our own tool for this if we wanted to.
jnthn distinctly remembers patching them up in the past for Windows support
pmichaud I decided I didn't want to do that. 22:35
Limbic_Region pmichaud - happy early birthday to you, you live in a zoo, you look like a monkey - and you smell like one too
jnthn Aye. Having contributed to one that was in Parrot that got tossed, I'm not exactly encouraged to hack on another one.
pmichaud tosses a banana peel at L_R
"Thanks!" 22:36
:-D
Limbic_Region my wife's is today
pmichaud did you give her the same birthday story? ;-)
moritz_ is it time to say "pmichaud++"?
Limbic_Region yes, it is a long standing tradition
pmichaud okay.
I definitely live in a zoo. With two young monkeys.
jnthn pmichaud: Oh gah. Well, then it tries to use the broken link flags line to build the fake executable. 22:37
moritz_ how many older monkeys? ;-)
pmichaud Only one, and he has a birthday tomorrow. :)
jnthn But anyway, it's the same underlying fix.
pmichaud jnthn: is it using *_linkflags or *_ldflags ?
ultimately I think we need to fix inst_libparrot_ldflags
fwiw, I now have a win32+gcc build environment so I can test that pretty easily 22:38
jnthn inst_libparrot_linkflags
pmichaud I can't find anywhere that really uses _linkflags, though
jnthn inst_libparrot_ldflags is empty here
pmichaud I don't mind if we switch to _linkflags, but I _really_ wish I knew what the difference between the two is intended to be
jnthn oh
$(PBC_TO_EXE) perl6.pbc
We don't use them ourselves it seems
pmichaud right 22:39
that's why I think the fix has to be in the parrot config, not just our use of them
jnthn PBC_TO_EXE is what is using them.
Right, I agree.
Well, to quote a talk title at last year's YAPC::EU, "F**k, the f**king things f**ked". ;-)
pmichaud although it appears that pbctoexe uses _linkflags 22:40
libparrot = $P0['libparrot_linkflags']
jnthn Yes, agree
That's the one that is closer to correct.
As in, not empty
On my system.
pmichaud libparrot = $P0['inst_libparrot_linkflags']
jnthn But it's still wrong.
Because it assumes gcc-isms.
pmichaud maybe allison is available on #parrot
I'm being called to dinner, though 22:41
jnthn OK, I'm still sick, and more sleepy than I otherwise would be, so I'm going to give it a break for today.
pmichaud oh
allison was on #parrot 16 mins ago
if we can at least get a clarification on the flags meanings, that might help
anyway, I'll see if I can get a clarification after dinner
jnthn OK, sounds good. 22:42
I'm really struggling to concentrate.
But anyway, will backlog #parrot in the morning and see if an answer was forthcoming.
22:46 icwiener left, ascent_ left 22:47 timbunce left, ascent_ joined
TimToady eternaleye: ff * doesn't make whatevercode, just as .. * and xx * don't; in all these cases * means "go on forever, as long as you need to" 22:48
dalek kudo: 5c404cb | (Martin Berends)++ | README:
[README] tweak the build and install instructions
22:50
22:51 icwiener_ left
eternaleye TimToady: Okay, thanks 22:54
mberends must sleep 22:58
22:59 mberends left 23:02 ihrd joined 23:03 ruoso joined, ihrd left 23:07 leedo_ left 23:11 Muixirt left 23:15 explorer__ left 23:22 SmokeMachine left 23:25 pjcj_ joined 23:27 jferrero left 23:29 stepnem left
xinming_ eval: multi contact (Str $s, Str $_ is copy) { q:s:c |$s {s/!(.+)!/@$0./ and $_}| }; "My email address is:".contact("yiyihu!gmail!com"); 23:30
23:30 pjcj left
xinming_ rakudo: multi contact (Str $s, Str $_ is copy) { q:s:c |$s {s/!(.+)!/@$0./ and $_}| }; "My email address is:".contact("yiyihu!gmail!com"); 23:31
p6eval rakudo 81e46d: OUTPUT«Statement not terminated properly at line 2, near "{s/!(.+)!/"␤in Main (src/gen_setting.pm:3369)␤»
TimToady no failover form single to multiple dispatch
xinming_ Seems my oneliner needs to be upgraded. :-)
TimToady *from
23:31 frew__ joined
xinming_ TimToady: Thanks, I wrote it 2 years ago. ;-) 23:32
TimToady we keep simplifying the semantics :)
right now I'm thinking of throwing out p5-style locals entirely in favor of only supporting contextuals
pmichaud ...no temp? 23:33
or am I thinking of something different?
TimToady temp might retarget to only handle temp $*FOO
pmichaud nice
that would likely be quite helpful to rakudo, fwiw 23:34
TimToady nobody implements plain temp yet anyway, I think
pmichaud correct. we don't implement it because we need better leave semantics on our blocks
TimToady perl6: my $x; { temp $x = 42; say $x }; say $x;
pmichaud (which we'll _get_ eventually one way or another)
p6eval rakudo 81e46d: OUTPUT«Could not find non-existent sub temp␤»
..pugs: OUTPUT«*** No such subroutine: "&temp"␤ at /tmp/gCZ9ix32FL line 1, column 10-22␤»
..elf 27972: OUTPUT«Can't localize lexical variable $x at (eval 123) line 4.␤ at ./elf_h line 5881␤»
TimToady p5 local semantics don't work well with multithreads anyway 23:35
xinming_ found, perl 6 is really write once. >_< I can't even understand how I achieved that in old days. >_< 23:36
TimToady @tell pmurias we may store contextuals as $*FOO in the symbol table, so the twigil is the indication that it is visible to dynamic scope
lambdabot Consider it noted.
TimToady @tell pmurias the rw will need to be handled separately in that case
lambdabot Consider it noted.
23:37 simcop2387 left, stepnem joined
TimToady @tell pmurias the ro/rw should probably stay with the container in any case so you can't cheat on a contextual by aliasing it 23:38
lambdabot Consider it noted.
xinming_ I got it finally. >_<
23:38 jrtayloriv joined
xinming_ TimToady: hmm, For now, How do we injecting a method into a class dynamically? We have to use Monkey patch? 23:39
TimToady rakudo still uses "is also" rather than augment
I don't know whether it requires MONKEY_TYPING yet
pmichaud we don't require MONKEY_TYPING yet 23:40
xinming_ TimToady: hmm, Why do you choose the name Monkey_Typing?
pmichaud we still use "is also". Sorry. We have a plan to fix it, but we really need contextuals working first 23:41
and for that we want to revamp our lexicals handling
xinming_ I did laughed when I first saw it. But can't get the meaning of it.
TimToady it has two meanings
23:41 xinming_ is now known as xinming
jrtayloriv I'm having trouble building rakudo. I fetched the latest SVN sources for Parrot, into parrot/, then 'cd parrot'; 'perl Configure.pl'; 'make'; 'mkdir languages/'; 'cd languages/'; 'git clone git://github.com/rakudo/rakudo.git'; 'cd rakudo'; 'perl Configure.pl' ... then 'make' dies with: "make: *** No rule to make target `/usr/local/lib/parrot/1.4.0-devel/library/PGE/Perl6Grammar.pbc', needed by `src/gen_grammar.pir'. Stop." ... What am I d 23:42
23:42 snarkyboojum joined
TimToady one is you reach in and "monkey around" with an existing class in a way it wasn't expecting 23:42
the other meaning is a play on the story of having a million monkeys typing on typewriters and eventually one of them types some Shakespeare
xinming Got it, thanks, I mis-understand the meaning of monkey, I only know the meaning of an animal which is smaller than an ape. :-) 23:43
pmichaud jrtayloriv: those steps no longer work to build rakudo. Rakudo now requires an "installed" parrot to biuld.
TimToady Joe: Hey Bill, come over here to monkey #402834. We might have something. It says: To be, or not to be, that is the frabsnotz.
pmichaud jrtayloriv: see the README file for more details 23:44
jrtayloriv pmichaud: If I just do 'make install' for parrot, would I regret this? Is there a "proper" way for me to "pseudo-install" parrot while I'm just playing around with development versions? 23:45
OK will do. Thanks.
pmichaud jrtayloriv: if you use the "--gen-parrot" option to Rakudo's Configure.pl, it'll always do the right thing
see also rakudo.org/how-to-get-rakudo
TimToady pmichaud: would it help your rakudo contextuals if the contextualness was indicated by a * twigil in the lexical symbol table?
pmichaud TimToady: that's what I'm planning to do already 23:46
xinming rakudo: say "hello"
p6eval rakudo 81e46d: OUTPUT«sh: ./perl6: No such file or directory␤»
jrtayloriv pmichaud: Right I see that now -- sorry for not reading more before bothering you -- should have seen that ....
xinming Seems dead right now.
pmichaud jrtayloriv: no problem -- we just changed things today
TimToady: the general issue with contextuals is that we need PGE support them
TimToady of course, that doesn't work for $/ or $! quite so well...
pmichaud actually, PGE needs lexicals support in general, since it comes from a time from well-before when Parrot had decent lexicals support 23:47
but more to the point, jnthn++ and I have plans to refactor Rakudo's lexical handling altogether, to improve their runtime characteristics and to make sure they're vivified at the start of a block (instead of at the point of declaration)
and doing that requires contextuals so that we can get the declarations correct 23:48
we're still doing things bottom-up, from a time before STD.pm was using contextuals to make the declarators available to the lower subrules
TimToady I'm also thinking the constant declarator is going to end up in the sub slot, not the my slot, so you can distinguish my constant from our constant and has constant
and I'm also rethinking all the defaulting to "our" that could potentially default to "my" instead 23:49
pmichaud hmmm, that would be interesting
feels more consistent somehow, yes.
TimToady might even work well for subs, given postdeclaration of those is allowed
well, we rely on that already anyway, since multi dispatch isn't supposed to look at packqges 23:50
s/q/a/
pmichaud anyway, Rakudo has had to handle scope declarators in the action for the scope_declarator rule itself, because at the point of <variable> we didn't have the contextual information available to tell us that it was being declared (or what it was being declared as) 23:51
the same issue exists for augment -- "is also" was a trait that we could apply after we had already figured out we had a class
but as a declarator, "augment" needs to be something that we detect upon parsing the class -- it's much hard to fix it up "after the fact"
*harder
TimToady yes, those are handled with context in STD 23:52
pmichaud right
so, contextuals are high on our list... particularly the ability to create contextuals in the grammar itself
23:52 jrtayloriv left
pmichaud but yes, I'm planning to store them with the twigil, to distinguish the contextual from its non-twigiled counterpart (which may have different accessors) 23:52
and once we have contextuals, we can fix our lexical and other declarators to be a lot more std-like 23:53
because we can figure out things on the way down, instead of "after the fact" 23:54
TimToady traits should generally be used for "tweaky" things, not to change the basic nature of what came before 23:55
that's why augment had to come out front, since the very existence of the entity changes
pmichaud agreed totally
TimToady and I think context is similar, so "is context" is probably going away 23:56
don't know whether I can do it all with "temp" though
pmichaud good to know that "is context" might depart
but then while we're on the topic, I wonder about other forms of "is"
for example: my $x is Foo
TimToady I like being able to distinguish make a new outermost context (defaults to empty) from a temporized outer contextual (defaults to same value) 23:57
pmichaud and the one that has me really feeling awkward is my int $x
because "int" here really describes the storage format of $x somehow. Although I agree we should keep similarity with "my int @foo"
TimToady I think that's a necessary user convenience, even if only describing the container 23:58
pmichaud I'm fine with that.
It just feels like a disconnect at the implementation level. (And the point of the implementation level is to have such disconnects for user convenience :-)
TimToady yes, well, but sometimes it indicates that something is too complicated at the user level as well 23:59
pmichaud anyway, since "Array of int" implies something special about the Array, I'm guessing "Scalar of int" can be similar.