pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:01 Schwern joined 00:08 felipe left, wknight8111 left 00:10 wknight8111 joined 00:20 dug_ joined 00:32 penk joined 00:49 elmex left 00:54 nipotaway is now known as nipotan 00:58 _Chillance_ left 01:05 dug_ left, alester_ joined 01:28 justatheory left 01:31 hercynium joined 02:08 BinGOs_ joined 02:13 BinGOs left 02:15 kanru left, Limbic_Region left 02:33 penk left 02:35 BinGOs_ left 02:36 BinGOs joined 02:40 justatheory joined 02:45 kanru joined 02:47 whereiskurt left, whereiskurt joined 02:49 hercynium left 02:55 wknight8111 left 02:59 BinGOs_ joined 03:08 BinGOs left 03:17 Schwern left 03:50 Schwern joined 03:53 whereiskurt left 03:54 BinGOs joined 04:02 Lorn_ left 04:09 BinGOs left 04:15 BinGOs_ left 04:16 BinGOs joined 04:23 jan__ left 04:36 masak joined 04:38 hcchien left 05:11 melling joined 05:18 melling left 05:27 zostay left 05:34 zostay joined 05:38 Psyche^ joined 05:49 alester_ left 05:56 Patterner left, Psyche^ is now known as Patterner 05:57 justatheory left 06:13 hcchien joined 06:17 ycheng joined 06:40 ashizawa joined 06:41 masak left 06:50 masak joined 07:07 pbuetow joined 07:09 felipe joined, cotto joined 07:15 pmurias joined 07:19 barney joined 07:20 Schwern left 07:26 cotto-work left 07:49 agentzh joined 07:55 jan__ joined 08:02 barney left 08:12 Alias_ left 08:19 luqui joined 08:21 BinGOs left 08:22 cosimo joined 08:23 sri_work left 08:28 kcwu left
pugs_svn r21818 | pmurias++ | [mold] conditional branch 08:28
08:36 BinGOs joined
pmurias how should the variant of call with responder interface,capture,and identifier be called? 08:41
08:41 kanru left 08:54 bacek left
pugs_svn r21819 | lwall++ | [STD vs t] user-defined prefix, infix, and postfix ops now derive new languages 09:02
r21819 | lwall++ | (no support for equiv or assoc traits yet, nor for circumfix etc.)
r21819 | lwall++ | start of support for $?PARSER, now parses 99.74% of t/
r21819 | lwall++ | traits and sigs may now be intermixed
r21819 | lwall++ | an anonumous subname may be represented with '&' in sub & is foo {...}
r21819 | lwall++ | now parses 99.74% of t
09:25 iblechbot joined 09:32 elmex joined 09:37 kcwu joined 09:42 jan__ left 09:44 jan__ joined 09:56 kanru joined
pmurias TimToady: you went for a $*Parser instead of propagating changes? 10:00
$*PARSER actually 10:03
10:16 kanru left, kanru joined 10:18 ruoso left
pugs_svn r21820 | jnthn++ | [spectest] Skip a test that we are currently failing in Rakudo, and that causes the rest of the file (that we can pass) to also fail after we die. 10:26
10:35 whereiskurt joined
pugs_svn r21821 | pmurias++ | [mold] call2 - still untested :( 10:35
10:35 jferrero joined
pugs_svn r21822 | pmurias++ | [m0ld] added a Makefile, merged lets 10:46
pmurias audreyt: have you looked into plugging m0ld into Pugs.Gen yet?, i almost finished all the ops for m0ld and i'm not sure what to focus on now 10:56
audreyt sorry, I was a bit occupied with new $work 11:06
will take a look to m0ld tonight
11:08 whereiskurt left, whereiskurt joined 11:09 nipotan is now known as nipotaway 11:10 ez joined
pmurias audreyt: no hurry, there is lots of stuff in smop i can work on 11:15
pugs_svn r21823 | pmurias++ | [m0ld] case is used for pattern matching instead of mutiple function definitions 11:16
11:19 iblechbot left 11:22 Lorn joined 11:30 Alias_ joined
pugs_svn r21824 | pmurias++ | [m0ld] Data.Map is imported as Map 11:32
11:34 whereiskurt_ joined 11:35 whereiskurt left 12:07 mjk joined 12:08 AzureStone_ joined 12:18 AzureStone left 12:20 Alias_ left 12:26 meppl joined 12:33 wknight8111 joined 12:46 ez left 12:51 bbkr joined 12:53 ashizawa left 13:04 ez joined 13:05 alester_ joined 13:08 jferrero left 13:13 iblechbot joined 13:15 cmarcelo joined 13:16 alester_ left 13:23 hercynium joined
pugs_svn r21825 | jnthn++ | [spectest] Some tests for array and hash attributes. 13:41
gnuvince @karma lwall 13:42
lambdabot lwall has a karma of 47
13:43 gnuvince left
pmurias @karma TimToady 13:46
lambdabot TimToady has a karma of 1 13:47
13:48 mjk left 13:55 ez left 14:11 ez joined
gbacon @karma+ TimToady 14:15
lambdabot TimToady's karma raised to 2.
14:24 hercynium left 14:26 lisppaste3 left 14:31 alester left, alester joined 14:32 xinming__ is now known as xinming 14:34 fridim_ joined 14:38 rindolf joined, ez left
pugs_svn r21826 | jnthn++ | [spectest] Unskip a test that Rakudo can now pass. 14:56
15:00 pmurias left 15:10 kanru left 15:11 kanru joined 15:20 alanhaggai left 15:29 ez joined 15:41 kanru left, masak left 15:45 simcop2387 left, simcop2387 joined 15:48 ron joined, fridim_ left 15:49 fridim_ joined
ron perl6: my $a = '0123456'; say substr($a, -5, -2); 15:50
p6eval elf 21826, pugs: OUTPUT[234ā¤] 15:51
..rakudo 29834: OUTPUT[23456ā¤]
ron I'm guessing perl6 is off and may work on it ... 15:52
rakudo
pugs_svn r21827 | jnthn++ | [spectest] A couple more tests for mixins, to cover a bug fixed today in Rakudo.
15:54 Lunchy_ left, Lunchy joined
pugs_svn r21828 | jnthn++ | [spectest] Various bits of fudging and tweaking of the handles spectest so Rakudo is able to run some of it. 16:03
16:04 kanru joined 16:10 alester left 16:18 fridim__ joined 16:23 alester joined 16:27 ez left 16:28 timbunce joined
pugs_svn r21829 | jnthn++ | [spectest] Some fudging in hash.t; now Rakudo can run 60% of the tests in this file. 16:29
16:29 ron left 16:33 fridim_ left
timbunce off topic: Unix question: what's the command to take multiple text files and output their contents side-by-side. i.e., the first lines from each, newline, the send from etc etc. 16:34
I know pr can do columns, but it wants to 'snake' the contents so the lines are no longer in sync.
I'm sure there's a simple command for it but it's escaping me and my searches at the moment.
16:36 ron joined
ron timbunce: maybe paste ?? 16:37
timbunce The paste command is the closest I've found (just now) but doesn't pad the columns. I'll do though.
Thanks ron.
16:38 ron left 16:39 timbunce left 16:42 justatheory joined 16:43 sri_work joined 16:44 ruoso joined 16:51 hercynium joined 16:52 luqui left 17:00 TJCRI joined, pmurias joined
pmurias ruoso: hi 17:00
ruoso hi pmurias 17:01
pmurias what's the next think i should be doing with Mold, porting Code to use it? 17:04
ruoso yes... I think so... 17:06
17:07 meppl left, rindolf left
ruoso installing ghc 17:09
17:11 alester is now known as AndyAway 17:12 jferrero joined
pmurias is just replacing the old slime Code ok, as it seems it has never fully worked? 17:21
ruoso yes... and we also need to support Code signature anyway... 17:22
which means supporting lexical scopes first
I've been re-reading the specs to see if the model in the wiki fits
I still need to re-think on a good way to mark variables as "is context" 17:24
or "is context<rw>"
pmurias we can store that info in a hash 17:28
ruoso pmurias, you mean having %.items and %.traits 17:35
?
17:36 fridim__ left
pmurias ruoso: something like that 17:36
ruoso I thought about having %.items having values of a special type that would describe all that info, besides holding the container...
something like a Variable type... 17:37
pmurias, btw... 24_m0ld.m0ld is very impressive... 17:39
TimToady in theory the only time you have to check is when you're chasing up the dynamic stack looking for a context var
ruoso yes... that was what I was thinking... 17:40
TimToady though certain kinds of optimizations that copy the context downward might also want to look at it
what optimizations you can get away with depend on <rw>
basically, whether you copy the value down or the ref
btw, currently testing to see if I'm at 100%
I suspect I am 17:41
well, STD is
I'm never really 100%... :/
but 'make testt' is looking good so far, so I'll go ahead and check in 17:42
ruoso I'm not considering doing any optimization at this point... only making sure there's room for it later...
pmurias i dosn't make much sense to optimize untill we are running on llvm 17:43
ruoso pmurias, you know something that would be very cool... replacing slime by mold in p6opaque and in the p6opaque tests (including dispatch_benchmark)... 17:44
then we could have a good notion of how much mold improves in speed... 17:45
[particle] pmurias: you know about llvm-gcc, yes? 17:46
pmurias yes
[particle] good 17:47
ruoso [particle], but what we're considering is using llvm as the interpreter itself...
pugs_svn r21830 | lwall++ | [STD] refine nibbler to avoid LTM for now
r21830 | lwall++ | avoid feeding canmatch() multiple large unicode characters at once
r21830 | lwall++ | since that tends to make way too many digraph cache files
r21830 | lwall++ | [t] whack illegal adverbials
ruoso at some point...
pmurias ruoso: re replacing slime, would it be possible to replace it by use v6 blocks 17:48
m0ld isn't meant for being handwritten 17:49
ruoso in p6opaque we have use v6 blocks already
and in the tests also
pmurias i see long sm0p block in src/p6opaque.c 17:50
ruoso it's cool to realise that mold and slime are coexisting during this tests...
ahm..
only the tests are using v6 blocks... 17:51
:(
but I think it's not that hard to replace..
ruoso taking a deep breath to read the sm0p blocks...
TimToady crumb, got an "identifier too long" error out of p5... 17:53
17:53 AndyAway is now known as alester
TimToady adding more bare blocks to self-defined.t 17:53
(to limit scope of user-defined operators) 17:54
(which tend to add long components to the current type name)
(because p5 doesn't have anonymous packages really...)
pmurias re Variable type, i think it's better to reduce the number of classes before we can write them in C
TimToady: we can use Class::MOP for creating anonymous classes 17:55
ruoso pmurias, before we can write it in P6, you mean...
pmurias ruoso: yes, of course ;)
ruoso maybe we could think on the traits as Roles 17:56
and later we could make $container ~~ ContextVariable
to see if it's a context variable
pugs_svn r21831 | lwall++ | [STD] limit scope of user-defined ops to work around p5 limitation on identifier length 17:57
r21831 | lwall++ | (why does p5 have a limitation on identifier length? probably my own fault, grrr)
pmurias ruoso: sounds resonable, and comfortably moves it down the ROADMAP 17:58
ruoso geez... replacing sm0p by 'use v6' blocks was easier then I expected... 17:59
pugs_svn r21832 | ruoso++ | [smop] replace sm0p blocks by use v6 blocks in p6opaque.... 18:00
ruoso TimToady, do you think it makes sense to think on the variable traits as "container roles"?
we have only one sm0p block left in src/ 18:01
pugs_svn r21833 | lwall++ | [STD] remove factorial cheat now that postfix:<!> is recognized 18:02
TimToady for lexicals it's almost more a trait on the use of the *name*, since there can be many identical containers for a given variable
you probably want to keep your lexical defs separate from the actual pads anyway, like p5 does 18:03
ruoso yes... yes... that's the reason why smop will have a double boxing on the variables
TimToady that allows you to have lexical defs that point to fixed offsets in the pad
pmurias ruoso++ # radical code shrinking with "use v6" 18:04
ruoso the variable container is a container that has the actual container...
TimToady, binding works because of this "double boxing"
pmurias, I'd like to get rid of the last sm0p block in src/ 18:05
but that one is a very fragile one
because it's where the variable is actually freed
and that's where an important slime feature comes in...
which is "forget()" 18:06
it does a forget() before calling the actual free
so we're sure that there isn't any other copy of that value in any other place
smop_lowlevel.sm0p:232
I think we can't really convert that to a "use v6" block... but we can probably replace it with a mold block 18:07
pmurias, what do you think? 18:08
actually.. how do you think we could solve that? 18:09
pmurias looking at what forget is
ruoso forget releases the slime nodes before the current one
which in mold could be implemented just by a cleaning of some selected registers
pmurias, does mold already support sending an object as the capture, as in (|$object) 18:11
?
18:12 orafu left
pmurias ruoso: yes 18:13
it's the last untested opcode
ruoso good
smop_lowlevel is a good test case ;)
pmurias i'm unsure weather to add some syntax sugar to m0ld 18:16
ruoso I'm not sure that's needed for smop_lowlevel...
we can have a mold block creation there..
with a lot of comments explaining what it is
pmurias meant it in a different context, but yes we could use a mold block creation there 18:17
ruoso pmurias, also... take a look at smop_lowlevel.sm0p:118 18:18
in that line, the lowlevel free operator removes the last reference of the value in the current slime block
something like that would be needed... 18:19
it's an important bootstrap element...
pmurias just manual overwritting the register could work 18:20
* manually
18:20 cmarcelo left
ruoso that's fine by me... it's just that the "free" call needs to do that *after* it was invoked... 18:20
because it obviously needs to receive the value as argument before doing it... 18:21
18:22 cmarcelo joined
ruoso and it needs to be done that way... because DESTROYALL might recurse, so free needs to be called after DESTROYALL returns... 18:22
pmurias ok i'll do it tommorow morning of later today 18:24
ruoso :D 18:25
18:25 meppl joined
pmurias ;) i meant it to be of rather than on, as i find that staying coding up late is not really worth it 18:29
ruso: is there anything about m0ld i should write? the wiki page feels skimpy as it is 18:31
* ruoso 18:32
ruoso pmurias, I think it's ok for now... I have a feeling that we're going to have s1p soon... so m0ld will have a limited use...
because s1p will generate C+m0ld (or C using Mold directly) 18:33
mofino C can harness the awesome power of mold!? 18:34
what can't C do!?
libfungus
mofino goes back into the darkness 18:35
pugs_svn r21834 | lwall++ | [STD] EXPR gets upset if we don't hoist $<sym> from prefix into pre 18:37
pmurias ruoso: i just wanted audreyt to have an easier job with s1p, although i'm not sure if she prefers reading docs to reading code 18:39
ruoso and I'm also not sure she'll want to write C+m0ld instead of C+Mold 18:45
pmurias and anything about Mold?
btw i'm confusing Mold and m0ld myself so maybe the names are to similar 18:46
ruoso heh... 18:47
writing more about Mold is certainly a good idea
mofino Needs more mold! 18:48
pmurias i don't really now how to start, any requests?
pmurias was suprised after reading on wikipedia that slime molds can actually crawl about 18:50
ruoso pmurias, I think a more structured page on the opcodes would be helpfull\ 18:57
19:00 Caelum left 19:02 Caelum joined 19:08 jfredett_ joined, Schwern joined 19:19 eternaleye left, jfredett left 19:20 eternaleye joined 19:21 fridim_ joined 19:36 cjfields joined 19:43 eternaleye left 19:51 Alias_ joined 19:58 wknight8111 left
pugs_svn r21835 | lwall++ | [symbolic_deref.t] commented out illegal syntax 19:58
20:05 Schwern left 20:08 buubot joined
ruoso pmurias, in the s1p Hash implementation, after the key being autovivified, do you store the container or do you return a proxy object every time? 20:09
20:10 TJCRI left
pmurias ruoso: looking 20:10
ruoso: i don't do either hashing or autovivification 20:11
ruoso let me put the question another way... 20:12
pmurias ok ;)
you mean how should it be done?
ruoso is the return of postcircumfix:<{}> something that I can modify? or is it just a proxy for the stored value? 20:13
meaning... can I just FETCH and STORE? or may I suppose that this object could "does" something...
20:13 cognominal_ left 20:15 cookys left, cookys joined
pmurias ruoso: the object returned is the actuall hash cell 20:16
ruoso pmurias, alright... 20:17
which means that you're implementing a hash in p5 style 20:18
where touching it autovivifies it
pmurias i can fix it, it's just a quick hack
i think will have the actual Hash in Perl 6 20:19
s/will/we will
ruoso yes yes...
TimToady if the hash cell doesn't exist, you return a protoobject with a WHENCE that knows where to autovifify
ruoso but I'm not thinking about Hash itself now, but its usage in LexicalScope 20:20
TimToady, there's one thing I'm not sure about is how is this WHENCE block detect if you're wanting to use the hash cell as a scalar, an array or whatever... 20:21
s/how is this/how will this/
unless this protoobject is of some magical type that can coerce to whatever 20:22
TimToady waves his hands vaguely and mutters "left as an exercise for the reader"
[particle] Object is that type, no?
TimToady you return the "of" protoobject with a WHENCE
ruoso pugs: my $a = Object.new(); $a<1> = 2; say $a<1>; 20:23
p6eval pugs: OUTPUT[2ā¤]
pugs_svn r21836 | lwall++ | [STD] distinguish &infix:<x> inside declaration from outside 20:24
ruoso not really sure on how Object will turn itself into Hash....
20:24 wknight8111 joined
pugs_svn r21837 | jnthn++ | [spectest] Skip a test in Rakudo that I think is a bit suspect; requested clarification from p6l. 20:25
TimToady the WHENCEthing returned by $a<1> would know both how to turn Object into an hash and how to add the 1 if used as lvalue, I suppose 20:26
ruoso hmm... 20:27
pmurias maybe just WHENCE has the method which autovivified is as an arguments?
TimToady it's a closure, so it can have whatever it likes 20:28
and the WHENCE closure need not be generated if provably in rvalue context
ruoso is missing something in this picture... but have to go now...
TimToady this is all specced, I think 20:29
nap& 20:30
pmurias ruoso: i changed the wiki page format
* Mold wiki page
ruoso home & 20:32
20:32 ruoso left 20:36 cognominal_ joined 20:42 pmurias left
pugs_svn r21838 | lwall++ | [STD] more opdef tuneups 20:54
[particle] committing while napping... this is becoming common in the pugs repo 20:58
20:59 cjfields left 21:11 whereiskurt_ left
pugs_svn r21839 | jnthn++ | [spectest] Unskip and un-todo some more tests that Rakudo is now passing. 21:12
r21840 | fglock++ | [PCR] Runtime::Regex with dfa-ish "parallel alternation" committed as a separate file; 21:18
r21840 | fglock++ | - low-level tests pass.
r21840 | fglock++ | - pending integration with the main runtime.
r21840 | fglock++ | Runtime::Match: added clone()
21:21 hercynium left 21:23 preflex joined 21:24 whereiskurt_ joined, sri_work left 21:25 Caelum left 21:29 Caelum joined 21:35 fullermd left 21:44 hercynium joined
pugs_svn r21841 | jnthn++ | [spectest] Unskip a some more hash composer tests for Rakudo. 21:59
21:59 whereiskurt__ joined 22:00 whereiskurt_ left 22:01 mauke left 22:09 fridim_ left 22:13 alester is now known as AndyAway
TimToady _ ___ ___ _ __ 22:31
|/ _ \ / _ (_)/ /
| | | | | | | |/ /
| | |_| | |_| / /_
|_|\___/ \___/_/(_)
heh
22:32 Schwern joined
TimToady trying again: 22:32
_ ___ ___ _ __
/ |/ _ \ / _ (_)/ /
| | | | | | | |/ /
| | |_| | |_| / /_
|_|\___/ \___/_/(_)
22:33 Caelum left
xinming It's a good time to remember for the perl 6 on the road, :-) 22:33
TimToady 'course, that's just parsing t/ 100%, not parsing t/ 100% correctly... 22:34
22:34 Caelum joined
[particle] can you push it to 111%? 22:35
TimToady but about as well as you can do without a symbol table...
sure, just keep adding thrust
[particle] get it parsing ext/ 22:36
TimToady scared to try 22:37
[particle] hrmm, actually, there's a bunch of non-perl6 there
makefile.pl etc
TimToady course, by spec p6 is supposed to recognize that... :)
[particle] congrats, though. that's a big milestone
yeah, well, let's not go there
22:38 hercynium left
[particle] of course, your parser can actually embed perl to parse Perl 5 22:38
TimToady I think my next major milestone will be a 100x speedup...
[particle] still written in perl 5?
TimToady I can probably hit 100x on the embedded perl 5 :)
yes
[particle] :)
TimToady there's *lots* of room for improvement all over 22:39
[particle] hot diggity.
TimToady consider that it takes it 3 minutes to parse itself, but gimme5 does it in 1 second
22:41 dduncan joined
TimToady should be able to get into the same ballpark as gimme5, within a factor of 2 or 3 anyway 22:41
[particle] hopefully 2-3 faster :)
move over toke.c 22:42
TimToady well, that's when we're compiling p6 straight down to the metal
got a ways to go on that yet
[particle] how long to parse t/ ? 22:43
TimToady 'bout an hour right now
[particle] ok, so 10x would really change your life 22:44
TimToady one can only get so far running tests while one is sleeping :)
but "so far" is at least where we are now 22:45
but I kept holding out for 100% before looking at optimizing at all
[particle] complete, correct, etc
but we're ignoring the first bit 22:46
TimToady the next thing to do is probably to actually implement the ratchet optimization beyond just throwing in a .[0] here and there
currently all the code assumes anything might backtrack even if it doesn't 22:47
[particle] that'll trim some trees 22:48
22:48 iblechbot left
[particle] ok, i've gotta get yaml::xs to install, so i can play with it 22:50
TimToady a custom dfa matcher will also help a lot; it spends a great amount of time trying to avoid running tre
and Moose
[particle] well, i'm busy getting minicpan set up 22:51
TimToady tre doesn't work on macs; dunno about windows
[particle] since i'll be downloading half of cpan anyway
no tre on windows
TimToady another reason to come up with our own dfa
[particle] i'm using ubuntu 8.04
just so i can play
but i'd love to port it windowward
TimToady I'm also on ubuntu at the moment
another medium-term goal would be to write something that takes the yaml parse of STD.pm and produces STD.pmc to replace gimme5 22:53
but I think a speedup comes first to avoid quadratic development 22:54
[particle] indeed
however exploratory code in that direction is possible
TimToady and has already been discussed here, in fact, though usually in the middle of the night from my perspective :) 22:55
[particle] the ast generated, do you see that as an official ast?
TimToady it's just a parse tree currenltly 22:56
[particle] oh right
TimToady no make/reduce actions at all
[particle] shoot. i've put off that yaml dumper/loader for past long enough. 22:58
TimToady I've got several more yaks looking fuzzy if you're interested 22:59
[particle] i wish yaks were friendlier. 23:00
TimToady I just wish that once you shaved 'em they'd stay shaved...
[particle] yep, even if you kill'em, that hair keeps growing 23:01
23:01 pbuetow_ joined, pbuetow left
[particle] i can't believe i'm debugging the jvm for work today. 23:05
an old jvm (1.3.1). on a platform i don't know (rhel 3). 23:08
damn yaks.
23:13 Schwern left 23:16 whereiskurt__ left 23:17 whereiskurt__ joined 23:40 ruoso joined 23:49 cognominal_ left 23:54 cognominal_ joined 23:56 pbuetow_ left 23:57 bacek joined