6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 Set by audreyt on 1 February 2006. |
|||
00:03
lisppaste3 joined
00:26
frederico joined
00:38
avar joined
00:51
azuroth joined
00:53
stevan joined
01:01
xinming joined
|
|||
xinming | seen audreyt | 01:16 | |
obra | andreyt mentioned to me yesterday that she is largely offline dealing with work and life these days | 01:19 | |
01:22
bsb left
01:31
stevan_ joined
|
|||
xinming | obra: How about the seenbot? go with audreyt ? :-P | 01:35 | |
01:35
drbean joined
|
|||
obra | heh | 01:35 | |
01:42
b00t joined
02:01
vel joined
02:02
frederico joined
02:09
putter joined
|
|||
putter | stevan: ping? | 02:09 | |
Anyone up for a chat by the imaginary whiteboard? Topic: How to get perl6 by April 1st (yes, _this_ year - 6wks) | 02:14 | ||
02:15
b00t joined
|
|||
azuroth | the imaginary whiteboard, eh? | 02:15 | |
putter | yes, the one over there. next to the pub. and the munchies. good for brainstorming. | 02:16 | |
interested? | |||
azuroth | sure. I'm not sure just how much input I could have, though | 02:17 | |
obra | putter: how do you propose to get the spec finished by then? | ||
putter really needs someone to say "what?!? 6 week? you must be insane!: ;) | |||
obra | I believe that's what I said ;) | ||
putter | azuroth: awesome | 02:18 | |
obra: "perl6" is many things. I mean... | |||
obra waits for it | 02:19 | ||
putter | something which runs everything we believe it should. not as fast as one might wish, but sufficient to use it as the platform in which to rectify that. I don't mean... | ||
that the spec is finished, or that there has been any kind of release process, or anything like that. simply that ever line in the spec actually runs. | 02:20 | ||
make sense? | |||
obra | ah. | ||
that'd be a very cool effort. | |||
putter waits for "but 6 weeks?!?"... ;) | 02:21 | ||
or "I don't believe that's possible - explain"? | 02:23 | ||
azuroth | I like the second one | ||
putter thinks best with a foil, someone point out bugs and areas which need clarification (like with the "what is p6") | 02:24 | ||
obra | putter: the biggest problem is making sure that you have a good test suite | 02:25 | |
do you have any sense of how close pugs is yet? | |||
02:28
drbean_ joined
|
|||
putter | The pugs test suite? distant. how distant depends on what one means by "good". coverage is uneven. some things, eg parser constructs (eg, token, statement_control) are completely absent. somethings, like objects, are quite superficial. some things, like say arrays, aren't too bad. nothing is very intense. | 02:29 | |
re "the biggest problem"... | |||
only if you're doing TDD. (test driven development - write test before code). otherwise... the absence of code is a bit of an issue ;) | 02:31 | ||
given a full language coverage but perhaps buggy p6 implementation, which passes the existing suite, the current limitations of that suite would seem a secondary issue? no? | 02:33 | ||
though i should note that a subsequent part of this argument is that the implementation is largely written in p6 itself. so one can be fairly confident that at least those idioms used by the implementation are working correctly if the thing can past the test suite. | 02:35 | ||
kattana_ | in 6 weeks there may simply not be enough time to right all the tests, righting higher level test, that require more things to be working to pass might encourge things to speed up? | ||
*writing | 02:36 | ||
02:36
kattana_ is now known as Kattana
|
|||
obra | I'd argue that writing the tests is the best way to make sure that we have an implementation | 02:37 | |
and doing it without tests, I think it just won't happen at all | |||
putter | i'm not sure what you just said... ok, "6 wks isnt enough time to write all the tests", and... a question on whether writing "higher level tests" would speed pugs development?? | 02:38 | |
obra | Sorry. I meant that if you don't think the relevant tests can be written in time, I don't think there's any way the implementation can | 02:39 | |
putter | obra: re "the best way to make sure that we have an implementation", ah, but I don't claim that (or maybe I did, but I don't just now). simply 1- coverage (everything in the Snn runs), and 2- the existing suite passes. or I suppose and | 02:40 | |
obra | how is 1- different than what I'm describing? | ||
putter | 3- that the implementations use of objects and parser constructs would itself serve as a test of these currently less tested features. | 02:41 | |
obra: ah, i see. all the _code_ in the Snn works. confirmation of sentence by sentence compliance would indeed require a non-trivial increase in test size. I guess... | 02:43 | ||
I'm thinking of sentence-level conformance as being less interesting than coverage, if only because so much isn't specced that even a happily working implementation is likely to become non-conforming with every other sentence added. | 02:45 | ||
obra | putter: yeah. but that's also tests that a lot of people could get involved to write. | 02:46 | |
it's a lot easier to write tests than haskell ;) | |||
putter | yes. | ||
obra | it might help with nothingmuch's concerns that pugs development is slowing | ||
putter | but...:) | ||
02:46
rantanplan_ joined
|
|||
obra | even if you start with one syn ;) | 02:46 | |
putter | my argument is basically going to be that we should do a complete p6 implementation _in_ p6. | ||
obra | well, that's certainly audrey's intent | 02:47 | |
putter | so there is no shortage of p6 writing opportunities... | ||
right. my understanding is the pugs path is basically... | |||
move stuff out of the hs core into p6... unfortunately, | 02:48 | ||
painful compile time on the Prelude.pm blocked unloading Prim.hs to there, as was the original plan... hmm... | 02:49 | ||
there was, more that half a year ago(?), the follow up task of making the existing prelude compilation mechanism work with multiple files... I'm not sure if that proved technically impossible, or if the task was just forgotten...?? | 02:50 | ||
any way, so slow Prelude compilation killed that effort to unload Prim. Unloading Prim is now on the todo list of PILn. Beyond unloading Prim, and likely moving most of the p6 prelude (Array's etc) into p6 as well (I think), there is the question of a p6 implementation of the p6 runtime core. That I think | 02:53 | ||
is a ways out on the pugs intent timeline. | 02:54 | ||
My proposal / "hand wavy thingy", is it be moved right up front. | |||
there is a lot of overlap with what will be needed (I want to say soon, but a PIL which understands classes has been "rsn" for quite a while... sortof soon, but probably not in time for an Apr 1 win)... needed for piln. | 02:56 | ||
the whole object space basically. | 02:57 | ||
I want the rest of a p6 implementation too (parser, namespace, dispatch) | 02:58 | ||
etc | |||
because given that, it is *easy* to transform it into a equivalent code in a similarly dynamic and wizzy language (ruby or common-lisp basically). by hand. and write a simple p6 ast crawler which emits say ruby. | 03:00 | ||
obra, Kattana, azuroth: still around? | 03:02 | ||
Kattana | pong! | ||
putter | :) | ||
azuroth | I'm listening | ||
obra | sorry. busy | ||
putter | tnx. np :) | 03:03 | |
ok... | |||
Kattana | I have absolutly no clue about whats going on with anything or I would say more. | ||
putter | ok. but if you have any questions at all, just jump in. explaining things is a great way to think... | ||
azuroth | so basically we want all the code in S* to compile without errors, and maybe even do something useful? | 03:04 | |
putter | yes :) | 03:05 | |
p6 being hands-down the best language around for implementing languages. better than ruby or CL or ML or ... . it's one nagging flaw being non-existance. | 03:06 | ||
we have a language we want to implement. so we try to fudge the non-existence part. | |||
then we can get on with implementing it | 03:07 | ||
Kattana | where is the bottleneck there, not enough fudge packers? | ||
putter | on the path through backends like pil2js and the old pilrun on p5, the bottleneck is pugs's pil not providing any class information. mostly. on the path through pure pugs, | 03:08 | |
it's the broken class implementation (partially due to some type inferencer bugs I believe). | 03:10 | ||
so for a while it looked like one might add information on class decls to pil, and the backends could do the right thing. that was the original vision for pil2. now for piln. | 03:11 | ||
azuroth | hmm, okay | 03:12 | |
putter | the prelude compilation issue I mentioned. So that's why a lot of p6 writing hasnt happened yet, incrementally on existing implementations. | ||
if we had say an unstuck pil2js tomorrow morning... well, there is a lot to be said for building on working code... but the object stuff is only the _start_. ideally, you want to write | 03:14 | ||
p6 code which cleanly describes the spec. but you have an obstacle course. pugs has to be willing to parse it, and emit it as pil, and then you get to play with it in the backend. and... | 03:16 | ||
the code you really want to write has things like statement_control:<while> rather than having it built in and hardwired in your parser. so orchestrating the nature of the p6 code, the pugs parser and typesystem and pil emitter, and the backend's implementation, is... performance art. | 03:17 | ||
BEGIN, \d in regexps, for/while/unless... they are all traits/roles/parser directives. | 03:19 | ||
most everthing is, since the idea is p6 should be able to evolve. | |||
azuroth | up 'til now, I thought I vaguely understood what you were saying | 03:20 | |
putter | so I'm suggesting that it could be (much) faster to write the code for a p6 on p6, using lots of eyeballs and discussion, and then transcode it, than to fight an incremental battle. | 03:21 | |
azuroth: let's see... | |||
take \d in regexps. | |||
azuroth | as in, [0-9] in p5? | 03:22 | |
putter | there is actually a (I dont remember what's called without checking) general \SOMELETTER hook, so one writes... err, macro?... macro mumble:<d> { [0-9] } or some such. | ||
yes | |||
its the same in p6 | 03:23 | ||
but is simply declared in the prelude. | |||
azuroth | gee | ||
that's crazy. I guess it makes sense | |||
putter | :) | 03:24 | |
the key point is, most all of p6 is like that. | |||
while, as in while true { say "hi" }, is simply... something vaguely like... macro statement_control:<while> err... (Match $m) is parsed(rx:w/while <expr> { <statement>* }/) { ... } or something vaguely like that. | 03:25 | ||
basically, you are filling in the rule statement { ... } part of the p6 grammar dynamically. | 03:26 | ||
azuroth | hmm. I like it. | 03:27 | |
putter | you do somehting similar with <expr>, where you add tokens (with grammar category token, token:<whatever>, and with the familiar infix:, postfix: etc). | ||
azuroth | and it will put out an AST for the thingy to change to whatever backend is necessary? | 03:28 | |
putter | ok, let's see, ast and backends... | ||
azuroth | or my real question I guess was more like, "how do you define if without using if" | 03:29 | |
putter | first, all backends arent created equal. if we already had a language like p6, env and temp and hypothetical variables... | 03:30 | |
ok, will work around to that in a sec... | |||
and compatible multi methods and inheritance and parameter/argument handling, etc, then it would be very very easy to do a backend for it. just crawly the ast, emitting the equivalent code in imaginary language X, and you're done. a few pages of code. | 03:31 | ||
if one's backend is C... then, well, you have a several man-year project. though perhaps notably faster by _first_ booting p6 on a more appropriate language, and only _then_ attempting the compile-to-C, writing it _in p6_. | 03:33 | ||
as for if, | |||
azuroth | writing the C-emitter in p6? :D | 03:35 | |
putter | in the p6-written-in-p6 file, the <if> implementation deals with everthing like extracting simple boolean from random objects, and then handwaves. or just calls the usual if. when you do the transliteration to say ruby, | 03:36 | |
you just splice in ruby's if there, in the handwave. more generally re bootstrapping... | |||
azuroth | hmm, okay | ||
putter | the idea is for the p6-in-p6 to be... executable spec, but not necessarily executable in bulk. hmm, perhaps compilable but not necessarily executable. so the ruby implementation can stomp on <if> with it's own prelude, or perhaps just special case if's ast node when doing the compiling... one still has to worry about | 03:39 | |
bootstrap, but I'd like to separate it from getting a p6-in-p6 "spec". the spec is hard enough without worrying about bootstrapping. and you wont know just how you want to bootstrap until you see it, and compare it with what your, say ruby, has to offer. | 03:40 | ||
Kattana | It all sounds overly complicated.. though thats the whole problem isnt it. | 03:41 | |
putter | eg, the spec would just say class Object is Class{} and class Class is Object{}; and multi sub trait_mumble:<is>(...){...}. and once you have all that, you can figure out how to fudge the bootstrap. | 03:42 | |
Kattana: just as given p6, it would/will be easy to do ruby/javascript/basic/apl/etc/etc front-ends and runtimes, given p6, it would be easy to do p6. | 03:43 | ||
03:44
mtgh joined
|
|||
putter | so we currently have the two challenges of 1- writing p6, a non-trivial language, perhaps the most complex of those just listed, and doing it without a working implementation or language standard, and 2- finding some way to run it. ;) | 03:46 | |
I'm suggesting that now, perhaps unlike a year ago, one could write a complete p6 in p6. no doubt with a lot of "fill in the unspecced gaps". but still something recognizable as the form of the ultimate p6 implementation | 03:48 | ||
and the key, vis the "by apr 1", is writing that is completely parallelizable, and requires only p6 knowlege. | |||
so a bunch of people could plow through the spec, talking on irc, generally avoiding (or batching) the slow path of p6l questions by "plausibly filling in the gaps". | 03:50 | ||
azuroth | we can try, I suppose | ||
putter | "spec says BEGIN etc are all traits, ok, based on the prototype LEAVE that means...<spew code>" | 03:51 | |
azuroth | how do we start, then. ;-p | 03:54 | |
probably by printing out all the synopses | |||
putter | some are larger chucks, like do quick framework for the rules engine (say procs taking global state and a "continuation" similar proc). then lots of folks can fill in the conjunction, the "take longest match rather than first" generator, the backtracking operator-precedence rule generator, the definition-may-change-dynamically rule generator, etc, etc | 03:55 | |
hmmm, how to start then... | |||
03:56
reZo joined
|
|||
azuroth | hmm. will rules be a huge priority? we have PGE | 03:56 | |
putter | my understanding is pge doesnt currently do any of the dynamic specification stuff. so while one might give it say the default p6 grammar (hasnt been tried yet), it's not really taking the approach a p6 parser would. at least currently. so as a bootstrap tool it could be quite valuable. but I don't think it ends up in the final "thing working on apr 1". | 03:59 | |
azuroth | ahh, okay | ||
putter | re huge priority, well, one _could_ write the p6 implementation in an s-exp form of p6...:) but it's kind of painful. | 04:00 | |
azuroth | s-exp? | 04:01 | |
putter | and the things that make writing a rules engine not too hard, hypothetical variables for instance, have to be done anyway. once one has all of p6 without a rules engine, the residual amount of work to do a rules engine isn't that big. | ||
azuroth | okay then. excellent | 04:02 | |
putter | (multisub ((category infix) (name "+")) (.... | 04:03 | |
azuroth | ohhh | ||
putter | s-expression. think lisp. without all the extra bits which make real lisp non-trivial to parse. | ||
I suppose you could write the code in yaml... *shudder* ;) | 04:04 | ||
Kattana | you could put it on punch cards if you *really* wanted to. | 04:05 | |
putter | I'm pretty sure it ends up easier just to do the rules engine. even if some bits make your head hurt for a while (write a operator precedence parser, which you can fail back into to change what is considered end-of-string, and you can fail back into the longest-token-first selector, and...:) | 04:06 | |
putter wonders, if you combined p6 with punchcards, how productive would you end up being...?? | 04:07 | ||
Kattana thinks it would depend on the speed with which you could move punchcards around | 04:09 | ||
putter | Kattana: having to retype lines when you make a typo really sucks. and dropping and having to resort the stack. and changing anything is painful. run away, run away. | ||
ok, re how to start... | 04:10 | ||
the fast, apr1 form of the exercise, probably requires several people. or one skilled but insane person with no life. | 04:11 | ||
azuroth | apr1? | ||
oh, right | 04:12 | ||
putter | so a group formation process, of bashing around the idea to make sure it isn't cracked, and what its real shape is and how best to approach it, and thereby getting group buyin, and working out how much time and when people can contribute, ie, some real project planning... | ||
azuroth | sounds good | 04:14 | |
Kattana | putter: that 2nd requirement, i think i would fit it, but I still have yet to figure out whats going on. | ||
putter | well, tonight's whiteboard exercise is the beginning of "bashing around the idea"... | 04:15 | |
04:16
vel joined
|
|||
putter | with your feedback, maybe I'll put together an email "How to have perl6 by Apr 01... 2006". | 04:17 | |
I'll see what other folks think as the backlog. | 04:18 | ||
s/the/they | |||
basically, I think there are lots of people who would like to contribute, if they could see a way to. | 04:19 | ||
so if a plan was sufficiently bashed at that it seemed likely, drawing people my just happen. leaving the "minor matter" of orchestrating them. | 04:20 | ||
??? | 04:21 | ||
azuroth | !!! | ||
putter | ;) | ||
Kattana | where does PGE fit in, and what is its role exactly? im just looking at parrot and PGE at the moment, and there is some very familar stuff.. eerily familiar | 04:22 | |
putter | I'd probably be more gung ho if I didn't have a $job search to do. Trying to write p6 in a couple of weeks would be fun... but not what I should be doing just now. :/ | 04:23 | |
04:23
joepurl joined
|
|||
azuroth | heheh. I'm all for helping, when I can. it looks like this semester of TAFE will be busy, but I should have time to spare | 04:24 | |
putter | azuroth: neat | ||
Kattana: re pge... | |||
;) | |||
well... | 04:25 | ||
Kattana | putter: you are the one that was encouraging questions. | 04:26 | |
Khisanth | for parsing perl6 :) | ||
well that was the idea anyway | 04:27 | ||
putter | it's the most working p6 rules engine in existence... (well, in use? Text.Rules exists but isnt wired in)... and thus figures large in incremental development schemes (which the apr1 project isn't)... | ||
and on a parrot backend, one might be able to use it rather than a compiled-from-p6 rules engine... | 04:28 | ||
but, compiling to pir is _nontrivial_. both inherently, and in that it still requires a dual track of debug generator, debug parrot. | |||
azuroth | hmm. good point | 04:30 | |
putter | for this exercise, the objective is an "easy as humanly possible" bootstrap. which i think technically means ruby or common-lisp, and thus socially means ruby. which means targetting parrot is something which happens later, once one can write it in p6. under the apr1 senario. | ||
so I'm not sure pge helps much with an apr1 project. | 04:31 | ||
skimming it's code can give some ideas perhaps... | 04:32 | ||
Kattana: basically, I think gluing to pge, and extending pge in pil, would be far more difficult than simply writing an engine from scratch it in p6, and then transcoding to ruby. | 04:35 | ||
sound plausible? | 04:38 | ||
Kattana | very, like I said, pge is eerily familiar, I think I could do that if I knew what I was doing ;) | ||
putter | right. and that's one aspect of doing a quick push. it would make it easy to | 04:41 | |
have one person grovel through the Snn to find the \d definition syntax, another? to hit the rules Snn for a list of the \d \s etc, maybe hit pge to grab the regexps for them, though I'm not sure pge is doing the unicode versions yet, and spew the p6 definitions for them (using a macro or not). but the definition of this | 04:44 | ||
plan of action, and the selection of some of the design choices, is something easy to do if there are people about, and rather less so in a "go off and do X by yourself" mode. | 04:45 | ||
04:46
drbean joined
|
|||
putter | also, it would be nice to have some of the folks who follow p6l around, so you can ask "i'm defining uintN as subset uintN of ValueType where { $^o ~~ Int and 0 <= $^o <= 2**N }; does that look plausible?" | 04:48 | |
rather than having a much higher-latency loop of writing the code, and then getting feedback hours/days later. | 04:49 | ||
stevan: btw, what do types look like? Any does Type? is there a subset ValueType of Type where { $^x !~ Object }; ? role Any does Type{} role Type does Any{} class Class does Type{} class Range does Type{} ?? | 04:54 | ||
Kattana: reading, or rather, repeatedly skimming the Snn, and the few Ann sections they reference, is in the "always a useful thing to do" category. :) | 04:56 | ||
doing little exercises like, ok, it says LEAVE is a trait/role, where does that role get does()ed, etc. though that kind of exercise is more fun if you're working with someone else. the study group approach to learing stuff. | 04:59 | ||
I suggest skimming-loop rather than straight reading because random access to answer questions isnt a strength of the current docs, so one may be best off skimming, accumulating questions, which then later get answered in passing. rather than a top down approach. | 05:03 | ||
putter contemplates having/writing an index to the synposes... | |||
ah well. end of day for me. good night folks & thanks for all your help. | 05:05 | ||
azuroth | good night. hopefully we can get rolling sometime soon | 05:06 | |
putter | yeah. but in which direction? ;) | 05:07 | |
& | |||
05:13
Southen joined
|
|||
Khisanth | eval? my @a = (1..10); | 05:27 | |
azuroth | ?eval my @a = (1..10); | ||
05:27
evalbot_8956 is now known as evalbot_8958
|
|||
evalbot_8958 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | 05:27 | |
Khisanth | d'oh | ||
?eval my @a = (1..10); [+] @a | 05:28 | ||
evalbot_8958 | 55 | ||
azuroth | I always forget what it is too. @eval, ?eval,... so many choices | ||
Khisanth | ?eval my @a = (1..10); ([+] @a)/@a.elems | ||
evalbot_8958 | 11/2 | ||
Khisanth | hrm that is not so useful! | ||
azuroth | ?eval my @a = (1..10); +(([+] @a) / @a.elems); | 05:29 | |
evalbot_8958 | 11/2 | ||
azuroth | ?eval my @a = (1..10); ~(([+] @a) / @a.elems); | ||
evalbot_8958 | "5.5" | 05:30 | |
azuroth | hmm. that's interesting | ||
06:00
weinig joined
06:09
stennie_ joined
06:11
Khisanth joined
06:14
r0nny joined
06:20
stennie joined
|
|||
spinclad | putter and whiteboarders: I'd be inclined to target PIL2/PIL^N, already intended to be the point of fanout to various backends. | 06:21 | |
(already the second generation design in pugs, based on first-gen backends, and steven and audrey's object model work.) | 06:25 | ||
PIL2 and/or PIL^N serve as nothingmuch's Perl6Core layer nicely, I think. | 06:30 | ||
azuroth | I like them apples | 06:31 | |
PerlJam idly wishes he'd kept up with the PIL work | |||
spinclad | we have -- luqui I think? -- working on a port of pge to the pugs arena. not sure which language: Haskell (parsec), PILN, or some higher level of P6. | ||
PerlJam | spinclad: audrey was working on a PGE-in-Haskell (using Parsec) | 06:32 | |
06:33
drrho joined
|
|||
spinclad | ah, that must be it... | 06:33 | |
06:34
GeJ joined
|
|||
PerlJam | It's utterly amazing that a "non-existant" language like perl6 has such a huge following ;) | 06:37 | |
spinclad | I could see looking to translate that to PILN, then in whatever-perl6-we-can-currently-parse... | ||
a similar sized bootstrap knot to the meta-object one, just maybe... | 06:39 | ||
I'd call Apr 1 insane; my only question there is _is it insane *enough*?_ | 06:43 | ||
(and then just go ahead and let deadlines fall where they may) | |||
(oh, and: _am I insane enough to match?_) | 06:45 | ||
__END_ | 06:46 | ||
_ | |||
lypanov | __DATA__ | 06:47 | |
spinclad | __SPEC__ | ||
__CODE__ | |||
lypanov | " | ||
Khisanth | PerlJam: depends on how you look at it :) | 06:48 | |
07:17
drbean joined
07:35
szbalint_ joined
07:36
scook0 joined
07:48
pdcawley_ joined
07:57
szbalint joined
08:23
stennie_ joined
|
|||
Supaplex | __SLEEP__ | 08:25 | |
08:26
G2 joined
08:45
stennie joined
09:28
j0sephi joined
09:29
gaal_ joined
09:33
Cryptic_K joined
09:41
kanru joined
09:43
gaal_ is now known as gaal
09:51
xern joined
10:09
feng123 joined
10:21
xinming joined
10:37
elmex joined
10:48
ValeFiona joined
11:01
Aankhen`` joined,
iblechbot joined
11:16
SamB joined
11:33
bsb joined
12:07
feng joined
12:09
penk joined
12:12
chris2 joined
12:21
dada joined
12:32
theorbtwo joined
13:22
avar joined
13:27
kolibrie joined
13:34
hexmode joined
13:42
feng123 joined
13:46
avar joined
14:04
wilx joined
|
|||
stevan_ | putter++ # your make all use look sane ;)\ | 14:04 | |
14:04
stevan_ is now known as stevan
14:10
avar joined
14:15
avarab joined
14:16
icman joined,
icman left
14:26
Qiang joined
14:30
bsb_ joined
14:38
rantanplan_ joined
14:41
wilx joined
14:42
vel joined
14:46
drbean left
15:04
ingy joined,
gugod joined
15:18
TMTOWTDIt joined
15:25
iblechbot joined
15:46
robkinyon joined
16:29
grayson joined
|
|||
svnbot6 | r8959 | bsb++ | Add env and ::ENV to quickref/namespace. | 16:39 | |
r8959 | bsb++ | Fix "let" example to match S04/"Definition of Success". | |||
16:48
sahadev joined
|
|||
Juerd | rafl: Have you arranged travelstuff to .be yet? | 17:10 | |
rafl: It's about time we picked a place to stay, by the way | |||
17:32
Steve_p joined
17:37
putter joined
|
|||
putter | stevan: ping? | 17:37 | |
I realized falling asleep last night that the organizational difficulties I had with the "p6 prelude to flesh out piln" code was exclusively a limitation of implementations, not p6. Given that sub foo(){ multi sub *bar(){} } only defines bar _when foo is called_, (and using a "redefine" or whatever it's called trait to avoid errors), one can | 17:39 | ||
can say sub p6_my_way () { sesame_bun_lightly_tosted(); burger_medium_rare(); onions_but_only_if_fresh() } BEGIN { p6_my_way } | 17:41 | ||
:) | |||
add a sub foo($pkg) { multi sub ::($pkg)::bar ...} and you can inject it anywhere you want. yay. | |||
that of course also makes import very easy to write | 17:42 | ||
stevan | hey putter | 17:43 | |
stevan wonders what kind of orange juice putter drinks.. and if it is legal in his state ;) | 17:44 | ||
putter | If the official line is/becomes that bar should be defined at compile time, then one can workaround by simply doing sub foo { my multi sub bar ...; FIRST { *bar := bar } } or some such. | ||
hey stevan | |||
does that look plausible? it makes the "assemble the p6 prelude out of assorted alternate implementations ad backend-specific pieces" quite straightforward, no? | 17:46 | ||
stevan | putter: i think the goal should be to have a universal prelude first | ||
ignoring for the moment the back-end specifics | 17:47 | ||
stevan is actually pondering giving up PIL^N for PIR | |||
putter | *shudder* putter cries "don't do it stevan!" | ||
but taking it in order... | 17:48 | ||
stevan queues the booming nationalistic music | |||
putter: someone has to ;) | |||
putter | re universal relude, | ||
laugh | |||
stevan | putter: chromatics point about cost of entry has got me thinking | ||
and I think that if we follow nothingmuch's plan about breaking things up,.. but all the while making sure to keep the implemenations acessible,.. then we might get back the momentum which does (I hate to say it) seem to be lost | 17:49 | ||
17:49
hachi joined
|
|||
putter | say you are fleshing out the Array methods. there is often a non-obvious choice of building foo on top of bar or on hee. key point: just making that choice, _even if it's always right and never has to be changed_, is harder than just spewing out the two versions. do I build this on splice, or on push/pop? doing both is a seconds work, trying to decide | 17:51 | |
which way the Array impl should go is _hard_. and then as just shown, combining the pieces is trivial. | |||
so it's actually _easier_, faster, to write a mix and match prelude, than to try and get a unified set of choices all lined up. | 17:52 | ||
stevan | putter: I dont think we need to make unified set of choices | ||
I think we need to ignore the idea of the multiple backends and create a single prelude for a single puporse | 17:53 | ||
s/pupose/backend/ | |||
putter | Ok. then I think we are in violent agreement. ;) | ||
stevan | after which it will be much easier to tweak it for a particular backend | ||
:) | |||
Perl 6 has enough facilities to redefine ANYTHING, so we need to worry about boxing ourselves in | |||
putter | re recent thread on p6l, I haven't read it. though I backloged irc. | 17:54 | |
I agree momentum is lacking | |||
stevan | putter: read it if you are procrasinating on your job search,.. but otherwise probably worth ignoring | ||
other than Yuval's mails | |||
which are about the "what we can actually do" part | |||
putter | and cost of entry argument is valid, even if not in some particulars, certainly in the "there are lots and lots of people who would contribute if they could, but dont see a way to". | 17:55 | |
a people-resource under-utilization state seems clear | 17:56 | ||
stevan | yup | ||
stevan is definitely under utilizing putter | |||
putter | one of the things I liked about the apr1-spike idea is that _everyone_ wants to learn p6, and all the work is in p6 | 17:57 | |
stevan | I am not clear on that idea | ||
just ran full force to write it in p6? | |||
what will it run on | |||
what will we test it on? | |||
17:57
iblechbot joined
|
|||
stevan | how do we know its not all broken | 17:57 | |
many assumptions will need to be tested,.. approaches hacked out, etc etc etc | |||
stevan dodges peices of falling sky ... | 17:58 | ||
putter | transcode a core of it into a semantically similar language (ruby or CL). | ||
re many assumptions, etc, could you give an example? | |||
stevan | hmm | ||
I think only CL would give us the right amount of flexibility | 17:59 | ||
putter | one counter arg to the spike idea is "but we _can_ write a complete p6 implentation in p6 because... something". | ||
stevan | but there is our barrier to entry again,.. I mean not as high as Haskell,.. but higher than most | ||
18:00
r0nny joined
|
|||
Khisanth | just do it in C! ;) | 18:01 | |
stevan runs screaming from the room... noooooottttt CCCCCeeeeeeee | |||
I would sooner do it in PIR ;) | 18:02 | ||
putter | in thinking ruby v CL, my thoughts were: rb - no macros - makes tree transforms more of a pain. CL - much more verbose; larger appearance divergence vs p6, making transcoding harder. Neither has unification or even good pattern matching. CL has env. but that's easily faked. rb will run sllooooowwweer. so | ||
obra | . o O { Perl6 in rails } | ||
stevan | :D | ||
obra | Just because I want to be difficult, putter: am I missing the bit where you discarded perl5? | ||
stevan | hell yeah,.. I mean you can write anything in RoR | ||
obra grins | |||
Khisanth | so how many different interpreters and compilers are peopel going to need to install to build perl6? :) | ||
obra is building Jifty 2.0 in rails. | 18:03 | ||
obra is also pulling your leg | |||
stevan | putter: CL has great pattern matching cl-pcre is supposed to be very fast | ||
putter | the first order of business for a p6-on-rb is likely to do a p6-to-CL compiler or somesuch. Though rb may be close enough to p6 semantically to do a p6-to-rb compile with not horrible performance (if one can map a lot direct to ruby wo an abstraction layer). | ||
putter backlogs | |||
stevan slips some valium into putters coffee in hopes to slow him down just a little | 18:04 | ||
oh hey,.. I just realized,.. obra is in boston too,.. we now have our third member of the first NE P6 monger group | 18:05 | ||
PerlJam | stevan: great! Now perl6 will be even *more* delayed! | ||
putter back from call, backlogs | |||
stevan | PerlJam: slow and steady wins the race ;) | ||
obra | stevan: who else is in boston? | 18:06 | |
stevan | putter: | ||
and I am in CT | |||
just down the road | |||
putter | awesome, NE P6 Monger group established! :) | 18:07 | |
re CL pattern match, sorry, I meant structure match. for more declarative tree transforms w/o having to grovel around. but actually, under the current senario, that doesn't matter at all. because p6 doesn't (yet) have it, and the only CL code which get's written, at least in the first/only "let's get p6 running" phase, is transcoded from p6 | 18:09 | ||
obra: re p5 | 18:10 | ||
stevan bangs his gavel - I call the first meeting of the NE P6 mongers group to order,.. who brought the pizza | |||
putter mutters, "oops, I knew I forgot *something*..." | 18:11 | ||
18:12
bsb_ left
|
|||
putter | p5 clearly has the lowest barrier to entry for our potential-helper pool. | 18:12 | |
stevan | I am not sure p5 is a good language to write a compiler in though | 18:14 | |
that is always been my concern | |||
is P::RD up to the task? | |||
or do we need a Parsec port? | |||
putter | but... ok, two parts: ugly/broken/slow, and the transcoding should be a small number of people, short duration, throw away the code afterward exercise. | ||
stevan | or even better a Perl6::Rules port? | 18:15 | |
putter | ugly- both ruby and cl have better metaprogramming. ruby will also be syntactically much clearer. since bug hunting at the "transcode and bootstrap" phase will likely be very painful to deal with, clarity is quite important. | 18:16 | |
broken - well, that's too strong. but we'd have to take p5, add a one or more of the class and/or multimethod libraries, and ... at which point one might have a poorly speced version of rb or cl's out of the box capabilities. (oh yeah, rb disadd vs cl - lack of native multimethods) | 18:18 | ||
obra | note also there was the whole p6c effort way back when | 18:19 | |
PerlJam | was? | 18:20 | |
you mean in p5? | |||
putter | slow - the regexp engine should use exceptions extensively. it p5... ouch. rb is quite bad enough. (that's another cl add, but oh well). but actually, this is all just rationalization. the _real_ motivator is... | ||
Juerd | putter: Ruby has clean syntax, but surprising symantics. I'm not sure if it's good for writing a compiler. In addition, it's slow. | ||
PerlJam | How much does slow matter to a bootstrap? | 18:21 | |
Juerd | PerlJam: Obviously a great deal, as that's the most important argument against using pugs for it. | ||
GeJ | hum, pardon me, but when talking about "CL", you mean? Common Lisp? | ||
putter | I am confident I can quickly transcode large bunches of p6 code into rb/cl which is no more buggy than the original p6. I am not at all confident, indeed dont think I can, do the same into p5. But maybe that's just me. | ||
PerlJam | Juerd: I think that a foolish argument. | 18:22 | |
Juerd | PerlJam: I see. Then why not use Pugs? | ||
stevan | GeJ: yes that is correct | ||
putter | GeJ: yes | ||
GeJ | thanks | ||
Juerd | It has much of the language already implemented, which gives things away for "free", reducing the "cost" | ||
PerlJam | Juerd: Is it "complete" enough though? | ||
Juerd | Which makes having a somewhat higher "entry level" less of a problem | ||
PerlJam hasn't looked at pugs in a while. | 18:23 | ||
Juerd | PerlJam: I think it is, and those things that need implementation badly, can perhaps be prioritized. | ||
putter | stevan/obra: am i synced with you? missed anything? backlogs... | ||
stevan attempts to read putters mind and check...... | |||
maybe we need to look at the smalltalk model | 18:24 | ||
put it all on top of the object model and just compile code method by method to the VM | 18:25 | ||
obra | putter: mostly, I'm just making trouble. I haven't had the cycles to think hard here. | ||
Juerd | I think that in any case, it's probably a good idea to wait until Audrey is back. She can estimate better than any of us, if Pugs will be suitable for bootstrapping. | ||
PerlJam | 30+ years later and unix is still the best OS model and smalltalk the best OO model ;) | ||
Juerd: I agree. | |||
stevan | Juerd: I dont know if it is a suitability issue,.. I think it is (like chromatic said) a barrier to entry model | 18:26 | |
work stalls without audrey around | |||
putter | Juerd: re surprising semantics, slow. yes. but quite good metaprogramming. semantics - the oddities tend to be avoidable with care. this would be quite stereotyped code. re slow, undoutably. but basically, the only thing it will ever have to run is p6-ast-to-something-else (direct to rb, or cl, or whatever is faster) compiler, "once", over the p6 implementation. then it's trash. | ||
Juerd | stevan: But what is worse? Having to re-implement everything that pugs already did, or having that somewhat higher level of entry? | ||
stevan: I don't think that what was done with Haskell in a year can be redone in any other language in two. | 18:27 | ||
stevan | Juerd: pugs is already re-implementing everything pugs did ,.. that is the whole new runcore idea | ||
PerlJam | stevan: *pugs* work stalls, but perl6 work doesn't have to. | ||
stevan | Juerd: you may be right on that point (the time point) | ||
PerlJam: I know,.. but that is a seperate issue | |||
putter | obra: trouble is most valuable. forces things to be explained/thought through. my worst case fallback for "cant find anyone to have a design discussion with" is sometimes (well, once or twice) to fire up Eliza. :) | 18:28 | |
Juerd | stevan: I equate time to "cost", for easier discussion. This common business model may perhaps not work for open source. I'm not sure. | ||
stevan | PerlJam: I do think that speed of work on Perl 6 (the design) is directly releated to speed of pugs development though | ||
obra | putter: mostly, I worry that this implementation will take effort away from the other two, which is why I see the test suite work as so valuable | 18:29 | |
stevan | somet things just need to get tried out before descisions can be made | ||
Juerd | I think it'll be valuable to search for optimizations in Pugs. | ||
From what I've heard, there's lots of opportunities to be explored. | |||
stevan | Juerd: very true | ||
Juerd | I found gaal's FPS suggestion very interesting. | ||
stevan really enjoys spring cleaning :) | |||
PerlJam | stevan: sure, but now that there's enough of pugs working, I think there's only a small factor in the relation. | ||
stevan: i.e., there's a direct relation, but the pugs end of it isn't as big as it once was and is, in fact, quite small | 18:30 | ||
stevan | PerlJam: not true re: object model,.. there are some questions I have which had not been answered and I dont think will be answerable until someone (probably me) make a prototype to test it out | ||
Perl 6 is an OO engine - so sayeth S02 ( i think thats the one ) | 18:31 | ||
Juerd | stevan: Why a prototype? I believe that no time is wasted by starting on the real thing, and skipping prototypes, which is quite the same as starting with prototypes and then using them in production, only it results in much higher quality of work. | ||
PerlJam | stevan: yes, I know, I was being flippant. It's the mood of my Friday. :-) | ||
stevan | PerlJam: :) | ||
Juerd: a prototype is sometimes easier to write because you can hyper focus and not worry about effecting other parts of the system with your proddings | 18:32 | ||
18:32
DesreveR joined
|
|||
putter | obra: one key point is the "write p6 prelude (Prim.hs plus objects(Array,etc)) in p6" task is both on the piln "next steps todo list", and similarly on a apr1-spike. so one could do that first ;) though the social dynamics of the two are very different. so while it's worth, say me, doing first to explore whether a spike | 18:32 | |
Juerd | stevan: So can you in the real thing. | ||
stevan | Juerd: meta-models have a tendency to dive into infinitely recursive recusion if you poke them the wrong way | 18:33 | |
Juerd | putter: whether a spike$ | ||
putter | is posible, I wouldn't want to drum up group activity unless people had examined and bought into a spike model. getting lots of people excided, and then hitting "but piln can't really run it, and pugs can't really parse it", would be a no-no. | ||
Juerd | stevan: Then perhaps making mathematical models out of them mathematically proving them is a good idea. I think luqui is strong in that area. | ||
stevan | Juerd: $proof != $working_code though | 18:34 | |
Juerd | stevan: No, but if you have proven something, you probably know what way to poke it :) | ||
stevan | Juerd: most of the details which I am talking about are closer to implementation details anyway,. and not theoretical anyway | 18:35 | |
Juerd | I see | ||
stevan | Juerd: its the meta-circularity that gets you,.. which is not very math-like (or so I have been told) | ||
putter | stevan:Juerd: perhaps I shouldn't say "p6". how about, an acceptably performing bootstrapped implementation of pX. where pX can tightly follow the changing spec. | 18:36 | |
I think of the details as less important than bootstrapping. In fact, one idea for an apr1-spike is _no requests for clarification_. Perhaps no great effort even to extract clarity from the Snn. What matters is a _flexible_ (ie, pX) implementation _running_. Then the rest, syncing with Snn, etc, becomes easy. | 18:38 | ||
Juerd | putter: I fear you're speaking on a somewhat higher language than my parser can handle. | 18:39 | |
putter | Hmm, maybe that's a core argument: "we have enough to bootstrap now, and a bootstrapped pX is the most appropriate place for rapid further development". | ||
stevan | Juerd: I think we all feel that way about putter sometimes ;) | 18:40 | |
stevan wanders off to handle some $work business ... be back later | |||
PerlJam | putter: you'd better get more of a concrete noun than "pX" if you vet this on p6l :) | 18:41 | |
putter | Juerd: ok, and stevan: :) the argument is 1-we can currently, with reasonable effort and good use of people resouces, create a self hosting (implemented in itself) implementation of pX, where pX is a language similar to that currently in the p6 spec docs. and 2- such a language and implementation is a good (best?) platform for developing p6. | 18:42 | |
audreyt | putter: I parsed you, and I agree. :-) but it's 2:41am and I'm totally burnt out from $job, so I'm afraid I can't help you much on elaborating this though stream :) | ||
s/though/thought/ | |||
putter | Bascially the "p6 is platform for developing hypothetical ideal language p7" argument shifted. "pX is the platform for developing a hypothetical nifty language p6". ;) | 18:43 | |
PerlJam | putter: s/pX/pugs/ and we're good to go :) | ||
putter | audreyt: lol :) neat! | 18:44 | |
stevan | putter: I totally agree, the question is what will pX run on? | ||
putter has to go off for lunch soon anyway. but I'd love to hear your thoughts at some point. | |||
audreyt | (I parsed you as: "instead of limiting ourselves to prelude, write _everything_ in the p6 as supported by pugs, and focus pugs's Hs toolchain to compile that subset into something that runs in reasonable space/time" | ||
) | |||
Juerd | putter: And why could this pX not be p5 with additions? | 18:45 | |
PerlJam | Juerd: because there would be too much work to do in p5. | ||
audreyt | where the everything includes but not limit to the object space, parser, semantic analyzer, etc. | ||
Juerd | I see | ||
PerlJam | Juerd: and it would be like starting form scratch again with a slightly broken (perhaps mismatched is a better word) tool | 18:46 | |
in other words, I (at least) don't think p5 is the right tool for this job. | |||
audreyt | putter: although, to fruitfully write the compiler (tree transformation) part in perl6, we still need to get 6.281.x level support -- i.e. with sane roles and rules support | ||
putter | audreyt: ah, no, there's a key divergence/point. I'm proposing that discarding the limitation of "p6 as supported by pugs" buys so very much, that it's worth losing the ever valuable "keep the code running" and doing a pure p6, unconstrained by implementation, spike. and then transcoding bits of it at the end, to get back to something running. | ||
audreyt | putter: I think we are in vehement agreement. | 18:47 | |
I meant: | |||
pretend we have 6.281.0. | |||
and write a p6 compiler in p6 targetting that. | |||
PerlJam | audreyt: so putter's "implementation spike" == 6.281.0 ? | 18:48 | |
audreyt | and meanwhile, either improve pugs's support, or (as you said) selectively desugar it in adhoc ways back to something (ruby? parrot? clos? pugs?) | ||
to get it running in the end | |||
putter | ah, yes :) | ||
audreyt | PerlJam: I think it makes sense. writing a compiler in a dynamic language that has no typechecking semantics is possible | 18:49 | |
and the compile-time type semantics is too unreliable at this moment | |||
s/unreliable/unspecced/ | 18:50 | ||
PerlJam | works for me. | ||
18:50
dduncan joined
|
|||
audreyt | that even if the spike is to be written with advanced type features, we wouldn't agree enough to make it work productively | 18:50 | |
(unlike the OO/rules part, where we could agree how they should work on the surface) | |||
PerlJam | though it suddenly feels like we're talking about bootstrapping perl6 by using N languages rather than just 1 and that's a little weird. | ||
audreyt | PerlJam: but in effect, each milestone of Pugs is a different language | 18:51 | |
(or at least that's how I perceived it to be) | |||
dduncan | gree tings | ||
PerlJam | audreyt: yes, that's the way to look at it. | ||
audreyt: I just didn't get there until a few minutes ago. :-) | |||
audreyt | putter: so... this is very exciting :) | 18:52 | |
putter | PerlJam: it's more, just write p6 in p6. including a compiler to whatever-easy-target. then handwave magic briefly. and then it's running, and self hosting, and you can forget about the magic. | ||
audreyt | putter: but the p6 you write p6 in is p6-as-we-understand-today | ||
that is, without luqui's type magicks | 18:53 | ||
or advanced ast-transforming macros | |||
but with everything else | |||
putter | yes. but the parser and oo multi models seem flexible enough to arbitrarily evolve pX, no? | ||
audreyt | sure... we are in vehement agreement. :) | ||
putter | :) | 18:54 | |
PerlJam | And pmichaud and Allison's work provides a nice counterpoint? | ||
putter pictures the amount of work involved and wishes for someone with an insightful "but that wont work / doesnt make sense because..." | |||
;) | |||
audreyt | PerlJam: counterpoint to what? :) | ||
PerlJam | to putter's imagined workflow. | 18:55 | |
audreyt is feeling very rejuvenated -- just finished reading a draft "history of haskell" paper by Hudak/Hughes/SPJ/Wadler | |||
titled "Haskell: the dream that stuff is made of" | 18:56 | ||
putter | oooh, neat. online? or behind the evil ACM DL event horizon? | ||
PerlJam | Perhaps it's just me, but I see what pmichaud is doing as more of "traditional compiler writing" and what putter/audreyt just described as "post-modern compiler writing" (if I can borrow from Larry ;-) | ||
audreyt | putter: no, private copy :) | ||
and GHC went through this early imaginative-bootstrap (over a very slow and very leaky LML-hosted bootstrap) long ago | 18:57 | ||
putter | oh, draft. neat. look forward to it. | ||
audreyt | with help from some very adhoc desugaring evail scripts written in p5 | ||
s/evail/evil/ | |||
18:58
r0nny joined
|
|||
putter | ah, I was wondering where the p5 involvement in ghc came from | 18:58 | |
audreyt | it would be like your planned use of ruby ;) | ||
not yet convinced it'd be neccessary, but I'm cool if it turns out to be useful. | 18:59 | ||
putter: ok. so, how's your cycles looking like in the next 40 days? :) | 19:00 | ||
putter | yeah. it would be simpler if one could transcode to p6-as-running-in-pugs. I'm specing ruby mostly because it has lower risk / "gotcha" potential. It seems clear one can do a rb transcode. with a pugs transcode, one might hit something which requires non-trivial pugs implementation changes to work around. rb is a more distant, but firmer platform. | 19:01 | |
re cycles... I really have to think about that one. I'm just not sure. | 19:02 | ||
audreyt | I'm thinking of transcode to yarv. | 19:03 | |
maybe we can get sasada or matz on the yapc::tokyo hackathon. | |||
(which would dramatically speed up this) | |||
s/tokyo/asia/ | |||
19:03
binary42 joined
|
|||
audreyt | putter: in any case... I'd like to make p6 a good language to write compilers with :) | 19:04 | |
(which would be this spike's primary contribution to the ongoing design evolution, if nothing else) | 19:05 | ||
putter | I suspect (I think) that the transcode target mostly affects the "oh, no, try to keep that section of code simpler since we'll have to transcode it" choices of simpler. I'm not sure how much variation that actually introduces. and the transcode target needn't be the first pX compiler target. | ||
audreyt | no, but it makes more sense (and is more smooth) if it could be. | 19:06 | |
putter | yes | ||
err, yes, to earlier line, re "no, more sense"... | |||
audreyt | (and as long as you are transcoding, p5+MOP is no worse than ruby really.) | 19:07 | |
19:08
penk left
|
|||
audreyt | since you wouldn't touch the surface syntax; it's all codegenned | 19:08 | |
and ruby isn't that easier to gen than p5. | |||
(as compared to read/write by humans, which it could be significantly easier) | |||
obra | MOP? | ||
audreyt | meta-object protocol. | 19:09 | |
obra | ah | ||
putter | re "no, more sense"... I'm not sure. the constraints the two operate under (human transcode of small bits and eyeball similarity, vs easy to write in working p6) are quite different. also maybe the time frame for when they get written. the main thing they could share is the design discussion/though of how to target the platform. | 19:10 | |
audreyt | right. so whatever works works :) | ||
putter: are you going to write this up in a more structured english text? | 19:11 | ||
putter | :) re code gen, codegen leaves me with a "it should work, but I wouldnt really bet my arm on it" kind of feeling. I was thinking that the bit which needed to be transcoded was small enough that one could actually type it by hand. | ||
audreyt | putter: ah, but there is this gray zone between full-parse-compile-codegen and transcode-by-hand | 19:13 | |
namely, adhoc rewrite rules, with regexes | |||
(think your average html scraper.) | |||
putter | re write, this up... yeah, I should. ok, I'll try to get something out today. we still haven't talked about the social and logistical stuff of trying to make it happen fast. actually, what aspects would you like written up? putter ponders... | ||
19:13
rantanplan_ joined
|
|||
putter | audreyt: re rewrite, agreed. | 19:13 | |
but yes, I can sketch out the argument I've been running. then we can fiddle from there. | 19:15 | ||
audreyt | I'd like a problem statement; a requirement statement; an overview of the spike's architecture (i.e. plan of attack); and then it's a matter of writing up the docs/interfaces for the components. | ||
the latter part I already agreed to do with nothingmuch/gaal in israel; I'd also love to annotate it with spike p6 code. | |||
putter isnt sure there are docs/interfaces or components ;) | 19:16 | ||
audreyt | the spike p6 code... is the docs/interfaces ;) | ||
at least that's how I write my CPAN modules. | |||
this one wouldn't be different :) | |||
(to elaborate: I think the toplevel API, as expressed in p6 module syntax, makes good interface spec.) | 19:17 | ||
putter | it would be nice if the implementation could be kept "light weight", few files in flattish directories. so it would be easy for anyone to copy a couple of them, mutate them, and say, "this is what I had in mind". almost a linux like process. | 19:19 | |
stevan is back from doing $work stuff | |||
putter: why is transcode better than codegen? | |||
stevan ponders a set of p5 scripts to desugar p6 code and what that might ential | 19:20 | ||
audreyt | stevan: codegen implies full semantic parsing of the px | ||
which is considerably harder | |||
stevan | true | ||
what if we did several desugaring passes | |||
audreyt | so transcode (via adhoc regexes and/or wetware) is a mean of winging it | ||
aka champagne prototyping | 19:21 | ||
(which is another SPJ paper -- this one is sillier, but still fun) | |||
stevan | and eventually arrived at something that looked like the p5 object prototype code?? | ||
putter | I guess I'm also thinking of a more bottom-up than top-down design approach. we know what, say, the declaration of \d for regexps should look like, it's in the spec. so writing a little macro and fleshing out all of the \X's can be done, without having any idea how that will get integrated into the regexp engine. | ||
audreyt | stevan: er, that's what I meant by "p5+MOP is as valid as ruby as transcode target" | ||
putter | The regexp engine can just assume it's given a list of such things. and the final rxmumble:<X> macro can glue the two together. | 19:22 | |
audreyt | putter: yup | ||
stevan | audreyt: BTW - Class::MOP now does Scala style mixins (although that version is not on CPAN yet) | ||
audreyt | stevan: you're crazy | ||
stevan | audreyt: very simple actually,... easier than roles ;) | ||
audreyt | it's easy to implement something when you know what you are implementing l;) | ||
stevan | i needed something to avoid metaclass incompatibility issues | ||
so audreyt before you go to sleep,.. what is the rough .il hackathon schedule,.. I want to carve out some time in my schedule | 19:23 | ||
audreyt | let's see | 19:25 | |
putter | so rather than components and apis, I was thinking more along the lines of pour spec into p6 code, which should be implementation-design independent. and then fill in the gaps with something plausible. some chunks like the overall architecture of the parser could use a doc. | ||
audreyt | starts at 15th | ||
is the prehackathon | |||
putter: but those are components and apis :) | 19:26 | ||
anything that is relatively independent of other chunks should be split out | |||
putter | yeah, but they are emergent, they don't get speced before hand. | ||
audreyt | and what I was saying is, that the emergent p6 spike code would serve as the defacto spec/interface. | 19:27 | |
putter | and one can imagine having simultaneous - "oh, we need a lexical namespace system. who feels like sketching one... ok, C looks good, lets add mumble from B, and go...". | 19:28 | |
audreyt | stevan: the real hackathon is 21-25 | ||
putter: yup | |||
putter: basically, force^Wnudge^Wencourage p6l to talk in code. | 19:29 | ||
which, $deity be blessed, would be a Good Thing. | |||
putter | ah, ok. thought you were looking for api's and component breakdown in the hypothetical thing to be written today. | ||
gaal | hola | ||
audreyt | putter: er no, "then it's a matter of writing up" means "after you write this thing today, we can start playing with" | ||
gaal backloggeth | 19:30 | ||
stevan | hey gaal | ||
audreyt | sorry for the mistextgen | ||
gaal | hey mr stevan! | ||
audreyt | stevan: conf is 26-28; if I get visa in time, GPW will follow and then it's a 10-day hackathon with leo | ||
stevan | cool | ||
putter | there _are_ advantages to being unconstrained by an implementation. paper vs metal airplanes an all (design phase vs construction phase). I haven't been involved enough in p6l to comment on whether the balance could fruitfully be different.. | ||
audreyt | stevan: if I don't, then it's another 12-day israel posthackathon | 19:31 | |
gaal | and if you get it at the last minute, it's a packathon! | ||
audreyt | heh | ||
gaal | is .il secured? | ||
audreyt | yup | ||
single entry | |||
gaal | whew | ||
audreyt | ok... I need to sleep really. it's 3:30, and I have this laser operation thing booked in the morning. | 19:32 | |
I'll check back later :) | |||
gaal | laser operation? eyes? | ||
audreyt | nah, removal of facial hair | ||
gaal | take sunglasses with you on your trip if so | ||
obra | my friend rachel's been doing that. "fun" | ||
audreyt waves & | 19:33 | ||
gaal | night! | ||
stevan | nice | ||
thanks for the dates audreyt :) | |||
putter | good night & (and I'm about to be distracted for a bit) | ||
gaal thinks it'll be possible to get away with visas from here | 19:34 | ||
19:53
arcady joined
19:57
hcarty joined
20:08
larsen joined
20:28
hcarty left
20:38
cm joined
|
|||
cm | yo | 20:38 | |
ingy | seen whiteg? | ||
PerlJam | I just looked at the PyCon schedule and it seems they only have development stuff after Sun Feb 26. The conference proper is from Thu Feb 23 to Sun Feb 26 | 20:52 | |
oops | 20:53 | ||
21:15
rantanplan_ joined
21:29
Shillo joined
|
|||
Shillo | Hullo, all! | 21:29 | |
21:31
kanru joined
21:32
KingDiamond is now known as KingDiamond|away
21:39
DesreveR joined
|
|||
rafl | Juerd: Not yet arranged, but it's planed and I'll be there. | 21:40 | |
21:40
DesreveR is now known as r0nny
21:45
Medvekoma joined
21:47
jsrn joined
|
|||
putter | ok, I'm going to grab some dinner, and then draft up a pX project sketch. hopefully run it by anyone who is still awake for comments. | 21:55 | |
21:58
diotalevi joined
|
|||
putter goes to briefly read the "streamlining" thread on p6l. realizes "briefly" isn't going to cut that... | 22:01 | ||
Shillo | putter: :) :) | ||
22:12
justatheory joined
|
|||
putter | audreyt: I note www.nntp.perl.org/group/perl.perl6....uage/24658 didn't like your email encoding ;) | 22:12 | |
nothingmuch++ | 22:16 | ||
nothingmuch: I realize you are probably off snowboarding by now, but it would be great to talk. | 22:17 | ||
pX and your proposal have the same objectives and motivation I think. my very quick impression is the divergence is part technical (sacrifice "keep the code working" to avoid "have to implement in haskell first") and one social (do an intense short-term project with flexible code "ownership" independent of | 22:21 | ||
section-of-perl6 (eg, no foo owns Bar::Hee, the thingamagic implementation), vs doing the more traditional project decomposition you describe). | 22:23 | ||
s/one social/part social/ | |||
ideas on social scheme will be in pX sketch. though if anyone is around who wanted to ask questions...? ;) | 22:24 | ||
guess not. ah well. bbl & | 22:28 | ||
oh, and social/techical - a non-monolithic code set. think you have a better way to implement widgits, code it and toss it into the pile. it looks like extracting a coherent set of code from that pile is something that can happen whenever convenient, even as late as compiletime. | 22:31 | ||
btw, if anyone, at all, doesn't buy any part of this, or has any questions, however "dumb", please please please say something. it will, at a bare minumum, help us understand what we are doing, and thus help us do things differently/better. thanks. | 22:35 | ||
dinner. bbl | |||
will backlog :) | |||
Shillo | putter: Er.... | 22:36 | |
putter: Can't read my normal email now... where's that document? | |||
Ick, too late. :) | 22:40 | ||
22:45
pdcawley_ joined
22:51
Shillo left
22:54
knewt joined
23:03
DigitDuke joined,
DigitDuke left
23:28
drbean joined
|
|||
Juerd | I made the same syntax mistake 5 times in Perl 5 today. | 23:36 | |
map { }, list | |||
wilx | :) | 23:39 | |
You need to take a break. | |||
23:47
drbean left
23:48
Cryptic_K joined
|