»ö« | 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«7171» | ||
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«77» | ||
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«quxwrapped foo, recieved $barqux» | ||
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 valuecan 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 methodin 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«fooother 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«fooother fooother foofooMethod '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«fooother fooother foofooMethod '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«fooother fooother foofooMethod '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«fooother fooinvoke() not implemented in class 'Undef'in Main (/tmp/laHzdmA7Tj:2)» | ||
rakudo a5dfe9: OUTPUT«fooother fooinvoke() 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«123» | ||
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, worldxBB. | ||
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«41665536» | 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 $iRedeclaration of variable $iStatement 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 $iStatement 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«0123456789» | ||
jnthn | Rakudo bug. | ||
pyrimidine | rakudo: loop (my $i=0; $i<10; $i++) { say $i } # | ||
p6eval | rakudo 67e343: OUTPUT«0123456789» | ||
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 whitespaceFAILED 00:03 41m» | ||
rakudo 67e343: OUTPUT«0123456789» | |||
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. |