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
|