pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
TimToady anyway, currently :foo($bar) invokes <param_var> to parse $bar, and needs something recursive to allow nested :() 00:01
00:02 jferrero joined
stevan_ mncharity: pong 00:10
Khisanth [particle]: how can it be anonymous and named at the same time? :) 00:32
[particle] stevan_: ping
Khisanth: that's precisely the point
it's an ambiguity 00:33
00:38 Limbic_Region joined 00:40 DaGo left 00:57 nipotaway is now known as nipotan 01:04 devogon left 01:12 zgh_ joined 01:13 polettix left
stevan_ [particle]: I have collected many of the moose slides here -> www.iinteractive.com/moose/ (sorry damn freenode wont let me speak over /msgs) 01:14
lambdabot Title: Moose - A complete modern object system for Perl 5
stevan_ they are all quite incestuious, so feel free to borrow anything you like I am sure no one will mind :)
[particle] that'll do, thx 01:15
stevan_ :) 01:16
01:16 tobeya left, lyokato_ joined
stevan_ [particle]: my current favorite for a "quick" talk is Chris Prather's "Intro to Moose" he pulled all the good bits from the previous talks and smushed it into a 20-30 min I think 01:17
[particle]: if you end up putting it online, please pass on the URL and I will post it here too :) 01:18
[particle] roger, wilco
01:24 amnesiac left 01:32 ting joined
meppuru good night 01:34
01:34 ispy_ joined 01:35 meppuru left 01:42 ting left 01:43 ting joined, muixirt2 joined, ting left, ting joined 01:46 Schwern joined 01:53 ispy_ left 01:54 ispy_ joined 01:59 Muixirt left 02:00 Schwern left, Schwern joined 02:03 Squern joined 02:10 japhb left 02:11 cnhackTNT joined 02:13 Squern left, Squern joined 02:18 bwisti left 02:23 Squern left 02:24 Squern joined 02:25 RiXtEr joined
RiXtEr Can someone ask in #perl why i am banned from there? I would really appreciate it.. 02:25
02:25 Schwern left
RiXtEr buu, are you around? 02:27
02:28 japhb joined 02:29 jjore left, lambdabot left 02:30 lambdabot joined 02:34 Squern left, Squern joined 02:42 jferrero left 02:46 RiXtEr_ joined 02:48 RiXtEr left, RiXtEr_ is now known as RiXtEr, agentzh joined 03:05 muixirt2 left
buu RiXtEr: Nope. 03:08
RiXtEr buu,why not? 03:09
buu RiXtEr: You are unbanned. 03:12
Wait, no, I was lying.
RiXtEr i am able to get in now
buu HA HA I WAS LYING ABOUT LYING
FOOLED YOU.
03:13 agentzh left
Limbic_Region buubot: be glados =~ lying 03:40
buubot Limbic_Region: Sorry, no quotes matched the search term: lying
Limbic_Region buubot: be glados =~ joking
buubot Limbic_Region: Sorry, no quotes matched the search term: joking
Limbic_Region buubot: be glados =~ kidding
buubot Limbic_Region: I'm not kidding now. Turn back or I WILL kill you. I'm going to kill you, and all the cake is gone.
Limbic_Region not the quote I was hoping for
buubot: be glados =~ pretend
buubot Limbic_Region: Remember when the platform was sliding into the fire pit and I said 'Goodbye' and you were like (deep male voice) 'NO WAY!' (normal voice) and then I was all 'We pretended we were going to murder you'? That was great!
03:49 drbean joined
Limbic_Region sorry, I thought I was in another channel 03:53
04:05 alester joined
mncharity is somewhat bemused by recent conversations. 04:18
none the less, woot! specifically, 04:19
04:19 RiXtEr left
mncharity @tell fglock epiphany. Consider a possible path to a very rapid, low risk, p6 bootstrap. Call it kp6rb. Sort of kp6 + ruby introspection + redsix. Say kp6's p6 code were hand transliterated into ruby. That ruby code could (1) run directly, at full speed. And because you can get an ast from ruby code, you can also (2) get a *kp6 ast* from it too! And thus (3), also regenerate the p6 code. 04:24
lambdabot Consider it noted.
mncharity @tell fglock We thus escape incremental bootstrap hell. Since you can get the ast without p6 parsing, compiler and backend development no longer depends on the front-end working. Since you can run directly, all development no longer depends on the compiler and backends working. And since we have an alternate ast source, front-end development no longer depends on having a compiler and backend working. Things decouple. Development is unshackled. 04:25
lambdabot Consider it noted.
mncharity @tell fglock The decoupling also means development can go in parallel, using as many people as we can get. And since the ruby code is intentionally simple and p6-like, even while writing ruby, most of the developers need only know simple p6. We could get by with only a couple of ruby folks for infrastructure. 04:28
lambdabot Consider it noted.
Auzon You know, I feel sorry for anyone trying to explain the complete development process of Perl 6 from start to finish (once it is finished) ;) 04:30
04:33 alester left
Tene Auzon: didn't you hear? you were nominated to compile the history. 04:34
Auzon Heh 04:35
mncharity @tell fglock Basically, we use ruby as a proxy for p6. And write a p6 implementation in it. Bootstrap becomes a flexible thing, something to do incrementally when convenient, rather than a constant burden. So that's the idea, no doubt poorly explained and glossing over issues. Questions, comments, etc, all most welcome. 04:36
lambdabot Consider it noted.
Auzon Can't it just be interpreted instead?
mncharity Auzon: was that a question for me? 04:38
Auzon Oh, nope.
mncharity drat :) 04:39
Auzon It was regarding Tene's comment about me being the one to compile the history
Tene ><
mncharity: can't it just be interpreted instead?
mncharity: that better?
mncharity lol
re can't it just be interpreted instead?,
Auzon hah. I don't even see how that'd apply, but...
mncharity the big challenges of implementing p6 are, the regex engine, the parser, the runtime, and the lack of spec. also 04:42
Limbic_Region why do you think those are big challenges? 04:43
pge is a pretty good engine
mncharity the compiler and emitter if you are doing real, full p6. but if you are just worrying about bootstrap, and have a nice oo language as a backend target, then the backend is relatively less painful than the other challenges.
04:43 charsbar left
Limbic_Region mncharity - nevermind, after reading backwards I see you are talking about general problems 04:45
mncharity Limbic_Region: I didn't mean _current_ challenges. Yes, we now have a collection of engines good enough to be used for a bootstrap.
Limbic_Region and not so much what huge hurdles still need to be faced
mncharity right
Limbic_Region I just happened to be flipping through my channel windows and saw that
mncharity :)
Limbic_Region should have read some more for context
mncharity the biggest current are perhaps 04:46
Limbic_Region 1. longest token matcher
2. lack of up to date tests
mncharity lack of spec, parser, integration/bootstrap pain 04:47
Limbic_Region when perl6 can parse correctly STD then you will have your parser
I don't really see lack of spec as a hurdle
mncharity I don't mind old tests. A working but out of date p6 would be a dandy environment to write an up to date p6.
Limbic_Region the spec is mostly going under refinements 04:48
where do you see holes?
mncharity re spec
Limbic_Region mncharity - the test point was 2 parts - lack of tests and out of date
mncharity - since anything that passes the test suite is considered official perl 6 - the test suite needs to be extremely comprehensive 04:49
despite how large it is now, it still is far short of the mark
04:49 zgh_ left
Auzon Is there a TODO list for the test suite? I was hoping to contribute to that sometime if there's a list of stuff 04:50
04:51 alester joined
Limbic_Region Auzon - there was a project to align tests with the synopses. I am not sure if it is still active, but that would point to what tests need updating (because the spec has changed) and what tests need writing (because there is no tests linked to that portion of the synopsis) 04:51
zgh hey andy
mncharity re spec, we don't have a language reference manual. we sort of have a collection of language design policy decisions. the kind of thing which might be the "backstory" section/inserts in a reference. figuring things
zgh have i thanked you for ack lately?
alester zgh: Not that I recall. 04:52
zgh thanks for ack
been using it since your lightning talk at oscon
Tene alester: thanks for ack.
alester you're welcome.
Limbic_Region mncharity - can you point to a language reference manual for another language so I can relate to what you are saying?
alester zgh: Glad I got a user out of that. 04:53
mncharity out about the language require a detective story exercise. and then asking here or p6l when, invariably, even many simple obvious questions cant be answered from sNN. the reason spec is an obsticle is
zgh alester++
Auzon hm, I should reinstall ack...
the use of real Perl patterns made it worth it :)
04:53 xwrn joined
zgh there's a ruby clone now, but I'll have none of it ^_^ 04:54
alester Have we ever met, zgh? Your name doesn't ring a bell.
zgh even though I'm now a rails developers *ducks*
alester zgh: rak is missing key features, too.
04:54 xwrn left
zgh i'm zack hobson we met when I worked for Shopzilla 04:54
04:54 xwrn joined
alester ah, ok 04:54
zgh now geni.com, mostly the same software team though 04:55
mncharity because with a reference, one could hand a random any-language programmer the reference, and say, here, implement this. or any part of this. but now, one has to join in an incremental language design process. which I'm not knocking, but that's why spec is there as a major challenge for implementation. because refining design and improving sNN is an unavoidable part of doing implementation at present. Though much less than in the distant past. audreyt
mncharity backlogs 04:56
Limbic_Region wanders off to try and get some sleep 04:57
TTFN all
04:57 Limbic_Region left
mncharity Limbic_Region: re point to a language reference manual, 04:57
err, drats.
@tell Limbic_Region The CL manual. The ANSI C standard. Um, it's more like _most_ languages have more of a reference manual than p6. Than p5 even. 05:01
lambdabot Consider it noted.
mncharity zgh: ahhh, a ruby developer...
05:02 Squern left
mncharity have you seen svn.pugscode.org/pugs/misc/pX/Common/redsix/ ? It's quite different in approach from what would be done now, but it was inspiration, and perhaps some bits might be scavanged for the runtime. 05:03
lambdabot Title: Revision 19374: /misc/pX/Common/redsix
05:04 xwrn left, xwrn joined
mncharity zgh: basic introspection idea is a ruby2ruby derivative (ruby2p6) . 05:05
zgh that does sound interesting 05:07
i think parrot is a probably more important than perl6 in the long run 05:08
i like to think that it's just syntax anywau 05:09
er, anyway
mncharity re parrot... I better leave it as "no comment". My estimation is the opposite of yours (p6 importance >> parrot).
zgh is inspired to svn up parrot and poke around in languages/perl6 & 05:10
mncharity zgh: there are some nice pure ruby projects which could be done an would help
eg, doing a real version of the redsix kludge for taking StringScanner and wrapping it to permit user code to be part of the pattern. 05:11
that would give ruby regexps what p5 already has with (?{...}) and friends. 05:12
and provide the foundation for grammars in ruby.
another, less useful to the ruby community, would be a multi with p6 multimethod dispatch semantics. 05:13
zgh: still there, or eaten by parrot? 05:14
zgh a little of both
mncharity :)
zgh i'm an experienced perl5 (and to a lesser extent ruby) programmer, but I still feel a bit out of my depth in parrot 05:15
it makes me want to finish my CS degree
mncharity or just read more CS papers :) 05:16
another of-general-use ruby project might be a pure-ruby multiple inheritance capability. one which didn't depend on evil.rb. but... that one's not critical path for the kp6rb effort. 05:18
zgh that's do-able as long as you don't care about syntax 05:21
i haven't seen evil.rb though 05:22
mncharity the ruby2ruby mutant (ruby2kp6ast probably (with separate kp6ast->p6), rather than a ruby2p6), and some DSL hackery to set up the p6(looks-like-ruby) developers, seems the big ruby-side sink. until you start working on a real ruby backend runtime (as distinct from the kp6-ish ruby runtime). 05:23
evil.rb is cute, lets, for instance, classes serve as modules, but it's now unsupported, losing functionality (#become() is gone, snif), and doesn't work on 1.9. 05:24
TimToady if ruby is ~4x slower than p5, how is that gonna help a bootstrap, when the main feature of the p5 bootstrap is its blazing lack of speed? 05:26
pugs_svn r19375 | rhr++ | [Unicode.pm] process DerivedCoreProperties.txt, begin casing algorithms
mncharity ruby2ruby/ParseTree don't work on 1.9 either, but using 1.8 for kp6rb, and 1.9 (with real lambdas) as the target for a hypothetical (and entirely separate issue) backend, doesn't seem a problem.
zgh yeah I'm not enthused about working with the existing ruby interpreter for something like this
i'd much prefer to use perl6 ^_^ 05:27
on parrot
it'll be tempting to implement many of the parrot languages in perl6 i expect 05:28
05:28 ispy_ left
mncharity TimToady: ruby oo is close enough to p6 oo to be used directly, at least for a bootstrap where one is using a limited p6 dialect. redsix was faster than pugs for several weeks, until audreyt applied additional hs magic. Even then, it was within a few 10's% I fuzzily recall. 05:28
zgh since perl6 will probably be the first complete HLL on the platform 05:29
mncharity and re ruby is ~4x slower than p5, I suspect that does not refer to oo in ruby vs p5. My understanding is ruby oo is significantly faster than p5, let alone p5+Moose. it's just that ruby uses oo everywhere, so when p5 can avoid oo, it's faster. no avoid oo on this project, at least until we have not just a compiler, but a wizzy compiler. 05:30
*avoid_ing_
TimToady troonuff 05:31
zgh mncharity: really? i hadn't thought of that
05:32 kanru joined
mncharity zgh: re "really?", err, which part? 05:33
zgh certainly p5+moose is slower, but I always imagined that would put it on par with ruby ^_^
although I haven't used the new faster moose even
mncharity ah, no.
p5 oo is rather slow. and in ruby, being the common case, it gets lots of optimization attention. 05:34
zgh sure that makes a lot of sense, I had never considered it since I always did OO in perl5 anyway 05:35
but now that I think about it perl5 was much easier to optimize...
er is, I only say was because I don't write much perl5 anymore 05:36
mncharity hmm, s/faster than pugs for several weeks/...for a while/. I've the fuzzy recollection of an "oh, drat, well, that window was rather short". like a week or two. 05:40
ruby is also much better than p5 for metaprogramming. comparable to CL imho. and since it's common practice, it's much more robust than when you try to play similar games in p5. 05:45
zgh that's very true
although my memories of metaprogramming in perl are fond
mncharity yeah. but it usually doesn't take me long to hit, drat, I really want macros. and then, hmm, the Filter::Simple bug is still there. and here I am again contemplating writing a more macro-ish wrapper for Filter. 05:48
followed sometimes by I wish I could use this code as data, maybe I should be using CL or scheme here. as in this kp6rb case. a similar CL/scheme bootstrap path has been available. it's just they are so verbose, it hasn't been -Ofun, at least for me. 05:50
zgh code-as-data needs to cross the gap syntax wise, it seems like all the languages that do it are schemes and lisps 05:51
me no likee the parens
that's one of ruby's faults for sure 05:52
all the metaprogramming but no code as data
TimToady well, look at it this way, if there were some language that was close to what we want in p6, we probably wouldn't want p6 so much... 05:53
zgh TimToady that's why I'm here
mncharity re syntax gap, anything with an exposed parser and ast can do it. java, ruby, etc. p5 even, though because using B is a bit painful and limited, and not done much, it ends up not robust.
TimToady: indeed
oh, yeah. re want p6 so much. which brings us back to could kp6rb be a way to get it soonish. 05:54
zgh: with ripper in 1.9, the assorted node reflectors (ParseTree, Nodewrap, RubyNode), it's getting to the point where ruby has code as data. ruby just as other ways of dealing with the same kind of issues a lisp would use that for. so they are less mainstream than they might be. though some things like Heckle(sp?) use them. 05:58
*has
zgh yeah 've seen that but always considered it experimental
i guess now that meta is part of the culture I've gotten spoiled and want code as data as part of the culture as well 05:59
mncharity getting there, slowly, I think.
zgh also there is something about the approach taken by the lisps, something pure that I feel ruby hasn't learned
but it seems so close
but for expressiveness perl6 is going to blow the doors off 06:00
but purity isn't really something perl strives for
mncharity (aside: Heckle is a testing tool, a test coverage checker - it mutates your code - if your test suite then *doesn't* fail, you are obviously failing to test whatever part of the code ceased to work due to mutation)
zgh it's a clever idea, i've used it a few times 06:01
part of the problem is that you can't really produce nice little red-to-green completion graphs for heckle
06:01 IllvilJa left
zgh it's less satisying ^_^ 06:01
mncharity re purity, expressiveness, agreed
:) 06:02
Auzon re the green/red charts, I definitely agree :)
zgh those guys have some other interesting code tools as well
i think code testing as an art is making juge strides in the ruby community 06:04
juge? huge.
mncharity basically kp6rb would be like using a p6 implementation snatched from the future, but with "use Ruby;" unavoidably set, and only partial language coverage (perhaps bigger than kp6, but most likely smaller than pugs), and likely some quirks (10%/60% kind of effot/result tradeoff - eg macros, but no lexically scoped macros). and then one just writes ruby-style p6 implementation, to avoid the "use Ruby;", and address coverage and correctness. 06:07
zgh that sounds super interesting but fragmented.
is this an ongoing effort? 06:08
mncharity But the neat thing is there is no "big switch day". One can keep on using kp6rb in parallel with whatever evolves from it, until you simply don't want to bother anymore.
re ongoing effort, it's an idea from this morning.
zgh i looked in the few pages of logs that I have for this channel but I don't see much else about kp6rb 06:09
what is it exactly?
aha
mncharity re fragmented, how so?
zgh from this morning okay
i see
mncharity re fragmented only the description
mncharity re what is it, best description is my @tell to fglock a few (err, lots of) minutes ago.
06:09 meppuru joined
zgh mind repeating it here? 06:10
mncharity irclog.perlgeek.de/perl6/2008-01-08#i_173739
lambdabot Title: IRC log for #perl6, 2008-01-08
mncharity I'm happy to repeat, get comments, answer questions, ramble, etc. 06:11
zgh wow
06:11 xwrn left
zgh that's a really good idea. the bootstrap argument is an excellent lever 06:12
mncharity re fragmented, yeah, that was an odd description. its basically "write a simple p6 implementation in ruby, and oh, by the way, most of the usual bootstrap challenges vanish". 06:13
zgh i think if I had to choose between ruby or haskell as a bootstrap language the choice seems obvious...
mncharity haskell will make a very nice backend langauge at some point. some things like STM, are vastly more straightforward to get working in haskell than elsewhere. basically "big non-local stuff" is easier to do there. with enough hs type wizards, it would even be plausible as a bootstrap language. but without them... well, non-strictly typed was a requirement as I looked for languages which might simplify bootstrap. 06:15
06:15 IllvilJa joined
mncharity a haskell backend will let us play very magical games with p6. 06:16
haskell as a bootstrap language, because of its clarity, was also excellent for pushing language design. 06:17
but re wow, that's a really good idea, thanks! :) appreciate the feedback. 06:20
zgh just the ideas re bootstrapping are compelling by themselves 06:21
ruby also happens to be an excellent language for the purpose
although writing perl6 in perl6 is what i look forward to most 06:22
mncharity indeed 06:23
pugs_svn r19376 | rhr++ | [Unicode.pm] begin grapheme cluster stuff 06:27
mncharity re compelling by themselves, after lots of bouncing off the walls, design space's maze of twisty little passages, there was definitely that nice "have found the right representation - problem simplifies" feeling as it started to look like it might be a real. love those moments. :) 06:32
06:33 Auzon left
mncharity zgh: so, interested in hacking? :) 06:34
zgh mncharity: sure 06:38
mncharity (hmm, the ircbot ate my audreyt++ fglock++ re "Though much less than in the distant past.") 06:39
re sure, :) ! 06:40
06:40 meppuru left
mncharity I think the immediate task graph looks like: 06:42
06:45 bwisti joined, bwisti left 06:46 bwisti joined 06:51 alc joined 07:01 mncharit1 joined 07:02 mncharity left
mncharit1 sigh. partition. missing text following "I think the immediate task graph looks like:" was: 07:06
create directory in pugs, start planning/overview doc, create rb class to abstract creation of kp6 ast (eg, methods bind, call, whatever), ast for same, ast->p6 emitter, ruby2ruby derivative which uses kp6 ast creation object; transliterate kp6 .p6 files, most complex first, into rb; milestone 1 - actually see good p6 coming out the pipe
that will address the risk that ruby2ruby has "doesn't quite work on things we care about" gotchas.
sound plausible? thoughts? 07:07
actually, ast for same is just transliterated kp6 code
hmm. will talk with fglock tomorrow. see what he thinks. there are both perl and ruby user group meetings tomorrow. conflicting. not sure which would be better to go to to get volunteers. :)
I don't really have the heart for a long, drawn out, lonesome exercise. I'd like to do real project management, perhaps even more than fglock has been doing, gather enough people, and just nail it.
so I guess the first task is really a project planning exercise
end of day. g'night all &
end of missing text 07:08
sound plausible? thoughts?
:)
zgh sounds plausible 07:09
i have to say g'night as well
mncharit1 right. it was nice talking with you.
pugs_svn r19377 | rhr++ | [Unicode.pm] rename %is to %category, arrayish interfaces to strings 07:10
zgh nice talking to you too, keep in touch
mncharit1 will do
zgh &
07:12 devogon joined
mncharit1 & 07:20
07:20 mncharit1 left 07:51 asprillia joined 08:05 iblechbot joined 08:08 kanru left 08:10 charsbar joined 08:21 Aankhen`` joined 08:23 alester left 08:30 LCamel joined 08:31 ruoso left 08:34 rindolf joined 08:40 franck___ joined 08:56 braceta joined 09:01 bwisti left 09:05 jisom joined 09:17 njbartlett_ left 09:22 masak joined
spinclad @tell mncharity plausible, fascinating, and very shiny. must find some ruby references and join the -Ofun. 09:22
lambdabot Consider it noted.
09:25 ebassi joined 09:26 penk joined 09:27 cj_ joined 09:32 rindolf left 09:33 cj left, ludan joined
ludan hello 09:34
09:46 kanru joined 09:48 pen1 joined 09:51 ruoso joined, alc left 10:02 njbartlett_ joined 10:07 penk left 10:12 chris2 joined 10:30 njbartlett_ left 10:33 lyokato_ left 10:34 cnhackTNT left 10:36 jferrero joined 10:43 njbartlett_ joined 11:42 alc joined 11:49 Aankh|Clone joined 11:57 Aankhen`` left 12:03 jisom left 12:04 ludan left 12:08 braceta left 12:39 njbartlett_ left 12:40 njbartlett_ joined 12:50 chris2 left 12:53 iblechbot left, lisppaste3 left 12:56 njbartlett__ joined 12:57 njbartlett_ left 13:01 lisppaste3 joined
pugs_svn r19378 | ruoso++ | [yap6] Some notes on the ROADMAP, making some steps more clear 13:05
13:08 fglock_ joined, fglock_ is now known as fglock 13:13 nipotan is now known as nipotaway 13:18 iblechbot joined 13:35 cmarcelo joined 13:39 mj41 left 13:44 iblechbot left 13:54 jferrero left 14:01 hexmode left 14:09 jferrero joined, jferrero left 14:13 njbartlett__ left 14:18 mj41 joined 14:31 alester joined 14:32 pen1 left 14:39 rdice joined 15:01 njbartlett_ joined
ruoso wonders why is this so quiet today.. 15:02
15:02 jhorwitz joined, Aankh|Clone is now known as Aankhen`` 15:03 Psyche^ joined 15:04 meppuru joined 15:12 iblechbot joined 15:20 rlb3 joined, Patterner left, Psyche^ is now known as Patterner 15:23 stevan_ left 15:30 pmurias joined 15:32 stevan_ joined 15:33 kanru left 15:41 Alias_ left 15:49 ispy1 joined 16:05 asprillia left 16:09 meppuru left 16:11 meppuru joined 16:23 nitro25 joined, jjore joined 16:30 alc left 16:31 barney joined 16:32 Psyche^ joined 16:36 pmurias left 16:44 Patterner left, Psyche^ is now known as Patterner 16:53 zamolxes left 16:55 nitro25 left 16:59 zamolxes joined 17:01 polettix joined 17:04 jjore left 17:09 jferrero joined
pugs_svn r19379 | ruoso++ | [yap6] include/yap6_stack.h -> defining the lowlevel operator identifiers. This is way too crazy... 17:24
17:33 masak left
qmole /1333//3/2 17:49
er, oops
18:04 franck___ left 18:05 bwisti joined 18:06 meppuru left 18:14 tobeya joined 18:18 ebassi left
pugs_svn r19380 | ruoso++ | [yap6] one stronger advise on the evilness of the 4 stack manipulation operators. 18:20
r19381 | rhr++ | [Unicode.pm] process HangulSyllableType.txt, implement UAX #29 Grapheme Cluster Boundary Determination
18:22 jjore-w joined 18:24 kane__ left
pugs_svn r19382 | rhr++ | [Unicode.pm] fix isGCBHangulSyllable 18:29
ruoso I had just noticed that the semantics of $dog.^methods() is different from the semantics of ^$dog.methods(), and even more different than $dog.HOW.methods() 18:45
$dog.^methods() keeps a relation to the $dog object, while the other two doesn't
consider I have 18:46
my $a = $dog.HOW();
$a.methods;
The thing is, the metaclass could be generic to more than one prototype
and in my $a = $dog.HOW(); $a.methods(); I lost the link to the $dog prototype 18:47
unless $dog.HOW() returns a proxy object to $dog that always calls everything with "^" 18:48
$a.methods would make the proxy object to call $dog.^methods.
but on the other hand, $dog.HOW would be usefull to get the real metaclass 18:50
even being a generic one
18:50 tobeya left
ruoso considering yap6, where every method is dispatched to the metaclass, the metaclass would know when it's a metamethod, when its name starts with the "^" sigil 18:52
18:52 lunatic joined 18:53 pmurias joined
ruoso and in methods like "methods", use the invocant to realise the prototype 18:53
pmurias ruoso: i think $dog.^methods is syntax sugar for $dog.HOW().methods
ruoso pmurias, not sure... 18:54
pmurias swimming&
ruoso look for method ^count in S12 18:55
pmurias looking it defines a method ^count for the class metaclass instance 18:56
s/looking/looked, /
& 18:57
18:57 pmurias left, ruoso left 18:58 ruoso joined
ruoso the thing is... what's the point in having both prototype and metaclass if the metaclass can't be generic? 18:59
19:03 jhorwitz_ joined
ruoso TimToady, in $dog.^methods, is $dog still the invocant? 19:05
if so, implementing $dog.HOW as a proxy object seems reasonable 19:06
as it would keep passing $dog as the invocant
which makes it possible to have generic metaclasses. 19:07
19:17 gast_test joined 19:19 jhorwitz left 19:23 jisom joined
pugs_svn r19383 | rhr++ | [Unicode.pm] clean up grapheme_cluster 19:24
TimToady certainly the metamethods have to have some way to access the actual object 19:25
and .HOW is really just a namespace changing macro 19:26
(method namespace, not package namespace)
ruoso TimToady, muuuuuuuch better 19:28
so the metaclass can be generic and $dog.HOW may return a proxy
pugs_svn r19384 | rhr++ | [Unicode.pm] grapheme_cluster: handle Controls correctly 19:29
TimToady or we just require that all metamethods take an additional first arg that is the actual object, if not supplied by ^ or HOW 19:30
ruoso hmm... that's a spec thingg 19:31
:)
that's a very reasonable thing actually
TimToady just wondering about the efficiency of enforcing proxy creation unnecessarily
ruoso yeah... 19:32
19:32 mncharity joined
ruoso that was my first option, but then I realised the spec doesn't enforce that 19:32
TimToady in fact, the spec is intentionally completely vague about what hides behind .HOW
ruoso but calling convention on HOW must be specced IMHO 19:33
TimToady and .HOW can mean different things in different scopes, even
.HOW is just the abstraction macro, it's not a real method
ruoso but...
my $a = Dog.HOW;
how can a macro affect that? 19:34
TimToady well, maybe the macro is really .HOW.foo
like ^foo
and bare .HOW is different 19:35
ruoso hmm
if the spec say that I may be unable to do: my $a = Dog.HOW; $a.methods; without passing Dog as the invocant
TimToady and you have to call $a.methods(Dog)
ruoso or Dog:
actually
$a.methods(Dog: ) 19:36
[particle] flails his arms with intentional vagueness
ruoso [particle], the thing is that it isn't that vague now
TimToady maybe metaclass methods are really mmd
with "two invocants" 19:37
ruoso hmmm
actually I was wrong
TimToady or maybe we only generate the proxy for bare .HOW
ruoso Dog should be the first parameter, not the invocant
TimToady that's what I said
ruoso yes yes
ruoso changes his mind too easily 19:38
TimToady, but anyway... I think proxy for bare .HOW may be ok
TimToady me too, but when I do it most everyone else seems to change their mind along with me. :)
[particle] when you put it that way... you're right! 19:39
TimToady what about when I don't put it that way?
ruoso but... after all... I lost myself... did we got to a consensus or not?
[particle] lol 19:40
ruoso and which was it?
TimToady general .HOW requires proxy, but easily optimized away on direct call
ruoso ok... I'm fine with that 19:41
which seems that the current spec is ok
[particle] likes general .HOW's chicken
TimToady mmm, tastes like parrot 19:42
ruoso anyway... so, in yap6 everything is dispatched to the metaclass 19:43
that realises using the invocant which is the object
[particle] :)
ruoso and decides if run the code itself or if tries to resolve the method in the prototype according to the "^" sigil
TimToady, but still, the "Class methods" section in S12 seems to imply that the metaclass may not be generic 19:45
a metaclass method will be available to all objects dispatched by the same metaclass 19:46
and not only that class
actually I think that section should even warn that not all metaclasses will be open and non-final... 19:47
that declaration regarding a closed and final metaclass should give an error 19:48
19:49 fglock left, ebassi joined
ruoso home & 19:50
19:53 lorn joined 19:59 Shillo joined 20:00 Shillo left 20:02 Auzon joined 20:16 jisom left 20:18 TJCRI joined
mncharity fglock: ping? 20:18
lambdabot mncharity: You have 1 new message. '/msg lambdabot @messages' to read it.
20:18 dlocaus joined
dlocaus @seen fglock 20:18
lambdabot I saw fglock leaving #perl6 29m 43s ago, and .
Auzon @seen Auzon 20:19
lambdabot You are in #perl6. I last heard you speak just now.
mncharity spinclad: :)
lol
@seen lambdabot
lambdabot Yes, I'm here. I'm in #friendly-coders, #fi.muni.cz, #curry, #scannedinavian, #gentoo-haskell, ##logic, #xmonad, #unicycling, #perl6, #parrot, #jtiger, #haskell-soc, #haskell-overflow, #haskell-blah,
#scala, #haskell, #ghc and #darcs
Auzon Nice
[particle] can you kick that bot from #parrot? there shouldn't be a #parrot on freenode 20:20
Auzon Where should #parrot be, out of curiosity?
moritz_ Auzon: irc.perl.org
mncharity [particle]: i've no idea 20:21
[particle]: @leave #parrot ... but I don't have the privileges 20:30
moritz_ @operator 20:31
lambdabot Unknown command, try @list
moritz_ @list
lambdabot www.cse.unsw.edu.au/~dons/lambdabot/COMMANDS
mncharity @tell dons from #perl6, re lambdabot "[particle]: can you kick that bot from #parrot? there shouldn't be a #parrot on freenode". There's only one person there, plus lambdabot. The real #parrot is on irc.perl.org. fyi. Thanks for the wonderful bot. 20:32
lambdabot Consider it noted.
[particle] mncharity++
mncharity Maybe it's a channel about birds, and they like lambdabot? ;) 20:35
20:37 dlocaus left 20:39 tobeya joined 20:48 Aankhen`` left 20:49 lorn left 20:50 mj41__ joined 20:54 pmurias joined 20:56 ispy1 left 21:00 barney left
pmurias mncharity: does ruby have named parameters and an efficient way to autovivification correctly 21:01
s/correctly/efficiently/ 21:02
21:05 mj41 left
pmurias as i percive it kp6 is blocking on a lack of a vm which can run p6 fast enough 21:13
withought cutting on features and correctness
moritz_ aye 21:14
that's why ruoso++ is working on yap6, right?
pmurias mncharity: yes 21:17
spinclad (yes it's a channel about bird?) 21:18
*birds
moritz_: yes aiui 21:19
spinclad & again 21:20
pmurias moritz_: cutting on completness isn't that bad, but cutting on correctnes isn't nice at all
moritz_ pmurias: aye ;) 21:21
21:25 jferrero left 21:26 blindfish joined 21:32 Ben_Hwa joined
Ben_Hwa Oh my God! Turn to the News! President Bush was just assassinated in Israel! 21:32
21:32 gast_test left
Tene suspicious. 21:33
Auzon is skeptical 21:34
21:34 TJCRI left
Ben_Hwa ok just turn on the news 21:34
omg 21:35
Tene Google News does say stuff about bush visiting israel and predictions of violence.
Auzon Nothing on CNN. Nice try though 21:36
Ben_Hwa its all over fox news
probably hasnt brok on cnn yet
Auzon Find me a link
Ben_Hwa fox news! you know, fox news?
its like right on the front page duh
21:37 Ben_Hwa left
wolverian um, no. 21:37
Auzon Seriously. Do crazies just like this channel? 21:38
Tene Perhaps.
wolverian well, it's listed on the channel list. 21:39
and not private
Auzon Maybe we're a fairly large channel.
[particle] bush gave a speech on the economy today in the rose garden at the white house. 21:40
21:41 chris2 joined
pmurias maybe they like channel names with a 6 in them? 21:51
moritz_ now I know why some folks want to rename perl6 ;-)
21:57 thoughtp1lice joined 21:58 ludan joined, TJCRI joined
ludan hi 21:58
Auzon Hi 21:59
pbuetow hi 22:03
mncharity pmurias: moritz_: I suggest neither features nor correctness are key objectives when doing a bootstrap. rather, developability is the sole critical need, of which fast enough is one component (vis kp6), and hackability is another (vis pugs hs, and "keeping everything working while doing a self-hosted bootstrap" vis kp6). 22:05
actually, keeping everything working vis pugs hs too. 22:06
pmurias mncharity: it would be possible to write a fast perl5 backend for kp6 if those are your criteria 22:08
in a short amount of time
pugs_svn r19385 | rhr++ | [Unicode.pm] fix grapheme_cluster again, use a regex state machine for %ps_to_pe 22:09
mncharity then why do you say kp6 is blocked?
22:09 cmarcelo left
pmurias mncharity: it won't get you very far in the long term, unless you find a suitable backend (avar is interested in trying cl) 22:10
22:11 jferrero joined 22:12 renormalist joined 22:13 renormalist left, thoughtpolice left 22:14 renormalist joined
mncharity "long term"? my impression is the current goal is to have something no less capable than pugs (ie, can run and largely pass t/ ), but written in p6. with grammar work being the next blocker, itself being help up by backend speed, and perhaps slowed by self-hosting (not sure). 22:14
22:15 jferrero left
mncharity it seems likely that very little code which is written before that point with end up in a p6 release. rather, it's all bootstrap cruft, and the only interesting criteria is does it help us get there. no? 22:16
pmurias mncharity: you'll get blocked on by some stuff in t/ 22:17
such as autovification
mncharity if pugs hs had gotten one step further, and had usable oo, we would long ago have used that to write a p6 implementation of p6. 22:19
pmurias mncharity: but if you are prepared to sacrifice correctness you will get pretty far quite fast
mncharity pugs and kp6, and I suggest anything with a chance of succeeding, is willing to sacrifice correctness to get far fast. ;) 22:20
re autovification, I don't understand why you think it difficult, eg, 22:21
pmurias mncharity: i started work on a new faster kp6 perl5(Perl5V6) backend but got blocked by lack of time and not knowing how to do autovification and proper calling conventions fast
mncharity: perl5 autovification is subtly diffrent
different 22:22
mncharity class Hash; def av(k); exists?(k) ? self[k] : self[k] = Value.new end or some such
pmurias mncharity: foo($hash{bar}) 22:23
mncharity bootstrap shouldn't require autovification. calling conventions, and mmd, are perhaps more of an issue. but one
pmurias mncharity: if you go for all positionals it's easiy
mncharity advantage of the kp6rb approach, is one can use different conventions for the ruby p6-ish source, and any p5 or ruby or cl backend. the former 22:24
pmurias mncharity: if sub foo ($arg is rw) {...} is autovifies if sub foo ($arg is ro) {} not
mncharity can be fast but restricted, the latter whatever, and you simply don't switch over to using the latter until you are comfortable with its performance. 22:25
Auzon Is the bootstrapping problem the execution speed?
pmurias Auzon: the bootstraped compiler is too slow with the current backend 22:26
mncharity: it will be fast but incorrect
mncharity re positionals, sorry, language noise, rb uses [] for hash lookup too.
pmurias mncharity: i meant calling convention are easy, sorry 22:27
you could try completing the new perl5 backend (KindaPerl6::Visitor::Emit::Perl5V6) 22:29
mncharity hmm, maybe we need the exercise of creating a consensus document, describing where we are, what is holding us up, and what the challenges we face going forward are.
as a way of creating collective focus and understanding of what we need to do to win
pmurias i have to sleep now& (time zones--) 22:31
g'night
22:31 pmurias left
mncharity oh, drat 22:31
thanks for banging on the idea
Auzon: irclog.perlgeek.de/perl6/2008-01-05#i_172914 and 23:19 22:34
lambdabot Title: IRC log for #perl6, 2008-01-05
22:34 alester left
mncharity so I don't know if speed is critical or not 22:34
Auzon takes a look at STD.pm 22:36
mncharity re kp6rb, it may well be the right thing is to instead do a faster kp6 p5 backend. or refactor the grammar. or something else. I simply noticed a strikingly sweet sweet-spot, and that another xmas has passed us by. 22:38
potentially sweet sweet-spot. still insufficiently tested to be sure it just doesn't smell nice, but taste aweful. 22:39
Auzon This would be a whole lot easier if my text editor understood Perl 6 :P 22:40
mncharity svn.pugscode.org/pugs/src/perl6/STD.pm
which editor? 22:41
Auzon I have it checked out, I'm just trying to get some syntax highlighting
I usually use Kate, but I'm reaching for Vim now
mncharity i believe there is a vim mode...
Auzon yep. Just looking on how to use it 22:42
I'm not a Vim wizard :-/
mncharity ./util/perl6.vim
ah
sorry, i've no idea (emacs)
Auzon :P
I think I can figure it out in a minute
eh, I'll just turn it off for now 22:44
22:50 TJCRI left 22:52 ludan left
Auzon Can anything (Pugs, KP6, etc) start to parse STD.pm? 22:55
well, parse and use 22:56
23:05 renormalist left 23:08 rdice left, blindfish left
mncharity Auzon: not yet 23:28
bbl &
TimToady actually, pugs can parse it, if you run it through the cheat script 23:35
was actually up to parsing 42+1 until I got sidetracked onto the longest token matching 23:36
Auzon Isn't that enough to start writing a Perl 6 equivalent with Pugs to bootstrap it?
[particle] then try 1+1 :)
23:46 mj41____ joined 23:57 iblechbot left, ebassi left, istarex joined