GSoC 4: Unsteady Ground

My work this week was slightly complicated by pmichaud changing PCT in master. Turns out that tracking changes in a method I already converted is harder than converting it in the first place. However, since NQP and Rakudo are already using the enhancements, I thought it valuable to merge them quickly. I'm mostly done, just hunting down some sneaky bugs.

I opened github issues on my fork in order to keep track of things I may want to remember/implement/fix. Everyone should feel free to add to the list, but nqp_pct issues only, please.

June 13 PAST::Compiler in NQP: Convert PAST::Compiler to NQP.

I'm down to 10 Q:PIR blocks out of 60ish subs and methods. Some of the Q:PIR blocks are going to remain for a bit because I'm not quite sure how to get NQP to deal with the fact that one of the methods is returning multiple values.

I've learned that the bootstrapping process leads to extra "fun" when debugging. I'm starting to bootstrap two or three times before actually calling a section of code "done". :-/ This does point out that PAST's test suite isn't 100% coverage.

I also haven't seen bacek in a while. Aloha hasn't seen him in a week or so either, so I'm guessing $life has caught up with him.

June 20 Design PAST to newPOST Conversions: Emphasis for this week is on design rather than code. A complete list of what PAST constructs map to which newPOST constructs will be needed to have a roadmap for the next few weeks.

I already know one of the more interesting things here will be the new POST::Register with the changes to PAST's register allocation. I may attempt to more-or-less just move the tempreg work into POST directly. There are also a fair number of push_pirop and load_directive type calls that add raw PIR. Finding the replacement for those is high on my TODO list for next week. (Once I finish this week, of course.)