pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
00:06 BinGOs_ left 00:11 meppl left 00:16 larsen joined 00:18 c9s_ joined 00:25 c9s left 00:30 c9s_ left 00:34 riffraff left 00:41 alester joined 00:48 xd left 00:55 wknight-away joined 01:07 explorer left 01:10 lyokato_ joined 01:16 zostay joined 01:23 larsen left 01:25 thoughtpolice joined 01:30 lyokato_ left 02:03 wknight-away is now known as wknight8111 02:29 Psyche^ joined 02:38 IRSeekBot left 02:46 Patterner left, Psyche^ is now known as Patterner 02:47 IRSeekBot joined 03:11 alester_ joined 03:23 luqui left 03:53 cmarcelo left 03:54 wknight8111 is now known as wknight-away 04:14 justatheory left 04:15 justatheory joined, wknight-away left 04:26 BinGOs left 04:28 BinGOs joined 04:48 FurnaceBoy left 05:16 alc joined 05:18 thoughtpolice left 05:21 revdiablo joined 06:23 alester_ left 06:29 charsbar joined 06:30 alester left, buubot left, lumi left, jrockway left, alc left 06:32 drbean joined, jrockway joined, avar joined, lumi joined 06:37 aindilis joined, alester joined 06:42 buubot joined, charsbar_ joined, Qiang joined, alc joined 06:46 Qiang left, charsbar_ left 06:50 Qiang joined 06:58 dalin joined 07:01 Chillance joined 07:03 zamolxes joined 07:22 penk joined, katie_d_ joined 07:23 katie_d_ left 07:29 BinGOs_ joined 07:32 BinGOs left 07:56 Chillance left, Aankhen`` joined 08:40 iblechbot joined 08:48 peepsalot left 08:50 peepsalot joined 09:02 BinGOs_ is now known as BinGOs 09:13 peepsalot left 09:15 peepsalot joined, elmex joined 09:24 araujo left
wolverian mncharity, are you sure = doesn't have a special meaning in YAML? it's a mistake to think YAML is simple.. :) 09:56
10:09 dalin left, elmex left 10:14 wknight-away joined, alc left 10:19 ruoso joined 10:25 penk left 10:27 elmex joined 10:37 wknight-away left 10:44 chris2 joined 11:03 elmex left 11:08 elmex joined 11:15 meppl joined 11:16 LazyJim joined 12:32 smtms left, smtms joined 12:34 kolibrie joined 12:36 penk joined 12:46 cmarcelo joined 13:07 rdice joined 13:08 elmex left 13:10 lisppaste3 left
mncharity wolverian: if yaml is speced that foo: = means foo=>"=", but foo: "=" means foo=>foo, ... well, if it's not an implementation bug, it's a spec bug. :) 13:12
pugs_svnbot r20163 | putter++ | [STD_red_run] new --dump5 and --dump6, much faster than --yaml. 13:14
diff: dev.pugscode.org/changeset/20163
lambdabot Title: Changeset 20163 - Pugs - Trac
wolverian mncharity, true enough :) 13:15
13:21 c9s joined
pugs_svnbot r20164 | putter++ | [elf_a] Added "is A", "has $.x", "self". Switched STD_red_run to --dump5 from --yaml. 13:23
r20164 | putter++ | [elf_b] Added IR node classes. They compile.
diff: dev.pugscode.org/changeset/20164
lambdabot Title: Changeset 20164 - Pugs - Trac
13:24 lisppaste3 joined
mncharity btw, at least part of the problem with slow yaml dumping is it does many .inspect() calls on the tree. with a big tree, even a small constant non-linear task slows you. ir_nodes.p6 goes from ~80 s -> 15 s when Match's inspect() is intercepted. -> 6 s using --dump5 instead. Of which ~ 5 is the parse itself. 13:32
time ./elf_b_create.pl is taking me 9 s now, despite the addition of a 34kb 1.1klog elf_b_src/ir_nodes.p6 :) 13:34
*kloc 13:35
13:36 b_jonas joined 13:38 pmurias joined 13:39 elmex joined 13:40 elmex_ joined, elmex_ left
mncharity STD_red_run on ruby 1.8 is rather slower. 2 min. perhaps needs to be performance optimized. 13:40
13:41 peepsalot left 13:42 peepsalot joined 13:45 peepsalot left, peepsalot joined
mncharity I'm not sure whether to switch STD_red_run to #!/usr/bin/env ruby1.9 or not. env ruby will work out of the box for more people. and elf_a should run fine with it, though slower. but anyone wanting to develop elf_b really needs 1.9 (ie 2m vs 10s). maybe just a README note. 13:45
13:46 elmex_ joined, elmex left
pmurias mncharity: i have ruby 1.9 under ruby and ruby1.8 under ruby 1.8 13:47
mncharity me too
13:49 Psyche^ joined, Patterner left 13:50 Psyche^ is now known as Patterner
pmurias it might make sense to keep the generated files in a different directory 13:54
mncharity which ones? 13:56
pugs_svnbot r20165 | putter++ | STD_red/README: Added '--yaml and its 1.9 patch are no longer required. STD_red_run's #! should find ruby 1.9 for speed'.
diff: dev.pugscode.org/changeset/20165
pmurias ir_nodes.p6 13:57
lambdabot Title: Changeset 20165 - Pugs - Trac
pmurias argh, network is so slow today it takes ages to install cpan modules here :(
mncharity could be. my thought was ir_nodes.p6 is actually source, even though it's generated. but it does clutter up the svn diff. 13:59
pmurias ./elf_a -x -o ./elf_b elf_b_src/ir_nodes.p6 elf_b_src/main.p6 takes 27sec here 14:01
mncharity why a different directory? even though I'm not sure it should be in svn at all - a tradeoff ("it's source, you can web link it" vs "obscures what humans edited").
14:02 peepsalot left
pmurias is web linking to generated code important? 14:03
14:04 peepsalot joined
mncharity re 27 s, :/ could you check how long STD_red_run itself takes to do ir_nodes.p6? cd misc/STD_red; time ./STD_red_run -q --dump5 ../winter_jig/elf_on_STD_red/elf_b_src/ir_nodes.p6 > /dev/null 14:04
14:04 TJCRI joined, peepsalot left
pmurias kp6 only stored the compiled files as a hack because compiling was slow 14:05
16sec 14:06
14:07 peepsalot joined, peepsalot left
mncharity pmurias: makes it easier to say "could someone familiar with Moose take a look at svn.pugscode.org/pugs/misc/winter_j...r_nodes.p6 and say what a non-bogus version would look like?" but it turns out it *hasn't* been added to svn (yet?). 14:07
lambdabot tinyurl.com/2vbl86
mncharity so i guess the only issue is which directory. why a different directory? :) 14:08
14:08 deq` joined
pmurias mncharity: you can nopaste it 14:09
it's not really source
mncharity re bogus, my fuzzy understanding is Moose defines its own new(). but I'm unclear on its characteristics, and thus on whether we want to generate our own new-like method.
14:09 deq` left, deq` joined 14:10 chris2 left
pmurias mncharity: Moose genereates it's own new 14:11
mncharity re "it's not really source", :) "is!" <rendered in pouty voice>. I tend to think of it as source written with the help of a script. but I can argue the other way too. :) 14:12
re Moose, right. but I was unclear from a quick skim of the docs whether its arguments were passed by name. I kind of like insulating the IR name choices from the ast_handlers by going via a positional new. 14:13
stevan__ yes they are passed by name
it will take either a regular hash or a hash-ref 14:14
mncharity thanks stevan :)
stevan__ mncharity: no problem :)
the Moose Cookbook is the best way to get to know Moose actually
mncharity so the bummer is I've another commitment today. back ~10 hrs. 14:15
possible next steps for elf include 14:16
teaching elf_b to run STD_red_run, and load its output into a Match tree.
not sure what else. 14:17
?
stevan__: is ~1sec a plausible ballpark startup up cost for using Moose? the code generated by elf_a is slower to start - wondering if a 1 sec hit is normal, or a sign the emitted code is doing something silly. 14:19
re elf_b and Moose new, perhaps the current method new should be renamed new2, and convert its positional args to Moose new's hash args. 14:23
14:23 peepsalot joined
stevan__ mncharity: ~1 sec startup is possible, if you have a lot of classes 14:24
like a real lot of classes
also autobox has an overhead to it 14:25
mncharity: make sure you are on the latest Moose and MOP too,.. some serious speed improvements in the last few months
mncharity then again, there will soon be emitter code which depends on IR node field names. so its only putting off the inevitable for a moment. kiss. => the unnecessary ir_nodes.p6 new()'s should be ripped out.
stevan__ mncharity: gimme a link to the file and I will take a look
mncharity looking... 14:26
svn.pugscode.org/pugs/misc/winter_j..._red/elf_b 14:27
another issue is whether has() vars can somehow be accessed as lvalues. so $self->x = 3 rather than $self->x(3). but if not, can deal. 14:28
I need to scurry. back briefy in ~20 min.
pmurias: are you all set? any questions or whatever before I go? 14:29
stevan__ no, lvalues suck in p5 14:30
basically un-usable for all but the very simplest accessors
mncharity: also, if you dont call Moose::Object::new then Moose wont initialize any of your attributes 14:31
mncharity doh, re elf_b, that wasn't the ideal code to point you at. could someone run elf_a -x -e 'say 3' output? my impression is that used to be 0.5 sec, now > 1 s. not sure why. 14:33
bbiab
14:35 araujo joined, Psyche^ joined, eternaleye left 14:37 b_jonas left 14:42 [particle1 joined 14:46 pmurias left
mncharity stevan__: thanks for eyeballing elf_b. we'll discard the new()s. 14:47
re 'say 3' slowdown, that may or may not be a Moose issue. so perhaps save your time for later, once it's clearer. 14:48
re lvalues, ah, ok. good to know. will deal.
anyone/anything else before I pumpkin? 14:50
14:50 FurnaceBoy joined 14:51 Patterner left, Psyche^ is now known as Patterner
mncharity have a good day all & 14:55
15:10 Lorn joined 15:17 peepsalot left 15:19 peepsalot joined 15:34 deq` left 16:13 Onyxyte joined 16:26 Psyche^ joined 16:28 chris2 joined 16:43 Patterner left, Psyche^ is now known as Patterner 16:44 Psyche^ joined 16:58 rdice left 17:01 Patterner left, Psyche^ is now known as Patterner 17:10 wtgee joined 17:12 penk left, penk joined, penk left 17:16 Onyxyte left 17:19 justatheory left 17:20 [particle1 left 17:21 eternaleye joined 17:22 tobeya joined 17:42 zamolxes left 17:44 [particle1 joined 18:03 Auzon joined 18:04 [particle1 left 18:06 Aankhen`` left 18:08 Psyche^ joined 18:12 wtgee left 18:15 jrockway left 18:19 Patterner left 18:20 Psyche^ is now known as Patterner, jrockway joined 18:27 justatheory joined
moritz_ re 18:41
18:53 lichtkind joined
lichtkind TimToady: im now thinkin about to put also some of your last oscon talks into Perl6::Doc and i need your explicit permission to do that :) 18:54
18:57 Auzo1 joined, Auzo1 left 19:00 Psyche^ joined 19:02 rdice joined
TimToady lichtkind: is fine by me, as long as you don't quote me out of context except where I want to be quoted out of context... :) 19:05
lichtkind TimToady: no just whole perl.com articles naming you as author in the doc and scribes section of the module but there you are already since you author of some design documents 19:06
19:06 wtgee joined, Auzon left
lichtkind TimToady: chromatic told me that i have to ask the authors too 19:07
19:10 ruoso left 19:18 Patterner left, Psyche^ is now known as Patterner
moritz_ pugs: say %*ENV ~~ Hash 19:30
exp_evalbot OUTPUT[ā¤]
moritz_ pugs: say %*ENV ~~ Object
exp_evalbot OUTPUT[1ā¤]
moritz_ pugs: say %*ENV ~~ Array
exp_evalbot OUTPUT[ā¤]
moritz_ pugs: my @a; say @a ~~ Array
exp_evalbot OUTPUT[1ā¤]
moritz_ why isn't %*ENV a Hash? pugs error?
19:34 wtgee left
moritz_ pugs: my @a = <a b c>; say ~@a 19:35
exp_evalbot OUTPUT[a b cā¤]
19:36 wtgee joined
moritz_ pugs: my @a = <a b c>; say "a: @a" 19:36
exp_evalbot OUTPUT[a: @aā¤]
moritz_ pugs: my @a = <a b c>; say "a: @a[]"
exp_evalbot OUTPUT[a: a b cā¤]
TimToady moritz_: yes, probably pugs bug 19:38
19:40 rdice left
moritz_ pugs: say %*ENV.perl 19:45
exp_evalbot OUTPUT[\undefā¤]
moritz_ pugs: my %a; say %a ~~ Hash 19:46
exp_evalbot OUTPUT[1ā¤]
moritz_ it's a safety issue. I think %*ENV is "unsafe", and therfore it's not populated in the evalbot
19:52 justatheory left 19:53 justatheory joined
moritz_ is the error variable in Perl 6 still $! ? 19:56
20:03 thoughtpolice joined 20:05 rindolf joined, pmurias joined
pmurias stevan__: why do lvalues suck? 20:06
isn't it possible to use tied variables?
or does performance suffer badly? 20:09
stevan__ pmurias: any solution which requires tie() is usually a bad idea :) 20:10
performance suffers, and its just ugly and difficult 20:11
the code to make it work that is
pmurias: several people have talked about writing support for it
20:11 Lorn_ joined
stevan__ it would be a MooseX:: extension of the attribute meta layer, which itself is pretty simple,.. but I suspect people start actually looking at what would be needed to support it 20:12
"it" being the lvalue-ness
and they probably decide that its not worth it for the little bit of sugar 20:13
pmurias stevan__: nothing horribly complex in implementation terms 20:16
stevan__ on the Moose side no
the tie() side, I think gets really messy
pmurias why? 20:17
stevan__ one second, there is a CPAN module that does it 20:18
it should help illustrate
not with Moose, but for regular args
pmurias coded a simple tied accesor after i asked the question ;) 20:19
20:19 wtge1 joined
stevan__ pmurias: Attribute::Property does it,.. however their code is not that messy 20:20
the issue is mostly that you have to take all the Moose code that handles; types, triggers, laziness, etc etc and that has to get put into a tied variable
20:21 wtgee left, vel joined
diakopter Perl 6 - the Cloying edition 20:21
stevan__ since once you return something from the lvalue sub it is completely out of your control
it just reallyrubs me the wrong way
and seems all kinds of backwards
vel am i wrong or there is perl6.exe.manifest missing for win32 build? 20:22
pmurias seen S06:314?
stevan__ pmurias: coded one for Moose? or just a regular one?
pmurias a regular one 20:24
20:24 Lorn left
stevan__ pmurias: actually you probably could avoid having to acount for the Moose lazy feature, but things like trigger (which fires after something is set) and types would need to be passed to the tied scalar 20:28
its not impossible
but as I said, it just feels wrong to me,.. not the correct division of responibilities 20:29
you are certainly welcome to write it yourself, but IMO the overhead alone is not worth it 20:30
and I certainly wouldnt want to have to bend the core Moose code to do it
pmurias stevan__: how do i change the attribute metaclass to be used? 20:33
stevan__ has 'foo' => (metaclass => 'My::Custom::Metaclass', ... );
thats on a per-attribute basis
for classwide
use metaclass (attribute_metaclass => 'My::Custom::Metaclass'); # must be done before use Moose though 20:34
hmm... looks like weak ref would also be a little tricky
like I siad though,.. its kind of backwards,.. these are things the class should deal with and know about, not the actual slot-value 20:35
which is what tie() would do
20:37 dduncan joined
stevan__ pmurias: you could also ask around on #moose, someone might have a half finished implementation 20:37
pmurias stevan__: not having a real need for it
20:38 dduncan left, rdice joined
pmurias i think most of the issues could be doged by delegeting to a real attribiute metaobject 20:38
stevan__ pmurias: I dont think you can actually dodge them, but yes, if you delegate to the attribute meta, you would only need to pass one thing to the tie() 20:40
but you would end up incurring a number of other method calls to get tot he things you need
Moose inlines the accessors for speed
so that would be out the window 20:41
again, not that it cant be done, just annoying and tricky
and incorrectly inverts the responsibilities
can you tell I am not a fan or lvalue or tie :) 20:42
moritz_ we blame TimToady ;-) 20:43
pmurias stevan__: i think the tied aproach is the default perl6 one
PerlJam stevan__: Did I just see you make a comment about inlining for "speed"? And you're using perl?!? ;)
moritz_ perl6 and tie? did I miss something? 20:44
stevan__ pmurias: uhm, I hope not 20:45
although if you fix tie
then maybe
pmurias moritz_: a tie in disguise 20:46
20:46 ruoso joined
stevan__ PerlJam: we generate an optimized version of the accessors and if you ask for it the constructors,.. speeds things up quite a bit :) 20:46
moritz_ pmurias: how would you do that? MMD?
stevan__ PerlJam: if you want to write the Inline::ASM version for me I would happily accept the patch ;)
IIRC, the perl 6 tie is really that Proxy object 20:47
pmurias yes
stevan__ I think the p5 tie is much uglier 20:48
pmurias moritz_: S06:314
stevan__: it's really easy to code Proxy if you want it
in perl
5
stevan__ pmurias: with tie? 20:49
:)
pmurias: honestly I am not missing it
moritz_ pmurias: ah, 'is rw'
pasteling Someone at 81.168.228.98 pasted "Proxy in p5" (32 lines, 654B) at sial.org/pbot/30628 20:50
pmurias stevan__: yes 20:51
20:51 wtge1 left
pmurias moritz_: i think formats are the only feature realy removed 20:51
PerlJam stevan__: I haven't enough Moose juice to write such a thing, but would that someone did, it could get rid of the stigma of slowness that perl has upon its OOPy bits.
stevan__ PerlJam: have you seen nothingmuch's MooseX::COmpile work? 20:52
its slow, but coming along
err.. its going slow
the actual code it generates is comparable to hand coded p5 20:53
PerlJam no, I've been ignoring MooseX:: lately.
stevan__ PerlJam: fine, be that way,.. I thought you cared,.. but *sniff* apparently not *sniff* 20:54
PerlJam not enough time in the day to play with all of the interesting things out there *and* get work done for $dayjob *and* spend time with family :) 20:58
pmurias stevan__: it would be a fun SoC
PerlJam once I figure out how to integrate "fun stuff" with $dayjob, that will be a great day. 20:59
21:05 Lorn joined 21:08 lichtkind left 21:09 justatheory left 21:13 Auzon joined
pmurias stevan__: would accesors in c be much faster the perl ones? 21:13
21:16 lichtkind joined, Lorn_ left
stevan__ pmurias: to some degree yes, konobi has experimented with converting the type constraints to C 21:20
and I know jjore was working on some benchmarks with different C based accessors, some that actually implemented their own opcode
lichtkind TimToady: thanks
stevan__ pmurias: the accessors Moose inlines only inlines as much code is needed for the accessor, a C version couldnt be as dynamic, so it would have to be able to handle all cases 21:21
but the excution itself would be faster
21:23 lichtkind left 21:26 Lorn left 21:27 rindolf left, thoughtpolice left 21:30 justatheory joined 21:31 Limbic_Region joined 21:35 nnunley_ joined, nnunley_ left 21:38 chris2 left 21:40 rdice left 21:45 TJCRI left 21:46 zblaxell__ is now known as Zygo 22:02 nnunley joined 22:17 real0ne joined 22:18 real0ne left 22:19 alester left, cmarcelo left 22:34 ruoso left 22:39 vel left 22:40 eternaleye left 22:41 rdice joined 22:42 iblechbot left 22:44 cmarcelo joined 22:45 cmarcelo left 22:46 rdice left, pmurias left 22:48 lambdabot joined 22:56 Lorn joined 23:15 BinGOs left 23:21 BinGOs joined 23:43 BinGOs left 23:46 eternaleye joined