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
|