% kjs has joined #parrotsketch % tewk has joined #parrotsketch % barney has joined #parrotsketch % allison has joined #parrotsketch % chromatic has joined #parrotsketch % jhorwitz has joined #parrotsketch Someone's going to have to run this; I have nothing to report and am on the phone for work. ok who's here? I'm not invited, but I'm here :-) particle and coke are on vacation kjs: do you have anything to report? well, I more or less finished the Pir compiler chain, which works pretty well :-) excellent! my report, for the log: - Implemented the final interface pieces for the Exceptions PDD. - Added tests to extend coverage for the features added in the PDD. - Made a few changes to the Exceptions PDD. Testing the new interfaces revealed they weren't as usable as they could be. Implemented the changed features. - Deprecated indexed access to exception attributes. - Worked on catching up with mailing list questions. - Now working on Concurrency PDD. EOR my report: I worked on PAST implementation over the weekend, but whatever cold/allergy crud has been affecting me in October is extending its run into November. however, yesterday and today have been much better and I'm working on it again now eor refaktored languages/scheme .eor others online now: jhorwitz? tewk? lurking today been out of touch for a while EOR any questions? what needs to be done for the release? it's still 2 weeks I think yes, release is in 2 weeks I should have past re-implementation and nqp done in the next couple of days yes, Nov 20 then I'll be focused on perl6 and helping migrating languages to new tools kjs: the usual patch application and bug fixing runs are in order close out as many tickets as we can I'm hoping to have much of that done before the release I'll have a look at the tickets I opened special attention this month to object-related issues many old object tickets may be closed now that the old object implementation is gone I have a question on the object implementation w.r.t. Type Ids I thought type ids were gone (verifying first that the same issues aren't repeated in new implementation) kjs: type IDs can't be entirely removed until the implementation of the PMC PDD in January they can be considered deprecated, though oki or, use discouraged pmichaud: i promised you a patch for past-pm a few weeks ago to support quoted type names, but never delivered. is that still relevant? jhorwitz: nope -- the new implementation can handle it i.e., the new past-pm doesn't use type ids at all my pirc/new compiler chain is an attempt to provide a replacement for IMCC. However, IMCC's code generating details are rather difficult, and I'm not sure if I can handle that. Any suggestions? sorry, the new past doesn't use type ids. past-pm uses type ids, but it'll be deprecated soon excellent kjs: do you mean generating PASM or generating bytecode? preferably both, but I meant bytecode I saw some code that checked for a prefix "_" for labels something that is really old I think take a look at the bytecode PDD, jonathan has a revamp of the generation code in order (bytecode production and reading) I think it'd be useful to know a bit more about the PIR->PASM mapping, and how IMCC currently works Does anybody work on compilers/bcg ? if the mapping is a straight 1 to n mapping (1 pir instr -> n pasm instr), that's easy barney: don't think so hasn't been any activity for long there kjs: there are a few places where it isn't a straight 1-to-n mapping, but they should be changed so it is consider that part of the spec so it should be added to the spec? Jonathan's the best one to ask about that. He and... jhorwitz? I forget exactly who, sorry, were working on PMCs that represent bytecode. not i didn't mdiep do something with PMCs? (just a vague recollection) kjs: PIR can also perform optimizations before the PASM/bytecode phase, but those should have identical behavior with unoptimized straight translation That may be. kjs: yes, the 1-to-n mapping can be added to the spec allison: right. It's kind of a big project to re-implement IMCC stuff; but I have the feeling it's necessary, because there are so many XXX and FIXME's and "this is ugly"s kjs: would you have time to work on an initial draft of the IMCC PDD? allison: I meant a concrete mapping of: "x.y()" => "set_args\ninvokecc\netc." Melvin always wanted to rewrite/refactor IMCC before it became the default compiler. every now and then I have some spare time (but I do need to finish my master's thesis :-/) understandable. I was just thinking that summarizing how it works now would be a good way for you to get familiar with it, and for others to pitch in their own understanding afk, reboot what should exactly be in the IMCC PDD? (and I take it you mean the PDD19?) pdd 19 is a specification of the PIR syntax ok. so you want a different pdd for the pir compiler? I'm more looking for the specification of our bytecode interpreter (including a couple of paragraphs on parsing PIR and PASM) it may simply go into the bytecode PDD ehm, that's Parrot :-) Which specifics of the bytecode interpreting do you have in mind? jonathan just mentioned he'll have more time soon, so I may sic him on it it's not all of Parrot, just one subsystem and, a fairly small subsystem at that chromatic: did you have a report? No progress. I'm not really clear on which part that is :-( is anyone blocking on anything? time and energy, here Ditto. kjs: what we need most for the moment is a cleaner way of generating bytecode, so let's focus on that with jonathan ok. I'm happy to help with that kjs: great How much of PIR can pirc handle right now? Is it just generating bytecode that it doesn't do yet? it's just a parser but it handles heredocs (also for macro expansion arguments) and multiple heredocs in macro/function calls so that's an improvement on imcc What does it produce from the parse? nothing I just finished the heredoc/macro parsing (still some loose ends but nothing difficult) so, now is more or less the time to add the semantic actions to output PASM for instance ... but it *could* produce PBC much more cleanly than IMCC does. sure! :) my first plan was to generate PASM, and have that parsed by a PASM grammar, just as an exercise, so that there is a clean PIR->PASM translation None of those options hurt my feelings. PIR->PASM has problems: lexicals and maybe .HLL barney: right, I think PASM needs a representation for that Agreed. If PASM and PBC are truly isomorphic, anyway. lexicals were the reason for generating PIR instead of PASM in languages/scheme I think once there's a clean pir->pasm translation, things can be optimized later but surely there must be a way to express it in pbc? Maybe we should rename PASM to cPIR, canonical PIR I mean, if Parrot can deal with lexicals and .HLL stuff, it must be present in the PBC, no? yes so, if there's no PASM representation of it yet, we'll have to think of it I guess One of the difficulties in that isomorphism is that PBC contains serialized PMCs. what do they do? I'd rather see a YAML dump of PBC, with PMC serialisation barney: how is YAML more itneresting than PASM? chromatic: the PBC contains serialized PMCs, but the PASM should contain the translated instructions for creating the PMCs (translated down from PIR, that is) translating from bytecode to PASM is another question isnt' that a 1 to 1 mapping? YAML is a tree structure PASM is linear barney: ok. is PBC tree-like? I mean, what would be the advantage? PBC is linear I think PBC is a tree, but I haven't really read the PDD if PBC is linear, and PASM too, that sounds like a match :) % chromatic has left chromatic!~chromatic@sub17-30.member.dsl-only.net barney: nope, it's a linear format with sectors for storing data in addition to sections for storing code instructions it's really, really low-level, closer to machine code than anything else which makes sense, since it's native code for a virtual machine allison: everything that can be expressed in PIR, is somehow stored in PBC? kjs: yes, with the exception of code sections that are run during compilation right, these are not stored in the PBC at all? that is, you have the option of specifying that some specific code sections should be run before the bytecode is produced and not stored in the bytecode right, :immediate, or :postcomp yes, iirc (the flag names haven't been clearly specd anywhere yet) % chromatic has joined #parrotsketch they are specd somewhere, but probably not in a pdd? kjs: not even that far http://www.parrotcode.org/docs/imcc/calling_conventions.html I guess it should be included in pdd19 pdd03 is most important imcc/calling_conventions.pod should disappear, replaced by pdd03 and pdd19 ok, the flags into pdd03 parts also go in the PASM PDD I'll do that now parts are out-of-date, so keeping them around is just going to bite someone anything else before we wrap u? up nothing here, thanks talk to you all next week bye % chromatic has left #parrotsketch % barney has left barney!~bernhard@p549A24A3.dip0.t-ipconnect.de % kjs has left kjs!~kjs@ip565fd420.direct-adsl.nl % jhorwitz has left jhorwitz!~chatzilla@pool-68-163-17-123.phlapa.east.verizon.net % contingencyplan has joined #parrotsketch