pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
00:25
jrockway_ joined
00:33
jrockway joined
00:57
jrockway_ joined
01:11
justatheory joined
|
|||
meppl | good night | 01:15 | |
01:17
lyokato_ joined
01:41
literal_ joined
01:46
hcchien joined
02:06
alester joined
02:07
alester joined
02:12
pbuetow joined
02:20
snooper joined
02:21
buu joined
02:22
buubot joined
02:59
eternaleye joined
04:38
nipotan joined
05:03
FurnaceBoy joined
05:22
thoughtpolice joined
05:31
marchs29 joined
05:37
zblaxell joined
05:38
marchs29 left
05:43
lyokato_ joined
06:40
Schwern joined
06:49
Schwern joined
06:59
Schwern joined
07:09
Schwern joined
07:12
jrockway_ joined
07:21
jrockway_ joined
07:47
zamolxes joined
07:49
Aankhen`` joined
07:50
baest joined
07:55
DemonScrypt joined
08:19
aindilis joined
09:01
masak joined
09:11
Foke2 joined
09:32
IllvilJa joined
10:45
avar joined
10:47
ruoso joined
11:01
simcop2387 joined
11:22
literal_ joined
11:27
chris2 joined
11:36
masak joined
12:21
samp99 joined
12:22
samp99 left
12:31
jrockway_ joined
12:35
Moss23 joined
12:56
LazyJim joined
14:00
eternaleye joined
14:03
leninmhs joined
14:06
elmex joined
14:16
elmex joined
14:21
pmurias joined
14:30
stevan_ joined,
FurnaceBoy joined
14:40
Aankhen`` joined
14:41
zzzhc joined
15:02
TJCRI joined
15:16
justatheory joined
16:07
mncharity joined
|
|||
mncharity | a quiet backlog, ah well. :) | 16:09 | |
16:13
elmex joined
|
|||
mncharity | ok, my current big picture looks like * get STD_red parsing a usable subset of p6, and dump to yaml; * do an elf_on_STD_red, ie, an elf_a_generate.p5 which writes an elf_a.rb which compiles p6 to simple p5. then an elf_b_generate.p5 which | 16:15 | |
writes a elf_b.p6 which is compiled by elf_a.rb into an executable standalone elf_b.p5, achieving backend bootstrap. | 16:16 | ||
then push on prelude, test suite passing, and dumping yet_another_regex_engine from p5 into p6, to begin bootstrapping the frontend as well. | 16:17 | ||
oh, and pushing on clean support for additional backends, so the backend folks can start working towards more real backends/runtimes. | 16:19 | ||
basically just elf_on_rakudo, but on the faster and more-STD parser of STD_red_run instead of scraped rakudo --target=parse. | 16:20 | ||
16:22
Daveman joined
|
|||
mncharity | help, questions, critique, commentary, whatever, most welcome. | 16:22 | |
16:26
jrockway joined
|
|||
mncharity | cd src/perl6; ./STD5_run EXPR -e '3+3' | ./STD5_run_post | 16:28 | |
cd misc/STD_red; ./STD_red_run -e '3+4' | |||
16:30
pmurias joined
|
|||
mncharity | STD5 is mostly just EXPR parsing, since its focus has been to get longest lookahead parsing working. | 16:30 | |
STD_red is intended to be fully general. Getting there, one quirk at a time. | 16:31 | ||
eg, ./STD_red_run -e 'class A is B { has $.x; method m($y){$x+$y*3} }' works. | 16:32 | ||
but 3.foo doesn't, though it does in STD5, so it's time for some comparative debugging. | 16:33 | ||
pmurias | mncharity: what i think is important to keep in mind is that the compiliation model when you need to handle BEGIN blocks is a lot diffrent | 16:34 | |
mncharity | i've been wondering if BEGIN blocks are needed at all (for getting to backend bootstrap). any thoughts? | 16:35 | |
the metaprogramming is all happening externally, so no macros, nor BEGIN{} eval'ing code, so... | 16:36 | ||
not sure what it would be used for. | |||
pmurias | i don't think they are needed for bootstrap | ||
mncharity | :) | ||
"easiest way to accomplish something is to remove it from the todo list" :) | 16:37 | ||
any other 'things to look out for' come to mind? | 16:38 | ||
pmurias | but they changed the way the compiler needs to work diametraly, but if you plan to throw away everything you don't need to worry about them | 16:39 | |
i belive only good rules support is needed for bootstrap, the other stuff can be handled anything even mp6 or java | 16:40 | ||
s/can/could | 16:41 | ||
s/even/, even/ | |||
16:44
Lorn joined
|
|||
pmurias | externall metaprogramming = code generation? | 16:44 | |
mncharity | so possible sources of a p6 implementation of rules support are kp6 (+already in p6, ?i'm unclear how general it is, or how tested); Perl::Compiler::Rules (is this what pugs is using? if so, then +well tested, -p5, ?i don't know much about its internals); yet_another_regex_engine (+well tested, -p5, +i know its interals, -they have some "not quite working"s). | 16:45 | |
pmurias | kp6 rules are really primitive | 16:46 | |
mncharity | re metaprogramming, misc/winter_jig/elf_on_rakudo/'s elf_zero (ruby) is written by elf_zero_generate.pl (p5), and elf_one.p6 (p6) is written by elf_one_generate.pl (p5). | ||
pmurias | mncharity: why? | 16:47 | |
mncharity | :), let's see... | 16:48 | |
makes it very easy to do non-local changes | |||
discovering parser X needs a semicolon after each class {} for instance | |||
and the set of ast nodes was under continuous change during elf_zero/elf_one development. but because all the code was generated, that was easy to do | 16:49 | ||
pmurias | seems a bit of a hack | 16:50 | |
mncharity | and easy to continue evolving the ast api, because all the ast node class code was metaprogrammed. | ||
very much a hack. intended to have a life expectancy of days. but to reach bootstrap in those days. | 16:51 | ||
also lets you engineer for the development process. eg, exploring the rakudo parse tree, and writing ir constructors for it, was happening quickly. in hours, rather than days or weeks. | 16:53 | ||
it's sort of creating a DSL for the task at hand, namely achieving bootstrap. | 16:54 | ||
pmurias | with achieving bootstrap you mean running STD.pm | 16:57 | |
? | |||
mncharity | from non-CS fields (our tools are crippled:/) , the analogy would be a jig. "the hard part is building the jig/scaffold/mold - once you have that, filling in the wood/stone/bronze/whatever is...", well, not easy, but creating the jigs are a necessary precondition for success. and losing/discarding the jigs similar to having to start over from scratch. | ||
re achieving bootstrap, | |||
two parts, backend bootstrap is a program mumble, written in p6, which runs p6 (and can compile it to p5). but which uses an external parser (rakudo or now STD_red_run), to get from p6 code to a yaml dump of the parse tree. mumble does the rest, but is thus not a full bootstrap. | 17:00 | ||
then doing the rest of the bootstrap, requires developing a frontend written in p6. so an rx engine, and grammar it can run. hmm, or perhaps | |||
more simply, just a cheat/gimme5 like hack, converting STD.pm to p6, might be an easier first step. | 17:01 | ||
but need an rx implementation anyway, so I'm not sure a "massage the code in STD.pm into a runnable form, but without really understanding it" hack really helps much on bootstrap | 17:03 | ||
but re 'running STD.pm?', basically yes. Derived-from-STD.pm, or eventually STD.pm itself, from here on out. | 17:04 | ||
pmurias | i think creating a good rx implementation is the most important issue | ||
the regex part of STD is quite isolated | 17:05 | ||
so it should be possible to run it before the rest | |||
mncharity: what features you like to use when writing backends does mp6 lack? | 17:06 | ||
* would like | |||
mncharity | long ago, yet_another_regex_engine was written with the intent it would support a p6 grammar, and then be translated into p6 itself. now the only question is which of several p6 engines to translate, and how to get there. | 17:07 | |
yare had an internal bootstrap, to get to running p6 and p5 rx on bare p5. I'm not sure any of that is needed now. | 17:08 | ||
17:08
macae joined
|
|||
mncharity | to wrap up on rx engine, it could be useful for someone to explore PCR, and try rewriting it in p6. but please, let's metaprogram the nodes and their fields. :) | 17:11 | |
re backends, | |||
do you mean 'why not use mp6?', or 'what should be the feature list for making backend development easy?' | 17:12 | ||
pmurias | mncharity: i mean "why not use improved mp6" | ||
well more "how much improvement would mp6 need in order to be suitable" | 17:14 | ||
TimToady | personally, I'm not much interested in working on any other bootstrap than STD5, which I suspect would be done by now if it weren't for @nemia and $dayjob | 17:17 | |
mncharity | so background is, doing a bootstrap is like a dance. juggling a big tangle of constraints and tools, finding the low effort pass through the mess. so... i've found kp6 a bit "heavy". though that may just be me not understanding it well enough to wield it lightly. but more specifically, | 17:18 | |
TimToady | and it could certainly be made fast enough by hoisting the ratchet semantics up out of all the Cursor calls into the inline code... | ||
I almost had that working under pugs a long time ago, but pugs had no decent way to emulate "andthen" semantics | 17:19 | ||
mncharity | it don't don't really believe mp6 rx is working, in the absence of it's running against the pugs regex tests, or at least p6 versions of the p5 re tests. perhaps I'm out of date, and it is now. but my feeling is one of its having been written for the bootstrap, and thus bound to be very "gappy". vs PCR and yare, which got more non-restricted exercise. | 17:20 | |
TimToady | but notionally, it's just nested conditionals rather than nested maps | ||
mncharity | repeat: "which got more non-restricted exercise." | ||
re 'would be done by now', /me does *daydreamy sigh*. ;) | 17:21 | ||
TimToady sighs but not so daydreamily... :) | |||
17:22
jhorwitz joined
|
|||
mncharity | lol | 17:22 | |
TimToady | btw the regex parser in gimme5 is already quite close to STD's, modulo only needing to work on STD.pm | ||
pmurias | mncharity: mp6 is extemely primitive and would need to be replaced | 17:23 | |
TimToady | (well, and treating closures as opaque, more or less... :) | ||
mncharity | re g5, happy with the ast node+field selection+naming? that's an easy "do it like gimme5" rather than "like yare" or "like PCR". translating internals... well, I wouldn't expect them to actually work until they are getting tested. | 17:27 | |
17:27
Schwern joined
|
|||
mncharity | there's another thing we need. it's amazing how much of an rx engine can be buggy, but all our tests are passing. we need many many more regex tests. | 17:27 | |
s/happy/are you happy/ | 17:28 | ||
TimToady | well, I've been on record for some time that I think we need 40-50k tests for p6 in the long run | ||
I haven't been worrying much about asts, because I figgered you were worrying about it. :) | 17:29 | ||
and worst case is a tree transformation pass | |||
mncharity | pmurias: re 'mp6 is extemely primitive and would need to be replaced', ah, ok. | ||
TimToady | well, in the absence of missing info, which is worster... | 17:30 | |
mncharity | me not worrying about it. that's what multiple dispatch is for. ;) | 17:31 | |
TimToady | hmm, surreal superlatives: "worsterester" | ||
mncharity | i'm still fuzzy, and not entirely happy with it, but for elf I've been leaning towards a rakudo/kp6/redsix "heavy" ir, an analytic ir, providing a "let's talk about p6" dsl. and going directly there from the parse tree. well, | 17:33 | |
17:34
pmurias joined
|
|||
pmurias | mncharity: i mean mp6 rx | 17:34 | |
mncharity | raw parse tree -> parse tree you wish you had (decrufting, stabilization, might go away someday) -> analytic ir | ||
re mp6 rx, right. so the choice lists then looks like translated PCR, translated yare, or gimme5 something. I need to get more details about the latter. and it needs to be put in a directory somewhere, a test suite (or copy of the "run as pugs's rx engine" glue) snarfed, and get it running. | 17:36 | ||
TimToady | and all tracking back to the original so that the debugger can express things in terms the user understands, not in terms of abstractions that may be incomprehensible | 17:37 | |
even p5 confuses users when it tries to warn about concatenation that has been rewritten to $a.$b | 17:38 | ||
mncharity | re ir, I also really want to have a minimal scheme-like ir form. as was tempted to parse -> minimal ir -> analytic ir. but minimal means lossy, and makes it harder for the programmer to chat with the compiler, so I thing parser-> heavy ugly analytic ir is the thing, at least to start with. | ||
TimToady | need to avoid that syndrome | ||
yes, more like annotated parse tree than like bare semantic network | 17:40 | ||
I'm allergic to forgetting things these days... | |||
mncharity | can then go minimal ir <-> analytic ir. and perhaps use the minimal ir to talk to other's compilers. scheme's stalin comes to mind. oh, that was the other argument for heavy ir. for using minimal to talk with others, you start hitting "well, it would really be more convenient talking with x if foo was instead done as bar". so it wasn't/isn't really clear that minimal ends up a language, or merely a language family. | 17:41 | |
"ugly heavy analytic ir that I hope gets thrown away" has the advantage of clarity. ;) | 17:42 | ||
and of being able to be optimized for the task at hand, rather than making that more difficulty in search of poorly understood other objectives. so kiss. anyway, that's why I'm leaning towards heavy, for now, even if it makes tree transforms more problematic. | 17:43 | ||
TimToady | on the hoisting-ratchet topic, I'm not talking about something terribly difficult. It's actually fairly trivial--a prototype of the difference can been seen in metholate's wrapone sub. | 17:44 | |
mncharity | backlogging... yeah, lossless also gives you better error messages. | ||
re hoisting-ratchet, does that "performace is dreadful without ratchet, so you really really want to ratchet", or merely "just getting to ratchet, which is spec"? | 17:45 | ||
TimToady | cascading success doesn't have to be represented by non-empty lists under ratchet mode | ||
mncharity | :) | ||
/does that mean/ | |||
TimToady | gimme5 already does ratchet, but it's implied by all the spots that do ->[0] on a list of cursors | ||
I'm just talking about how the STD5 bootstrap could eke out more performance | 17:46 | ||
mncharity | hmm. i've avoided looking in detail at the cursor/gimme5 guts. given they were in flux. sounds like its time to become familar with them. sigh, and with PCR. hmm, unless someone would like to volunteer? :) | 17:47 | |
TimToady | the primary optimization would be to not call into Cursor code that generates cursors that are just going to be thrown away in a moment | ||
since we really only need the cursors at sequence points like rule entry/exit | |||
mncharity | re 'just talking about...bootstrap', ah, it's not a general rx engine? ok, we need names... let's see... | 17:48 | |
TimToady | my view of bootstrap is that eventually STD5 gets good enough to replace gimme5 | ||
and then you're almost home free | 17:49 | ||
assuming, as you say, the edit/compile cycle is not too ponderous | 17:50 | ||
mncharity | () front-end "little" bootstrap - getting a p6 parser working, though one still doesn't have a p6 rx working. eg, a gimme6.p6 which text-massages STD.pm to executable p6. () front-end "big" bootstrap - possibly modified STD.pm runs on a normal general rx engine. | ||
TimToady | um, that doesn't make sense. STD.pm is already executable p6 (in theory) | 17:51 | |
mncharity | yes but not (in practice) | ||
TimToady | do you mean subset executable by some back end? | ||
that's pretty much an exact description of metholate :) | 17:52 | ||
mncharity | i'm still unclear on whether the guts of cursor/gimme5 are, or are envisioned as becoming, a general rx implementation. | ||
TimToady | yes, they are. | ||
that's why metholate is called that... | 17:53 | ||
it turns regexen into method calls that don't use regexen | |||
and the intent is that the semantics be correct | 17:54 | ||
performance is secondary, but occasionally thunk of | |||
when you say "guts of g5" I presume you mean the algorithm, not the embodiment in p5 code. | 17:55 | ||
mncharity | so then the development path might be something like... as soon as there is a working elf, backport gimme5 changes into a metholate2, extract that rx implementation core into a directory somewhere, add test suite, and start banging on it. ? | ||
TimToady | I'd expect the bootstrapped STD to emit much the same metholated code from the regex bits | ||
mncharity | re gust, I was thinking both. so algorithm, no code? | 17:56 | |
TimToady | elf = ? | ||
mncharity | elf_on_rakudo ^H elf_on_STD_red/elf_b or elf_c. a p6 to p5 compiler which runs fast and generates p5 which also runs fast. | 17:57 | |
elf for metholate2, as pugs was for metholate. | 17:58 | ||
or a different vision? | |||
TimToady | I'm agnostic as to what the next STD5 emitter will be after p5 :) | 17:59 | |
mncharity | hmm, me still fuzzy, let's see.. | ||
there's cheat|gimme5+cursor5 that eventually becomes a p6 -> match tree parser generated in p5. now there's the second part, | 18:00 | ||
the algorithms not code of gimme5 and cursor5 constitute a spec general rx engine. | 18:01 | ||
so that needs to be extracted? the algorithms rewritten in... p6? p5? | 18:02 | ||
TimToady | so we can replace gimme5 with std5+p5emitter | ||
mncharity | I don't understand "so we can replace gimme5 with std5+p5emitter"? | 18:03 | |
TimToady | anything cheat/gimme5 does can be done better by an emitter working off the match tree produced by feeding STD.pm to std5 executable | 18:04 | |
mncharity | ah, ok | ||
TimToady | and then you basically have a bootstrap, except for the parts that STD doesn't need that have to be filled in | 18:05 | |
but bootstrapped on the subset of p6 that STD uses | 18:06 | ||
albeit perhaps with some chewing gum and bailing wire to emulate roles and such under p5 | |||
but then we could start moving to using Moose or some such | |||
and the p5 emitter just gets more p6like, rather than just barebones what STD needs | 18:07 | ||
mncharity | STD.pm|cheat|gimme5+cursor5 == STD5_run. STD.pm|STD5_run|something_new == p6parser2. ... | ||
TimToady | for a correct bootstrap we must verify that STD|STD|STD... is stable, but initial loop is just an approx of that | 18:09 | |
stevan_ writes MooseX::Penicillin to help clear up all these STDs | 18:10 | ||
TimToady | probably sufficient that STD|STD5|STD5 is stable to begin with | ||
or maybe that's the same thing :) | |||
stds of all sorts come from too much studliness | 18:11 | ||
mncharity | so let's see... you're doing a combined <rx_engine+emitter_to_p5+grammar_fudge> bootstrap chain, on a fairly stable grammar, linked by each stage being able to use the preceeding stage's match tree? | 18:12 | |
TimToady | with progressively less fudging | 18:13 | |
there's a metholation to my madness... | 18:14 | ||
mncharity | so the "something_new"... would be written in p5 or p6? | ||
TimToady | the emitter could be either, I presume | 18:15 | |
18:15
Psyche^ joined
|
|||
TimToady | could even be bootstrapped in p6 with a g5ish s/// approach | 18:16 | |
mncharity | actually, has to be p5, unless you've been... eep | ||
TimToady | there's this huge advantage to the fact that p5 and p6 are closely related enough that you can do that :) | ||
it's a really big lever--every time I change STD.pm, gimme5 can usually already translate that to p5 | 18:17 | ||
mncharity | yeah. perhaps i should have said <rx_engine+s///-based-p6-compiler-and-emitter_to_p5+grammar_fudge> | ||
TimToady | there are many shades of purple | 18:18 | |
mncharity | but STD5 doesn't actually itself _use_ parsed p6 at any point, no? | 18:19 | |
TimToady | it does in the regexen | ||
mncharity | ah | ||
TimToady | that's what I mean when I say the regex parser in gimme5 is really a real parser | 18:20 | |
close to what STD does itself, albeit subsetted | |||
mncharity | so if I changed the Regex section of STD.pm, gimme5 would break? | ||
TimToady | no | ||
mncharity | or it's an independent, written in p5, 'real parser'? | ||
TimToady | p5 | ||
18:20
rindolf joined
|
|||
TimToady | that would be first step of the gimme->STD tranformation, to use STD's regex parser instead of gimme5's | 18:21 | |
mncharity | so something_new won't be... well, will be, something new. it will be the first point at which the parse tree is actually used for code generation. | ||
TimToady | so don't even really need EXPR for that | ||
except in a rudimentary fashion to parse the expressions in <EXPR(%additive)> and such | 18:23 | ||
and of course closures remain opaque strings to be fed to the s/// engine at that point | 18:24 | ||
the s/// engine doesn't have to be perfect, just good enough long enough :) | |||
which is why I don't mind installing temporary # end class annotations in STD to help it along | 18:25 | ||
and occasionally warp the p6 code into something slightly more s///able | 18:26 | ||
(trying to stay officially p6 though) | |||
once we have a real bootstrap we can remove such infellicities at our leisure | |||
no rush, as long as it's officially p6 code, and as long as we can stand the klunkiness | 18:27 | ||
the next best thing to removing a todo is deferring it till tomorrow. :) | 18:28 | ||
mncharity | ok. so STD5 is a is p6 dialect implemented in p5, with s/// based emitting, whose dialect encompasses... pause | ||
lol | |||
18:28
tobeya joined
|
|||
mncharity | encompasses externally conditioned STD.pm, whose purpose is... to be able to create a match tree for STD.pm. | 18:29 | |
TimToady | s///-based initially, but not by continued necessity | ||
the emitter can piecemeal switch from paying attention to ~$/ to paying attention to $/{} | 18:31 | ||
mncharity | so with STD5_run which can parse STD.pm done, the next bootstrap step would be something which: * can emit from that parse tree. * uses the rx engine algorithm (and maybe code) from STD5; * ... what else? | ||
TimToady | maybe fill out the subset of p6 that p5 can conveniently execute, or maybe move on to some other kind of emitter with a hope of running STD | 18:33 | |
like rakudo, assuming it continues to progress | |||
mncharity | ok, so the vision is not really one of a specific bootstrap chain, but rather "create something which can parse p6 and emit a parse tree", "while also spec'ing an rx engine", and then... assorted progress can then be made with those new components. | 18:36 | |
TimToady | I'm certifiably organic. :) | 18:38 | |
mncharity | so the spec rx engine... algorithms at least... is how mature? could someone start translating it into p6? hmm, though unless elf_on_STD_red works, there's no place p6 to run it? now that it's working(?), might pugs run in? or kp6? | 18:40 | |
TimToady | hmm, I guess we're daylight savings time now, so the phone call is still more than an hour | ||
mncharity | eg, is working on the rx engine a separable task yet, or still too entwined in STD5? | 18:41 | |
TimToady | as I said, metholate already pretty much translated to pugsian p6 | 18:42 | |
likely it has suffered some bitrot, though metholate's bitrot is probably easier to fix than Cursor.pm (from which Cursor5.pm was derived once upon a time) | 18:43 | ||
and I probably changed some things in cheat that metholate was relying on, but using a STD front end would fix that | |||
mncharity | but you've been doing a lot of work on gimme5. on algorithms too I thought. with algorithms still unfinished in g5. so... unless metholate has the real algorithms and g5 is still catching up? /me puzzled | 18:44 | |
TimToady | correct, metholate doesn't have LTM yet | ||
so basically we're talking backtranslation from gimme5 to a new "metholate" | |||
or call it "gimme6" | |||
mncharity | :) | 18:45 | |
TimToady | won't be difficult to do that translation, I think | ||
in general p6 is slightly more powerful than p5 :) | |||
18:45
cmarcelo joined
|
|||
TimToady | except for the parts that don't exist yet :/ | 18:45 | |
mncharity | so the development path looks like * finish up the unfinished parts of gimme5, * someone(?) can then translate it into a gimme6? | 18:46 | |
18:46
gbacon joined
|
|||
mncharity | hmm | 18:47 | |
TimToady | you think in bullets, I think in bullwhips :) | ||
mncharity | I guess one question is how separable the s/// based p6 handling is from the rx engine, or whether they are mixed together. | ||
TimToady | they both go crack though | ||
mncharity | though I guess even if mixed, the story is still at some point gimme5 is happily parsing STD.pm, and someone generates p6 intended to behave the same way. | 18:49 | |
TimToady | typologically they're quite distinct, since you only ever use s/// on strings, not objects | ||
mncharity | yes, well, but. anyway. :) | ||
oky | 18:50 | ||
TimToady | gimme5 makes an artifical distinction between line-based translation and shorter segments, and the regex engine only uses the non-line-based, iirc | ||
and rule recognition is only line-based currently, so we don't do anything with embedded regexen | 18:51 | ||
mncharity | ok | ||
TimToady | that fixes itself as soon as we replace gimme5 with STD, presumably | 18:52 | |
mncharity | so one possible collective development path would be to get an elf_on_STD_red working. a p6 implementation written in p6, which uses the STD_red_run generated parse trees to emit p5. when STD5_run works, it's swapped in for STD_red_run. and you thus instantly have working ast-based backends and such. | 18:57 | |
? | 18:58 | ||
seems an easier second step than expanded s///-based p6 compilation. | 18:59 | ||
TimToady | ENOCLUE, my pert charts only go out about one step :) | ||
mncharity | :) | ||
but the vision is definitely "get the parse tree, then start using it", yes? | 19:01 | ||
TimToady | I don't know if it's a vision, more like the tune from Close Encounters | ||
but I know there's a mother ship out there somewhere... | 19:02 | ||
mncharity | which would seem to mean a STD5-ish, rather than kp6-ish or rakudo-ish parse tree. hmm, though the STD5_run parse tree is a bit odd still. | 19:03 | |
CE of the P6 Kind | |||
"he suddenly started making piles of mashed...code at he dinner table?!?" | 19:04 | ||
*the | |||
TimToady | well, and my unchecked-in code is different yet again... | ||
mncharity | (movie reference - mashed potatoes look like dreamt of mountain) | ||
TimToady | yes, got it | ||
though mostly one didn't go to that movie to see it, but to listen to it | 19:05 | ||
mncharity | (was addenda for log clarity.) | 19:06 | |
TimToady | six channel sound being a new thing at the time | ||
mncharity | one thing OLPC channels teach - annotate culture-specific references, or lose. | ||
TimToady | on the other hand, anyone who reads this log without expecting a few cultural allusions from time to time is going to be sorely disappointed | 19:07 | |
mncharity | though a lot of nerd culture is international | ||
re allusions, right :) | 19:08 | ||
oky | |||
TimToady | and you can't always annotate everything, or you end up with the government | ||
or xanadu, neither of which works... | 19:09 | ||
if you're writing a book, you can at least make a guess at where the forward references are, but non-linear media subvert even that | 19:10 | ||
mncharity | xanadu, there was a loooong running joke. no way p6 can be the longest running unfinished unusable software development project ever. metal is taken. though we could try to find some things to patent, just to leaven "doesn't run" with silliness. | 19:12 | |
TimToady | well, once p6 is out, duke nukem will be trivial to write :) | 19:13 | |
mncharity | :) and xanadu. modulo patents. oh, patents are going to fun once we get started. so many folks have as their first line of defence "it's hard to implement", with patents second. with p6 to make things easier, we're going to start hitting seconds. :/ | 19:15 | |
19:16
alester joined
|
|||
TimToady | but then many more algorithms will be easily proven to be trival :) | 19:18 | |
mncharity | "proven" at a few 100$US/hr. | ||
nice in theory, kills startups in practice. | 19:19 | ||
TimToady | better than than a few $1M/violation | ||
*that | |||
I figure we can bring down the whole software patent system this way. get everyone addicted to p6, later people notice bits that they think they have patents on, everyone sues everybody, the courts melt down and throw out all software patents. :) | 19:21 | ||
??? | 19:22 | ||
profit | |||
rindolf | TimToady: is xanadu that hypertext thing? | ||
TimToady | *nod* | ||
rindolf | TimToady: wasn't udanax released a while ago? | ||
TimToady | too little, too late :) | 19:23 | |
mncharity | the higher-order programming approach to patent breaking. a CPAN note: be advised if you call functions foo on "a function which sorts", you may be breaking silly patent NNNNN. | ||
TimToady | they needed to figure out the business model of "The first one's free, kid" before the web did. | ||
19:23
cathya joined
|
|||
TimToady | and they didn't | 19:23 | |
PerlJam | xanadu was from like 1969 or something wasn't it? | 19:24 | |
TimToady | I wonder if I can patent a method of breaking the patent system? | ||
don't know exactly--it had a good long run | 19:25 | ||
SubStack | there's loads of prior art for extortion | ||
TimToady | indeed, it's hard to stop paying protection money... | 19:26 | |
at least, if you value your kneecaps.. | |||
mncharity | en.wikipedia.org/wiki/Project_Xanadu | ||
lambdabot | Title: Project Xanadu - Wikipedia, the free encyclopedia | ||
mncharity | so in the early 80's it was a long running funny. and it's kept going for an addition 2 decades. | 19:28 | |
admittedly, the web is a rather weak form of hypertext. and that will have to be addressed at some point. | 19:29 | ||
TimToady | it's those "caverns measureless to man" that eventually get to you... | ||
well, arguably xanadu fell victim to the converse of that, expressed these days as YAGNI | 19:30 | ||
mncharity | c2.com/xp/YouArentGonnaNeedIt.html | 19:31 | |
lambdabot | Title: You Arent Gonna Need It | ||
PerlJam | TimToady: but the allure of that "pleasure dome" keeps people showing up | ||
mncharity | lol | ||
TimToady | Annotations ŠÆ Us | 19:32 | |
rindolf | mncharity: well, I recall a (paper) BYTE article about developments in the Web from a few years back, which had a box about several problems inherent to the HTML/HTTP stack. | ||
mncharity | yeah. broken links come to mind. it's just... it wasn't clear how to do better. still isn't to some extent. witness the many failed URN schemes. | 19:34 | |
TimToady | it's even arguable whether forgetting things is *necessary* to global info health in some sense... | ||
PerlJam | I'd say that it is. | 19:35 | |
mncharity | it may be "if the web had just chosen one, then that could have ridden to success on the web, rather than now having to fight to obtain a nitch in a mature ecosystem". | ||
TimToady | eventually your indexes get very complex if you have to remember everything | ||
PerlJam | TimToady: google doesn't seem to have a problem with it yet :) | ||
TimToady | google is just faking it | 19:36 | |
mncharity | re forget, ok, but that doesn't mean links have to break. could just, be linked from fewer and fewer places. like an attic. | ||
TimToady | how does your GC know when the last one goes away? | ||
PerlJam | distribute the load. documents shouldn't be passive. When someone clicks on a link to nowhere, the "hypertext system" should annotate the link to say that it's broken and render it in such a fashion that it's clear to the user. | 19:38 | |
mncharity | re gc, doesn't have to. that's a core characteristic of the space. content creation is increasing rapidly, so it's always cheaper to keep the "stuff which now seems old" around, rather than worrying about it. because more new stuff came in | ||
recently, than all the old stuff combined. | |||
TimToady | "Look on my works, and despair!" is not sufficient technology to do it. :) | ||
and as I say, it's not the info itself, but the multi-way indexing that doesn't scale | 19:39 | ||
PerlJam | I don't think we're quite ready to start building the encyclopedia galactica. | ||
TimToady | battlestar first... | ||
mncharity | I suppose the power curve might level off at some point, but such a small portion of the world pop is currently engaged in content creation, I don't expect "keeping old stuff is cheap" to change anytime soon. | 19:40 | |
TimToady | there are many definitions of "keep" | ||
PerlJam | mncharity: and who would *Ever* need more than 64K of RAM? | ||
TimToady | I don't doubt that the vatican library keeps many interesting documents that I'll never see in my lifetime ;) | ||
mncharity pictures the rfp on the deathstar. If the weight of the spec and docs exceeds the weight of the aircraft, then... | |||
TimToady | good thing they have antigrav tech | 19:41 | |
rindolf | mncharity: what is rfp? | ||
PerlJam | mncharity: I think everyone with a cell phone will engage in content creation in the near future. Not to mention all the OLPC people. | 19:42 | |
TimToady | "That's no moon! That's a Word document!" | ||
PerlJam | rindolf: request for proposals | ||
TimToady | Please give me a list of everyone who has photographed Mt Rushmore, ever... | ||
mncharity | re 64K, no, its a rate of change argument. if the 6th century produced fewer bytes than my morning incoming spam, then if I can keep the latter, I can keep the former. as long as the rate of change doesn't change, then keeping "everything written older than a decade" remains a small cost compared with "dealing with this month". | 19:43 | |
19:43
lichtkind joined
|
|||
TimToady | or, when we're all storing our visual logs permanently, who have even looked at Mt Rushmore | 19:43 | |
or a picture of Mt Rushmore | |||
not even the universe tries to keep track of the relationship of everything to everything else | 19:44 | ||
PerlJam | mncharity: as long as the ratio of content creators to storage space remains as it is. | ||
TimToady: we don't know that it isn't squirrelled away in another unseen dimension or something :P | 19:45 | ||
TimToady | I keep telling you, it's not the content that is the problem | ||
This Was Your Life--Chick Publications | |||
PerlJam | TimToady: at some point it's the links that are the content. | ||
mncharity | re ratio, or cost to content creators of content creation, compared with the cost of content retention by content creators. | ||
to be said 5 times fast | |||
PerlJam | heh, I had trouble reading it just once, let alone saying it | 19:46 | |
TimToady | In space, no one can hear you scream content. | ||
you're falling way behind on your annotations, mncharity :P | 19:47 | ||
but then, that supports my theory. :) | |||
mncharity | drifting back towards p6... it looks like my path is now elf_on_STD_red. STD_red_run is almost working well enough to be used. so get it there, use it, and swap in STD5 when that is working too. | 19:49 | |
PerlJam can't help but think of the shining every time he sees STD_red_run | |||
mncharity | lol. ouch. | ||
ah well. name and code gets tossed as soon as STD5 exists. | 19:50 | ||
one of the nice things about bootstrap. you have less worry about people suffering decades hence from your thinkos and name choices. :) | 19:51 | ||
TimToady: anything special about infix:<.> parsing come to mind? infix:<***> works fine, generating a Methodcall. but not dot. hmm... | 19:58 | ||
this on STD_red_run. STD5_run works. :/ | |||
STD_red isn't quite synced any more. | 19:59 | ||
TimToady | phone in 1 | ||
PerlJam | TimToady: If Pm shows up give him a hard time for talking on the phone while he's ostensibly on his honeymoon :) | 20:00 | |
TimToady | lol | ||
heh, busy! | 20:01 | ||
got thru second time... | 20:02 | ||
mncharity | ah, post() is breaking it. let's see why... | ||
20:13
marmic_ joined
20:14
barney joined
20:15
meppl joined
|
|||
lichtkind | TimToady: what was gimme5 again please? | 20:18 | |
TimToady | a version of metholate that spits out p5 that compiles p6 | 20:19 | |
lichtkind | TimToady: sorry but cant remember what was metholate too :( | 20:20 | |
TimToady: i searched shatlog i t seems a translator of rules into function calls right? | 20:21 | ||
mncharity: what is the difference between std redrun and std5run ? | 20:24 | ||
TimToady | a little distracted, because we're on the weekly phone call... | 20:25 | |
20:25
b_jonas joined
|
|||
lichtkind | allright | 20:27 | |
mncharity | lichtkind: back, | 20:43 | |
20:44
rindolf joined
|
|||
mncharity | src/perl6/STD.pm is the p6, declarative (rather than directly executable (currently)), beginning of a spec for the p6 grammar. misc/STD_red/'s STD_red_run and std.rb is a hand translated ruby version of STD.pm, which runs. it is thus | 20:45 | |
most similar to src/perl6/'s STD5_run, which uses cursor5 and gimme5 in the same directory, which instead mechanically translate STD.pm to running p5 code. | 20:46 | ||
this STD5 has been more focused on getting the real longest token parser story working, whereas STD_red has been more focused on getting to a usable parser quickly. | 20:47 | ||
there's also misc/winter_jig/STD/STD_extract, formerly in src/perl6/ , which grovels over STD.pm and dumps various information about it. | 20:48 | ||
metholate is equivalent to gimme5, but generates p6 rather than p5. it ran into difficulties working around pugs's p6 limitations. | 20:49 | ||
so the current STD5 work is easily accessed as cd src/perl6; ./STD5_run ... which will run cat STD.pm|./cheat|./gimme5 for you if needed. | 20:50 | ||
STD_red can be run by cd misc/STD_red; ./STD_red_run | |||
lichtkind totally confused :) | 20:52 | ||
mncharity | compared with the cheat plus gimme5 or metholate, STD_extract is a "closer" scrape of STD.pm. As in, as STD.pm changes, things STD_extract no longer recognize will show up in the "stuff left over I didn't recognize" pile. Whereas cheat+etc, take a more s/// approach, and so are more silently fragile. | ||
lichtkind: re confused, nifty :) opportunity. any particular part? | 20:53 | ||
lichtkind | mncharity: i will read you text several times and then ask :) | ||
mncharity | top level picture is src/perl6/STD.pm is a default grammar for the p6 language. challenge is to take this spec, and make it runnable. cheat with gimme5+cursor5, all in src/perl6/, make it runnable by converting it to p5. cheat with metholate, also in src/perl6/, make it runnable by converting it into p6 which pugs can run. | 20:55 | |
but the current focus of effort there is on the cheat with gimme5+cursor5 , which are together called STD5. | 20:56 | ||
20:56
zonkers joined
|
|||
mncharity | ./STD5_run EXPR -e '3+4' gives you a parse tree for '3+4'. It's rather an dirty tree, so there is also a ./STD5_run_post postprocessor, which cleans up the output a bit. they perhaps should be combined. but for now, its ./STD5_run EXPR -e '3+4'|./STD_run_post | 20:58 | |
20:59
thoughtpolice joined
|
|||
mncharity | but even then, the outputed parse tree is a bit ugly. hasn't been a focus. | 20:59 | |
the STD_red_run parse tree is much nicer. ./STD_red_run -e '3+4' | |||
lichtkind | mncharity: i know even of a version of std.pm that is part of rakudo | ||
mncharity | you can also get a parse tree from parrot's rakudo. assuming you've installed and built parrot and parrot's language/perl6, the easiest way to run it might be misc/winter_jig/sixen/sixcmd rakudo --target=parse . | 21:00 | |
lichtkind | mncharity: what exactly is cursor5 ? | ||
mncharity | hmm, though rakudo was broken a while back, not understanding -e , so it might have to be echo '3+4' > deleteme.pm; sixcmd rakudo --target=parse deleteme.pm | 21:01 | |
obra | TimToady: I prodded my filters but your mail looks like it never got to me | ||
lichtkind | mncharity: i dont want to get involved in p6 hacking, have myself a pretty large project, i just write about | ||
obra | But the reply just now did :) | ||
TimToady | thinks it's spam maybe? | 21:02 | |
mncharity | lichtkind: re just write about, ah well. :) | ||
obra | My spam filters didn't have it (and I actually archive all my spam, since I've had more than one false positive of the form "We would like to pay you $BIGNUM in exchange for your free software" ;) | 21:03 | |
But the new copy is here, so I'll not worry too much | |||
mncharity | re Cursor5, gimme5+cursor5, among other things, constitute a regex engine. Cursor5 is part of that. The "current parser state" i believe. | 21:04 | |
TimToady | oh, you got the resend? | ||
I misunderstood... | |||
quite possible that my ISP dropped the original for some reason | |||
lichtkind | mncharity: i maintain an extensive perl 6 tutorial and write articles regularly about perl 6 | 21:07 | |
mncharity | my current task is to increase the range of p6 STD_red_run generates a nice parse tree for, and then slap a backend on it. as elf_on_rakudo did for rakudo's (using a scrape of the --target=parse output), before it turned out rakudo's parsing is a bit too slow for the envisioned development path. | ||
s/rakudo's parsing is a bit too slow/rakudo's parsing was at the time a bit too slow/. It's been a few days - so perhaps that's changed. :) | |||
21:08
drjay joined
21:09
FurnaceBoy joined
|
|||
mncharity | lichtkind: yes, sorry about the "ah well". :) a most useful thing to. I'd just forgot you were in writing not coding mode, and was thinking, "yay! a potential coder!". the "ah well" was my, oh, nope. | 21:09 | |
TimToady | mncharity: did you ever get on the sixperl mailing list? | 21:10 | |
mncharity | re stories, did you ever link to them here? | ||
re mailinglist, any mailinglsit, "I hope not". | 21:11 | ||
lichtkind | mncharity: im not fluent enough with english to recognize such details imidiatly, im temted to hack on parrot but you know that would be the death of my child | ||
TimToady | low traffic, mostly just to review chromatic's phone notes before they're published | 21:12 | |
anyway, if you send chromatic a addr, I expect he can arrange for it somehow | |||
mncharity | found it. wiki.perl-community.de/bin/view/Wis...l6Tutorial and perl.net.au/wiki/Perl_6_Tutorial ? | 21:15 | |
lambdabot | Title: PerlCommunityWiki ōæ½xBB Wissensbasis ōæ½xBB Perl6Tutorial | ||
lichtkind | mncharity: yes thats my work | 21:17 | |
mncharity: but the auwiki moved to tpf wiki were i now started to translate the german | |||
mncharity | and the tfp seems empty. perl.net.au/wiki/?title=Perl_6_Tuto...oldid=9108 has the pre-empty content. | 21:18 | |
lambdabot | Title: Perl 6 Tutorial - PerlNet | ||
mncharity | and the german version is actually at wiki.perl-community.de/bin/view/Wis.../PerlTafel . sorry, didn't check them before posting. | 21:19 | |
lambdabot | Title: PerlCommunityWiki ōæ½xBB Wissensbasis ōæ½xBB PerlTafel | ||
lichtkind | mncharity: tpf wiki is here : www.perlfoundation.org/perl6/index....rl_tablets | ||
lambdabot | Title: Perl Tablets / Perl 6 | ||
lichtkind | but thats only beginning | 21:20 | |
i write also series of articles a different kind of tutorial for $foo magazine | |||
www.perl-magazin.de/#d38 | |||
lambdabot | Title: $foo - Perl-Magazin (Workshops, Module, News und vieles mehr) | ||
lichtkind | this will i also translate when i have time :) | 21:21 | |
mncharity | so, wiki.perl-community.de/bin/view/Wis.../PerlTafel , old snapshot perl.net.au/wiki/?title=Perl_6_Tuto...oldid=9108 , new www.perlfoundation.org/perl6/index....rl_tablets , and empty www.perlfoundation.org/perl6/index.cgi?tutorial . | ||
lambdabot | Title: PerlCommunityWiki ōæ½xBB Wissensbasis ōæ½xBB PerlTafel | ||
lichtkind | mncharity: what is your question? | 21:22 | |
mncharity | what's a "Tablets"/"tables"? chapter? section? /me goes to ask google... | ||
lichtkind | mncharity: i just wanted prevent namespace collision, in pugs svn is already a "tutorial" | 21:23 | |
mncharity | no question, just remembered I wanted to look at your intro, the last time you mentioned it. now had a chance to find and look at it. | ||
lichtkind | mncharity: and tablets is a hint to emerald tablets | ||
mncharity | translate.google.com/translate?u=ht...p;ie=UTF-8 | 21:24 | |
lambdabot | Title: Translated version of wiki.perl-community.de/bin/view/Wis...sis/PerlTa ..., tinyurl.com/37n455 | ||
lichtkind | mncharity: most work i done lately on articles which are in foo magazine but i have all rights to publish it freely | ||
mncharity: which i will do on perl6::doc which i do maintain | 21:25 | ||
mncharity | translate.google.com/translate?u=ht...p;ie=UTF-8 | ||
lambdabot | Title: Translated version of www.perl-magazin.de/#d38, tinyurl.com/2jn4p6 | ||
mncharity | after having provided the translated foo link, doesn't look like there's anything there. clicking on the link gets nothing. ah well. | 21:27 | |
lichtkind | mncharity: of course you have to buy am issue :) but like i said i will publish that freely | 21:28 | |
mncharity | google translated the tutorial's Tafel as Table... but that seems very odd. at least for us eng. | ||
lichtkind | mncharity: i would it trnslate also this way :) | 21:29 | |
mncharity: this week i just want to get finished my current 2 articles and handout writing of talk at last german perlworkshop | 21:30 | ||
mncharity: that was about somehing completely different but nevertheless important issue, desktop apps in perl | 21:31 | ||
mncharity: in our forum im also "the wxperl guy :)" | 21:33 | ||
mncharity | re Table, ok, but seems an error to me. chapter, section, topic... others. but "table" suggests a short, generally less than one page, <table></table>-like thing. | ||
lichtkind | mncharity: that impression i want to keep and also want it to hold it sorted and short but you know perl 6 is so much stuff it cant be just one table | 21:36 | |
mncharity | re wx, it will be fun to start adding gui support to p6. can wake up some of the old amulet-like constraint propagation stuff. NeXT DPS, etc. lots of deadish projects to scavenge nice ideas from :). | ||
lichtkind | mncharity: yeah wx on parrot would be a dream | 21:37 | |
21:37
Schwern joined
|
|||
lichtkind | for my project too | 21:37 | |
mncharity | "quick ref"? cheat sheet? like www.zenspider.com/Languages/Ruby/QuickRef.html | ||
lambdabot | Title: Ruby QuickRef | ||
lichtkind | mncharity: but still i dunno diff between STD_red and STD_red_run | ||
mncharity | oh, misc/STD_red/ is a directory. it contains std.rb, the ruby version of STD.pm, and STD_red_run, a small script which makes running it easier. | 21:38 | |
lichtkind | ah thanks | 21:39 | |
mncharity | svn.pugscode.org/pugs/misc/STD_red/ | ||
lambdabot | Title: Revision 20131: /misc/STD_red | 21:40 | |
pugs_svnbot | r20132 | putter++ | misc/STD_red: infix:<.> now works. also non-prelude typenames. | 21:47 | |
diff: dev.pugscode.org/changeset/20132 | |||
lambdabot | Title: Changeset 20132 - Pugs - Trac | ||
21:49
Limbic_Region joined
21:53
meppl joined
21:56
LimbicRegion joined
|
|||
zonkers | ok, i figured out python services wow. how do i share a variable across threads. | 22:01 | |
22:02
jrockway joined
22:05
wtge1 joined
|
|||
mncharity | oh, neat. '_' is now an <alpha>. | 22:09 | |
zonkers: :) wrong channel perhaps? | |||
pso.sourceforge.net/doc/pso-guide.html for the curious. | 22:11 | ||
lambdabot | Title: A quick guide to using pso | ||
mncharity | the SF one-liner is "pso- Python Service objects is a package that simplifies HTTP handlers: Built-in sessions. Write once run on modpython, modsnake, NASAPY, fastcgi, CGI. Easy interface to HTTP info. Simple, fast, robust and powerful extendable OO template parser." | 22:12 | |
wp says "Python Service Objects (PSO) is a software package that simplifies HTTP handlers. PSO was developed by Thanos Vassilakis in 1996, and was used for a series of first-generation internet casinos, including Caesars Palace, Can-Can, and LuckyNumbers. Later, it was used for the New York Stock Exchange's first internet-based service, the Specialist Portfolio (SPF 1998). SPF became the NYSE's third mainstream trading service." | |||
22:14
marmic joined
|
|||
mncharity wonders about defining '_' alpha if unicode does not(?). at least p5 [:alpha:] doesn't. but S05 says yes, to tally ho. | 22:14 | ||
s/to tally/so tally/ | 22:15 | ||
zonkers | mncharity: sorry | 22:17 | |
mncharity | zonkers: no problem. :) was interesting. | 22:21 | |
pugs_svnbot | r20133 | putter++ | [STD_red] support for for() and $_ . | ||
diff: dev.pugscode.org/changeset/20133 | |||
lambdabot | Title: Changeset 20133 - Pugs - Trac | ||
mncharity | TimToady: fyi, STD5 given "class {}\nclass {}" stops after the first 'class {}'. STD_red is behaving similarly, stopping with a 'two terms in a row' panic. | 22:27 | |
22:28
wtge1 left
|
|||
zonkers | i can't wait until perl 6 is out | 22:31 | |
spinclad | sounds like it needs to hallucinate a ';' at '}\n' | ||
22:31
justatheory joined
|
|||
Khisanth | Perl 6 on drugs? | 22:32 | |
spinclad <- (not here. elsewhere. really. need to be.) | |||
22:34
DarkWolf84 joined
|
|||
mncharity | zonkers: agreed | 22:36 | |
TimToady | the test in stdstopper is incorrect | 22:38 | |
should be testing against $Ā¢.ws_from, not $Ā¢.pos, I think... | 22:39 | ||
since $+endstmt is set to ws_from, which is before the newline | 22:40 | ||
mncharity | unrelated: given A.m().m() , one gets two infix:<.> %methodcall's, which don't have an assoc. so EXPR panics "Unknown associativity". perhaps methodcall assoc should be 'left'? | 22:41 | |
TimToady | infix:<.> is only testing for misuse of p6's concat | 22:42 | |
mncharity | re stdstopper, ah, ok. looking. | ||
TimToady | LTM should give .meth, but ordered rules may violate that | ||
mncharity | re '.', oh, hmm. | ||
oh, duh. it's token infix:sym<.> ( --> Methodcall) is <obs>. hmm... | 22:44 | ||
TimToady | real .meth is a postfix, in any case, not an infix | ||
so any real method would get eaten before <infix> ever gets a shot at it | |||
mncharity | hmm, so I wonder why EXPR is giving me infix:<.>... | 22:45 | |
TimToady | <post> isn't working right from expect_term? | ||
mncharity | yeah, neither .m() nor .m are parsing as postfix. oky, will debug. | 22:48 | |
so should there really be a token infix:sym<.> ( --> Methodcall) ? | 22:49 | ||
TimToady | well, it's a panic, so it doesn't really matter what it tries to coerce to. :) | 22:50 | |
the rest of it is okay | 22:51 | ||
probably should just leave the official return type unchanged though | 22:52 | ||
mncharity | puzzlement: how does A.m() get parsed? I'm not immediately finding a path which does the .m | 22:58 | |
STD5 doesn't parse it yet. | 22:59 | ||
(so i can't simply look at the STD5 tree) | |||
TimToady | expect_term calls post, post calls dotty, dotty calls dotty:sym<.> | 23:02 | |
dotty:sym<.> calls dottyop, dottyop calls methodop | |||
methodop calls ident | 23:03 | ||
mncharity | ah, oops. ok. | ||
23:12
OuLouFu joined
|
|||
mncharity | yay. joys of handwritten scanners. this probably means I should write out the translation invariants and do a review pass, rather than debugging the individual instances. oh joy. | 23:12 | |
TimToady | probably means you need to generate the scanner automatically :P | 23:19 | |
mncharity | sigh. yeah. rsn. :) | 23:21 | |
so make() replaces the entire current match, or just the scalar value of the current match? | 23:25 | ||
23:34
ikeda joined
|
|||
TimToady | just scalar value | 23:34 | |
mncharity | why does expect_term make()? | 23:36 | |
TimToady | to call nounphrase | ||
which compares precedence of pre vs post ops | 23:37 | ||
mncharity | right, but why? | ||
ah ok | |||
TimToady | because, while standard perl is not terribly ambiguous there, the user can define new prec levels | ||
mncharity | and the reason it goes in the scalar is... | 23:38 | |
TimToady | because it's the invocant :) | ||
and Match is derived from Capture | 23:39 | ||
mncharity | sigh | ||
ah well. it was boring being a tree. now a graph. | 23:41 | ||
TimToady | bbl & # errands | 23:42 | |
mncharity | cheers. thanks for the fish. | 23:43 | |
though the whole "smash the scalar value" still smells odd to me. | 23:44 | ||
23:55
ikeda joined
|
|||
mncharity | ah, the STD_red endstmt handling is unlikely to be working anyway. other than 'commas after class {}', elf_one.p6 parses. even if it is just a shell. declaring 'success for now'. next step, elf_on_STD_red, and a filled shell. | 23:55 | |
hmm, stuffed shells. dinner. & | 23:56 | ||
pugs_svnbot | r20134 | putter++ | [STD_red] A.m() now parses properly. infix:<.> is gone. fulltypename and expect_term give Match()s. | 23:57 | |
diff: dev.pugscode.org/changeset/20134 | |||
lambdabot | Title: Changeset 20134 - Pugs - Trac | ||
23:59
ikeda joined
|