Camelia, the Perl 6 bug

IRC log for #perl6, 2008-03-19

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:25 jrockway_ joined #perl6
00:33 jrockway joined #perl6
00:56 jrockway_ joined #perl6
01:10 justatheory joined #perl6
01:14 meppl good night
01:16 lyokato_ joined #perl6
01:40 literal_ joined #perl6
01:45 hcchien joined #perl6
02:05 alester joined #perl6
02:06 alester joined #perl6
02:11 pbuetow joined #perl6
02:19 snooper joined #perl6
02:20 buu joined #perl6
02:21 buubot joined #perl6
02:59 eternaleye joined #perl6
04:38 nipotan joined #perl6
05:02 FurnaceBoy joined #perl6
05:21 thoughtpolice joined #perl6
05:30 marchs29 joined #perl6
05:36 zblaxell joined #perl6
05:37 marchs29 left #perl6
05:43 lyokato_ joined #perl6
06:39 Schwern joined #perl6
06:48 Schwern joined #perl6
06:58 Schwern joined #perl6
07:08 Schwern joined #perl6
07:11 jrockway_ joined #perl6
07:21 jrockway_ joined #perl6
07:46 zamolxes joined #perl6
07:48 Aankhen`` joined #perl6
07:49 baest joined #perl6
07:55 DemonScrypt joined #perl6
08:18 aindilis joined #perl6
09:00 masak joined #perl6
09:10 Foke2 joined #perl6
09:31 IllvilJa joined #perl6
10:44 avar joined #perl6
10:47 ruoso joined #perl6
11:00 simcop2387 joined #perl6
11:21 literal_ joined #perl6
11:26 chris2 joined #perl6
11:35 masak joined #perl6
12:20 samp99 joined #perl6
12:21 samp99 left #perl6
12:30 jrockway_ joined #perl6
12:34 Moss23 joined #perl6
12:55 LazyJim joined #perl6
13:59 eternaleye joined #perl6
14:02 leninmhs joined #perl6
14:05 elmex joined #perl6
14:15 elmex joined #perl6
14:20 pmurias joined #perl6
14:29 stevan_ joined #perl6
14:29 FurnaceBoy joined #perl6
14:39 Aankhen`` joined #perl6
14:40 zzzhc joined #perl6
15:02 TJCRI joined #perl6
15:16 justatheory joined #perl6
16:06 mncharity joined #perl6
16:08 mncharity a quiet backlog, ah well.  :)
16:13 elmex joined #perl6
16:14 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 mncharity writes a elf_b.p6 which is compiled by elf_a.rb into an executable standalone elf_b.p5, achieving backend bootstrap.
16:16 mncharity 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:18 mncharity oh, and pushing on clean support for additional backends, so the backend folks can start working towards more real backends/runtimes.
16:19 mncharity basically just elf_on_rakudo, but on the faster and more-STD parser of STD_red_run instead of scraped rakudo --target=parse.
16:21 Daveman joined #perl6
16:21 mncharity help, questions, critique, commentary, whatever, most welcome.
16:25 jrockway joined #perl6
16:27 mncharity cd src/perl6; ./STD5_run EXPR -e '3+3' | ./STD5_run_post
16:27 mncharity cd misc/STD_red; ./STD_red_run -e '3+4'
16:29 pmurias joined #perl6
16:30 mncharity STD5 is mostly just EXPR parsing, since its focus has been to get longest lookahead parsing working.
16:30 mncharity STD_red is intended to be fully general.  Getting there, one quirk at a time.
16:32 mncharity eg,  ./STD_red_run -e 'class A is B { has $.x; method m($y){$x+$y*3} }'   works.
16:32 mncharity but  3.foo  doesn't, though it does in STD5, so it's time for some comparative debugging.
16:34 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:35 mncharity i've been wondering if BEGIN blocks are needed at all (for getting to backend bootstrap).  any thoughts?
16:35 mncharity the metaprogramming is all happening externally, so no macros, nor BEGIN{} eval'ing code, so...
16:35 mncharity not sure what it would be used for.
16:35 pmurias i don't think they are needed for bootstrap
16:35 mncharity :)
16:36 mncharity "easiest way to accomplish something is to remove it from the todo list" :)
16:37 mncharity 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:40 pmurias i belive only good rules support is needed for bootstrap, the other stuff can be handled anything even mp6 or java
16:40 pmurias s/can/could
16:40 pmurias s/even/, even/
16:43 Lorn joined #perl6
16:44 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).
16:47 pmurias mncharity: why?
16:47 mncharity :), let's see...
16:47 mncharity makes it very easy to do non-local changes
16:48 mncharity discovering parser X needs a semicolon after each class {} for instance
16:49 mncharity 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.
16:51 mncharity very much a hack.  intended to have a life expectancy of days.  but to reach bootstrap in those days.
16:52 mncharity 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 mncharity it's sort of creating a DSL for the task at hand, namely achieving bootstrap.
16:56 pmurias with achieving bootstrap you mean running STD.pm
16:56 pmurias ?
16:56 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.
16:56 mncharity re achieving bootstrap,
16:59 mncharity 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 mncharity 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
17:01 mncharity more simply, just a cheat/gimme5 like hack, converting STD.pm to p6, might be an easier first step.
17:02 mncharity 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 mncharity 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
17:04 pmurias the regex part of STD is quite isolated
17:05 pmurias so it should be possible to run it before the rest
17:06 pmurias mncharity: what features you like to use when writing backends does mp6 lack?
17:06 pmurias * would like
17:06 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 mncharity 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 macae joined #perl6
17:10 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:10 mncharity re backends,
17:11 mncharity do you mean 'why not use mp6?', or 'what should be the feature list for making backend development easy?'
17:11 pmurias mncharity: i mean "why not use improved mp6"
17:13 pmurias well more "how much improvement would mp6 need in order to be suitable"
17:16 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:17 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...
17:18 TimToady 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:19 TimToady but notionally, it's just nested conditionals rather than nested maps
17:19 mncharity repeat: "which got more non-restricted exercise."
17:20 mncharity re 'would be done by now', /me does *daydreamy sigh*. ;)
17:21 * TimToady sighs but not so daydreamily... :)
17:21 jhorwitz joined #perl6
17:21 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
17:23 pmurias mncharity: mp6 is extemely primitive and would need to be replaced
17:23 TimToady (well, and treating closures as opaque, more or less... :)
17:26 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:26 Schwern joined #perl6
17:26 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 mncharity s/happy/are you happy/
17:27 TimToady well, I've been on record for some time that I think we need 40-50k tests for p6 in the long run
17:28 TimToady I haven't been worrying much about asts, because I figgered you were worrying about it.  :)
17:28 TimToady and worst case is a tree transformation pass
17:29 mncharity pmurias: re 'mp6 is extemely primitive and would need to be replaced', ah, ok.
17:29 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:30 TimToady hmm, surreal superlatives: "worsterester"
17:33 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 pmurias joined #perl6
17:33 pmurias mncharity: i mean mp6 rx
17:33 mncharity raw parse tree -> parse tree you wish you had (decrufting, stabilization, might go away someday) -> analytic ir
17:35 mncharity 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 TimToady even p5 confuses users when it tries to warn about concatenation that has been rewritten to $a.$b
17:37 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.
17:37 TimToady need to avoid that syndrome
17:39 TimToady yes, more like annotated parse tree than like bare semantic network
17:40 TimToady I'm allergic to forgetting things these days...
17:40 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 mncharity "ugly heavy analytic ir that I hope gets thrown away" has the advantage of clarity. ;)
17:42 mncharity 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:43 mncharity backlogging... yeah, lossless also gives you better error messages.
17:44 mncharity 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:44 TimToady cascading success doesn't have to be represented by non-empty lists under ratchet mode
17:44 mncharity :)
17:44 mncharity /does that mean/
17:45 TimToady gimme5 already does ratchet, but it's implied by all the spots that do ->[0] on a list of cursors
17:45 TimToady 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:46 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
17:47 TimToady since we really only need the cursors at sequence points like rule entry/exit
17:47 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
17:48 TimToady and then you're almost home free
17:49 TimToady assuming, as you say, the edit/compile cycle is not too ponderous
17:49 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.
17:50 TimToady um, that doesn't make sense.  STD.pm is already executable p6 (in theory)
17:50 mncharity yes but not (in practice)
17:51 TimToady do you mean subset executable by some back end?
17:51 TimToady that's pretty much an exact description of metholate :)
17:51 mncharity i'm still unclear on whether the guts of cursor/gimme5 are, or are envisioned as becoming, a general rx implementation.
17:52 TimToady yes, they are.
17:52 TimToady that's why metholate is called that...
17:52 TimToady it turns regexen into method calls that don't use regexen
17:53 TimToady and the intent is that the semantics be correct
17:53 TimToady performance is secondary, but occasionally thunk of
17:54 TimToady when you say "guts of g5" I presume you mean the algorithm, not the embodiment in p5 code.
17:54 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.  ?
17:55 TimToady I'd expect the bootstrapped STD to emit much the same metholated code from the regex bits
17:55 mncharity re gust, I was thinking both.  so algorithm, no code?
17:55 TimToady elf = ?
17:56 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 mncharity elf for metholate2, as pugs was for metholate.
17:57 mncharity or a different vision?
17:58 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..
18:00 mncharity there's  cheat|gimme5+cursor5    that eventually becomes a p6 -> match tree parser generated in p5.  now there's the second part,
18:00 mncharity the algorithms not code of gimme5 and cursor5 constitute a spec general rx engine.
18:01 mncharity so that needs to be extracted?  the algorithms rewritten in... p6?  p5?
18:01 TimToady so we can replace gimme5 with std5+p5emitter
18:02 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
18:04 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 TimToady but bootstrapped on the subset of p6 that STD uses
18:05 TimToady albeit perhaps with some chewing gum and bailing wire to emulate roles and such under p5
18:05 TimToady but then we could start moving to using Moose or some such
18:06 TimToady and the p5 emitter just gets more p6like, rather than just barebones what STD needs
18:06 mncharity STD.pm|cheat|gimme5+cursor5 == STD5_run.    STD.pm|STD5_run|something_new == p6parser2. ...
18:08 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:09 TimToady probably sufficient that STD|STD5|STD5 is stable to begin with
18:09 TimToady or maybe that's the same thing :)
18:10 TimToady 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 TimToady there's a metholation to my madness...
18:13 mncharity so the "something_new"... would be written in p5 or p6?
18:14 TimToady the emitter could be either, I presume
18:15 Psyche^ joined #perl6
18:15 TimToady could even be bootstrapped in p6 with a g5ish s/// approach
18:15 mncharity actually, has to be p5, unless you've been... eep
18:16 TimToady there's this huge advantage to the fact that p5 and p6 are closely related enough that you can do that :)
18:16 TimToady it's a really big lever--every time I change STD.pm, gimme5 can usually already translate that to p5
18:16 mncharity yeah.  perhaps i should have said <rx_engine+s///-based-p6-compiler​-and-emitter_to_p5+grammar_fudge>
18:17 TimToady there are many shades of purple
18:18 mncharity but STD5 doesn't actually itself _use_ parsed p6 at any point, no?
18:18 TimToady it does in the regexen
18:18 mncharity ah
18:19 TimToady that's what I mean when I say the regex parser in gimme5 is really a real parser
18:19 TimToady close to what STD does itself, albeit subsetted
18:19 mncharity so if I changed the Regex section of STD.pm, gimme5 would break?
18:19 TimToady no
18:19 mncharity or it's an independent, written in p5, 'real parser'?
18:19 TimToady p5
18:19 rindolf joined #perl6
18:20 TimToady that would be first step of the gimme->STD tranformation, to use STD's regex parser instead of gimme5's
18:20 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.
18:20 TimToady so don't even really need EXPR for that
18:22 TimToady except in a rudimentary fashion to parse the expressions in <EXPR(%additive)> and such
18:23 TimToady and of course closures remain opaque strings to be fed to the s/// engine at that point
18:24 TimToady the s/// engine doesn't have to be perfect, just good enough long enough :)
18:24 TimToady which is why I don't mind installing temporary # end class annotations in STD to help it along
18:25 TimToady and occasionally warp the p6 code into something slightly more s///able
18:25 TimToady (trying to stay officially p6 though)
18:26 TimToady once we have a real bootstrap we can remove such infellicities at our leisure
18:26 TimToady no rush, as long as it's officially p6 code, and as long as we can stand the klunkiness
18:27 TimToady the next best thing to removing a todo is deferring it till tomorrow. :)
18:27 mncharity ok.  so STD5 is a is p6 dialect implemented in p5, with s/// based emitting, whose dialect encompasses... pause
18:27 mncharity lol
18:27 tobeya joined #perl6
18:28 mncharity encompasses externally conditioned STD.pm, whose purpose is... to be able to create a match tree for STD.pm.
18:28 TimToady s///-based initially, but not by continued necessity
18:30 TimToady the emitter can piecemeal switch from paying attention to ~$/ to paying attention to $/{}
18:30 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?
18:32 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 TimToady like rakudo, assuming it continues to progress
18:35 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:37 TimToady I'm certifiably organic.  :)
18:39 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:39 TimToady hmm, I guess we're daylight savings time now, so the phone call is still more than an hour
18:40 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 TimToady 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 TimToady and I probably changed some things in cheat that metholate was relying on, but using a STD front end would fix that
18:43 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:43 TimToady correct, metholate doesn't have LTM yet
18:43 TimToady so basically we're talking backtranslation from gimme5 to a new "metholate"
18:44 TimToady or call it "gimme6"
18:44 mncharity :)
18:44 TimToady won't be difficult to do that translation, I think
18:44 TimToady in general p6 is slightly more powerful than p5 :)
18:44 cmarcelo joined #perl6
18:45 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 gbacon joined #perl6
18:46 mncharity hmm
18:46 TimToady you think in bullets, I think in bullwhips :)
18:47 mncharity I guess one question is how separable the s/// based p6 handling is from the rx engine, or whether they are mixed together.
18:47 TimToady they both go crack though
18:48 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:48 TimToady typologically they're quite distinct, since you only ever use s/// on strings, not objects
18:49 mncharity yes, well, but.  anyway. :)
18:49 mncharity oky
18:49 TimToady gimme5 makes an artifical distinction between line-based translation and shorter segments, and the regex engine only uses the non-line-based, iirc
18:50 TimToady and rule recognition is only line-based currently, so we don't do anything with embedded regexen
18:50 mncharity ok
18:51 TimToady that fixes itself as soon as we replace gimme5 with STD, presumably
18:56 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 mncharity ?
18:58 mncharity seems an easier second step than expanded s///-based p6 compilation.
18:58 TimToady ENOCLUE, my pert charts only go out about one step  :)
18:59 mncharity :)
19:00 mncharity but the vision is definitely "get the parse tree, then start using it", yes?
19:00 TimToady I don't know if it's a vision, more like the tune from Close Encounters
19:01 TimToady 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:02 mncharity CE of the P6 Kind
19:03 mncharity "he suddenly started making piles of mashed...code at he dinner table?!?"
19:03 mncharity *the
19:03 TimToady well, and my unchecked-in code is different yet again...
19:03 mncharity (movie reference - mashed potatoes look like dreamt of mountain)
19:04 TimToady yes, got it
19:04 TimToady 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:05 TimToady six channel sound being a new thing at the time
19:06 mncharity one thing OLPC channels teach - annotate culture-specific references, or lose.
19:06 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
19:07 mncharity re allusions, right :)
19:07 mncharity oky
19:07 TimToady and you can't always annotate everything, or you end up with the government
19:08 TimToady or xanadu, neither of which works...
19:09 TimToady 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:11 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:14 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 alester joined #perl6
19:17 TimToady but then many more algorithms will be easily proven to be trival  :)
19:18 mncharity "proven" at a few 100$US/hr.
19:18 mncharity nice in theory, kills startups in practice.
19:18 TimToady better than than a few $1M/violation
19:18 TimToady *that
19:20 TimToady 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 TimToady ???
19:21 TimToady profit
19:21 rindolf TimToady: is xanadu that hypertext thing?
19:21 TimToady *nod*
19:22 rindolf TimToady: wasn't udanax released a while ago?
19:22 TimToady too little, too late :)
19:22 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.
19:23 TimToady they needed to figure out the business model of "The first one's free, kid" before the web did.
19:23 cathya joined #perl6
19:23 TimToady and they didn't
19:23 PerlJam xanadu was from like 1969 or something wasn't it?
19:23 TimToady I wonder if I can patent a method of breaking the patent system?
19:24 TimToady don't know exactly--it had a good long run
19:24 SubStack there's loads of prior art for extortion
19:25 TimToady indeed, it's hard to stop paying protection money...
19:25 TimToady at least, if you value your kneecaps..
19:25 mncharity http://en.wikipedia.org/wiki/Project_Xanadu
19:25 lambdabot Title: Project Xanadu - Wikipedia, the free encyclopedia
19:27 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 mncharity 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...
19:29 TimToady well, arguably xanadu fell victim to the converse of that, expressed these days as YAGNI
19:30 mncharity http://c2.com/xp/YouArentGonnaNeedIt.html
19:30 lambdabot Title: You Arent Gonna Need It
19:31 PerlJam TimToady: but the allure of that "pleasure dome" keeps people showing up
19:31 mncharity lol
19:31 TimToady Annotations Я Us
19:31 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.
19:33 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...
19:34 PerlJam I'd say that it is.
19:34 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".
19:34 TimToady eventually your indexes get very complex if you have to remember everything
19:35 PerlJam TimToady: google doesn't seem to have a problem with it yet :)
19:35 TimToady google is just faking it
19:35 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.
19:35 TimToady how does your GC know when the last one goes away?
19:37 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:37 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
19:37 mncharity recently, than all the old stuff combined.
19:38 TimToady "Look on my works, and despair!" is not sufficient technology to do it.  :)
19:38 TimToady and as I say, it's not the info itself, but the multi-way indexing that doesn't scale
19:38 PerlJam I don't think we're quite ready to start building the encyclopedia galactica.
19:39 TimToady battlestar first...
19:39 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:39 TimToady there are many definitions of "keep"
19:39 PerlJam mncharity: and who would *Ever* need more than 64K of RAM?
19:40 TimToady I don't doubt that the vatican library keeps many interesting documents that I'll never see in my lifetime ;)
19:40 * mncharity pictures the rfp on the deathstar.  If the weight of the spec and docs exceeds the weight of the aircraft, then...
19:40 TimToady good thing they have antigrav tech
19:41 rindolf mncharity: what is rfp?
19:41 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:41 TimToady "That's no moon!  That's a Word document!"
19:41 PerlJam rindolf: request for proposals
19:42 TimToady Please give me a list of everyone who has photographed Mt Rushmore, ever...
19:42 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:42 lichtkind joined #perl6
19:42 TimToady or, when we're all storing our visual logs permanently, who have even looked at Mt Rushmore
19:43 TimToady or a picture of Mt Rushmore
19:43 TimToady not even the universe tries to keep track of the relationship of everything to everything else
19:43 PerlJam mncharity: as long as the ratio of content creators to storage space remains as it is.
19:44 PerlJam TimToady: we don't know that it isn't squirrelled away in another unseen dimension or something :P
19:44 TimToady I keep telling you, it's not the content that is the problem
19:44 TimToady This Was Your Life--Chick Publications
19:44 PerlJam TimToady: at some point it's the links that are the content.
19:45 mncharity re ratio, or cost to content creators of content creation, compared with the cost of content retention by content creators.
19:45 mncharity to be said 5 times fast
19:45 PerlJam heh, I had trouble reading it just once, let alone saying it
19:45 TimToady In space, no one can hear you scream content.
19:46 TimToady you're falling way behind on your annotations, mncharity :P
19:46 TimToady but then, that supports my theory.  :)
19:48 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:48 * PerlJam can't help but think of the shining every time he sees STD_red_run
19:49 mncharity lol.  ouch.
19:49 mncharity ah well.  name and code gets tossed as soon as STD5 exists.
19:51 mncharity one of the nice things about bootstrap.  you have less worry about people suffering decades hence from your thinkos and name choices. :)
19:57 mncharity TimToady: anything special about infix:<.> parsing come to mind?   infix:<***> works fine, generating a Methodcall.  but not dot.  hmm...
19:57 mncharity this on STD_red_run.  STD5_run works. :/
19:58 mncharity STD_red isn't quite synced any more.
19:58 TimToady phone in 1
19:59 PerlJam TimToady: If Pm shows up give him a hard time for talking on the phone while he's ostensibly on his honeymoon  :)
19:59 TimToady lol
20:00 TimToady heh, busy!
20:01 TimToady got thru second time...
20:01 mncharity ah, post() is breaking it.  let's see why...
20:12 marmic_ joined #perl6
20:14 barney joined #perl6
20:14 meppl joined #perl6
20:18 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:21 lichtkind TimToady:  i searched shatlog i t seems a translator of rules into function calls right?
20:23 lichtkind 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:24 b_jonas joined #perl6
20:26 lichtkind allright
20:42 mncharity lichtkind: back,
20:43 rindolf joined #perl6
20:45 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:46 mncharity 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 mncharity 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:48 mncharity 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 mncharity metholate is equivalent to gimme5, but generates p6 rather than p5.  it ran into difficulties working around pugs's p6 limitations.
20:49 mncharity 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 mncharity STD_red can be run by  cd misc/STD_red; ./STD_red_run
20:51 * 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.
20:52 mncharity lichtkind: re confused, nifty :)  opportunity.  any particular part?
20:53 lichtkind mncharity: i will read you text several times and then ask :)
20:55 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 mncharity but the current focus of effort there is on the  cheat with gimme5+cursor5  , which are together called STD5.
20:55 zonkers joined #perl6
20:57 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 thoughtpolice joined #perl6
20:58 mncharity but even then, the outputed parse tree is a bit ugly.  hasn't been a focus.
20:58 mncharity the STD_red_run parse tree is much nicer.   ./STD_red_run -e '3+4'
20:59 lichtkind mncharity:  i know even of a version of std.pm that is part of rakudo
20:59 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 ?
21:00 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:00 obra TimToady: I prodded my filters but your mail looks like it never got to me
21:00 lichtkind mncharity: i dont want to get involved in p6 hacking, have myself a pretty large project, i just write about
21:01 obra But the reply just now did :)
21:01 TimToady thinks it's spam maybe?
21:02 mncharity lichtkind: re just write about, ah well.  :)
21:02 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 obra But the new copy is here, so I'll not worry too much
21:03 mncharity re Cursor5, gimme5+cursor5, among other things, constitute a regex engine.  Cursor5 is part of that.  The "current parser state" i believe.
21:03 TimToady oh, you got the resend?
21:03 TimToady I misunderstood...
21:04 TimToady quite possible that my ISP dropped the original for some reason
21:06 lichtkind mncharity: i maintain an extensive  perl 6 tutorial and write articles regularly about perl 6
21:06 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.
21:07 mncharity 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:07 drjay joined #perl6
21:08 FurnaceBoy joined #perl6
21:08 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?
21:10 mncharity re mailinglist, any mailinglsit, "I hope not".
21:10 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
21:11 TimToady low traffic, mostly just to review chromatic's phone notes before they're published
21:11 TimToady anyway, if you send chromatic a addr, I expect he can arrange for it somehow
21:14 mncharity found it.  http://wiki.perl-community.de/bin​/view/Wissensbasis/Perl6Tutorial and http://perl.net.au/wiki/Perl_6_Tutorial ?
21:14 lambdabot Title: PerlCommunityWiki � Wissensbasis � Perl6Tutorial
21:16 lichtkind mncharity: yes thats my work
21:16 lichtkind mncharity: but the auwiki moved to tpf wiki were i now started to translate the german
21:17 mncharity and the tfp seems empty.  http://perl.net.au/wiki/?title=​Perl_6_Tutorial&amp;oldid=9108  has the pre-empty content.
21:17 lambdabot Title: Perl 6 Tutorial - PerlNet
21:18 mncharity and the german version is actually at http://wiki.perl-community.de/b​in/view/Wissensbasis/PerlTafel .  sorry, didn't check them before posting.
21:18 lambdabot Title: PerlCommunityWiki � Wissensbasis � PerlTafel
21:18 lichtkind mncharity: tpf wiki is here : http://www.perlfoundation.org​/perl6/index.cgi?perl_tablets
21:18 lambdabot Title: Perl Tablets / Perl 6
21:19 lichtkind but thats only beginning
21:19 lichtkind i write also series of articles a different kind of tutorial for $foo magazine
21:19 lichtkind http://www.perl-magazin.de/#d38
21:20 lambdabot Title: $foo - Perl-Magazin (Workshops, Module, News und vieles mehr)
21:20 lichtkind this will i also translate when i have time :)
21:20 mncharity so,  http://wiki.perl-community.de/b​in/view/Wissensbasis/PerlTafel , old snapshot http://perl.net.au/wiki/?title=​Perl_6_Tutorial&amp;oldid=9108 , new  http://www.perlfoundation.org​/perl6/index.cgi?perl_tablets , and empty http://www.perlfoundation.o​rg/perl6/index.cgi?tutorial .
21:20 lambdabot Title: PerlCommunityWiki � Wissensbasis � PerlTafel
21:21 lichtkind mncharity: what is your question?
21:21 mncharity what's a "Tablets"/"tables"?   chapter?  section?  /me goes to ask google...
21:22 lichtkind mncharity: i just wanted prevent namespace collision, in pugs svn is already a "tutorial"
21:22 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.
21:22 lichtkind mncharity: and tablets is a hint to emerald tablets
21:23 mncharity http://translate.google.com/translate?u=​http%3A%2F%2Fwiki.perl-community.de%2Fbi​n%2Fview%2FWissensbasis%2FPerlTafel&amp;​langpair=de%7Cen&amp;hl=en&amp;ie=UTF-8
21:23 lambdabot Title: Translated version of http://wiki.perl-community.de​/bin/view/Wissensbasis/PerlTa ..., http://tinyurl.com/37n455
21:23 lichtkind mncharity: most work i done lately on articles which are in foo magazine but i have all rights to publish it freely
21:24 lichtkind mncharity: which i will do on perl6::doc which i do maintain
21:24 mncharity http://translate.google.com/translate?u=ht​tp%3A%2F%2Fwww.perl-magazin.de%2F%23d38&am​p;langpair=de%7Cen&amp;hl=en&amp;ie=UTF-8
21:24 lambdabot Title: Translated version of http://www.perl-magazin.de/#d38, http://tinyurl.com/2jn4p6
21:26 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.
21:28 lichtkind mncharity: i would it trnslate also this way :)
21:30 lichtkind mncharity:  this week i just want to get finished my current 2 articles and handout writing of talk at last german perlworkshop
21:30 lichtkind mncharity: that was about somehing completely different but nevertheless important issue, desktop apps in perl
21:32 lichtkind mncharity: in our forum im also "the wxperl guy :)"
21:32 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.
21:35 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:35 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 :).
21:36 lichtkind mncharity: yeah wx on parrot would be a dream
21:36 Schwern joined #perl6
21:36 lichtkind for my project too
21:36 mncharity "quick ref"?  cheat sheet?  like http://www.zenspider.com/La​nguages/Ruby/QuickRef.html
21:36 lambdabot Title: Ruby QuickRef
21:37 lichtkind mncharity: but still i dunno diff between STD_red and STD_red_run
21:37 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 http://svn.pugscode.org/pugs/misc/STD_red/
21:39 lambdabot Title: Revision 20131: /misc/STD_red
21:47 pugs_svnbot r20132 | putter++ | misc/STD_red: infix:<.> now works.  also non-prelude typenames.
21:47 pugs_svnbot diff: http://dev.pugscode.org/changeset/20132
21:47 lambdabot Title: Changeset 20132 - Pugs - Trac
21:49 Limbic_Region joined #perl6
21:53 meppl joined #perl6
21:55 LimbicRegion joined #perl6
22:00 zonkers ok, i figured out python services wow.  how do i share a variable across threads.
22:02 jrockway joined #perl6
22:04 wtge1 joined #perl6
22:08 mncharity oh, neat.  '_' is now an <alpha>.
22:08 mncharity zonkers: :)  wrong channel perhaps?
22:10 mncharity http://pso.sourceforge.net/doc/pso-guide.html for the curious.
22:10 lambdabot Title: A quick guide to using pso
22:11 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:11 mncharity 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:13 marmic joined #perl6
22:14 * mncharity wonders about defining '_' alpha if unicode does not(?).  at least p5 [:alpha:] doesn't.  but S05 says yes, to tally ho.
22:14 mncharity s/to tally/so tally/
22:16 zonkers mncharity: sorry
22:20 mncharity zonkers: no problem. :)   was interesting.
22:20 pugs_svnbot r20133 | putter++ | [STD_red] support for for() and $_ .
22:20 pugs_svnbot diff: http://dev.pugscode.org/changeset/20133
22:20 lambdabot Title: Changeset 20133 - Pugs - Trac
22:26 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 wtge1 left #perl6
22:30 zonkers i can't wait until perl 6 is out
22:30 spinclad sounds like it needs to hallucinate a ';' at '}\n'
22:30 justatheory joined #perl6
22:31 Khisanth Perl 6 on drugs?
22:31 * spinclad <- (not here. elsewhere. really. need to be.)
22:33 DarkWolf84 joined #perl6
22:35 mncharity zonkers: agreed
22:38 TimToady the test in stdstopper is incorrect
22:39 TimToady should be testing against $¢.ws_from, not $¢.pos, I think...
22:40 TimToady 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:41 mncharity re stdstopper, ah, ok.  looking.
22:41 TimToady LTM should give .meth, but ordered rules may violate that
22:41 mncharity re '.', oh, hmm.
22:43 mncharity oh, duh.  it's token infix:sym<.> ( --> Methodcall) is <obs>.  hmm...
22:43 TimToady real .meth is a postfix, in any case, not an infix
22:44 TimToady so any real method would get eaten before <infix> ever gets a shot at it
22:44 mncharity hmm, so I wonder why EXPR is giving me infix:<.>...
22:44 TimToady <post> isn't working right from expect_term?
22:47 mncharity yeah, neither .m() nor .m  are parsing as postfix.  oky, will debug.
22:48 mncharity so should there really be a  token infix:sym<.> ( --> Methodcall)  ?
22:50 TimToady well, it's a panic, so it doesn't really matter what it tries to coerce to. :)
22:50 TimToady the rest of it is okay
22:51 TimToady probably should just leave the official return type unchanged though
22:58 mncharity puzzlement: how does A.m() get parsed?  I'm not immediately finding a path which does the .m
22:58 mncharity STD5 doesn't parse it yet.
22:58 mncharity (so i can't simply look at the STD5 tree)
23:01 TimToady expect_term calls post, post calls dotty, dotty calls dotty:sym<.>
23:01 TimToady dotty:sym<.> calls dottyop, dottyop calls methodop
23:02 TimToady methodop calls ident
23:02 mncharity ah, oops.  ok.
23:11 OuLouFu joined #perl6
23:11 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:18 TimToady probably means you need to generate the scanner automatically :P
23:20 mncharity sigh.  yeah.  rsn. :)
23:24 mncharity so make() replaces the entire current match, or just the scalar value of the current match?
23:34 ikeda joined #perl6
23:34 TimToady just scalar value
23:35 mncharity why does expect_term make()?
23:36 TimToady to call nounphrase
23:36 TimToady which compares precedence of pre vs post ops
23:36 mncharity right, but why?
23:37 mncharity ah ok
23:37 TimToady because, while standard perl is not terribly ambiguous there, the user can define new prec levels
23:37 mncharity and the reason it goes in the scalar is...
23:37 TimToady because it's the invocant :)
23:38 TimToady and Match is derived from Capture
23:38 mncharity sigh
23:40 mncharity 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 mncharity though the whole "smash the scalar value" still smells odd to me.
23:54 ikeda joined #perl6
23:55 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 mncharity 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:56 pugs_svnbot diff: http://dev.pugscode.org/changeset/20134
23:56 lambdabot Title: Changeset 20134 - Pugs - Trac
23:58 ikeda joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs