GSoC 1: On Your Marks, Get Set

Wait, why are you running already?

May 24 GSoC Start Date

Technically, the Summer of Code starts today. But since school was finished last week, I started digging in early. My blog last Friday had a few mini-goals in it:

  • Examine current state of nqp_pct: Bacek's work here is contained in the compilers/pct/src/POST directory. The format and design of these classes are in large part what I'm basing my new work on.
  • Investigate t/compilers/pct: I poked around in here a little bit, but not too much. As it turns out, PCT gets exercised pretty well by the build process alone.
  • Figure out the build process: This turned out to be a bit tougher than I expected. Parrot generates a lot of its Makefiles in Configure.pl and has little snippets as Rules.mak and Defines.mak in various directories. I've figured it out enough to get by for now.

I also merged master into nqp_pct to get the latest goodies. There was only a single conflict in the entire thing, related to a bugfix for TT #821. I ported that into NQP, then finished the merge.

I also discovered an interesting circular dependency. I'm implementing PAST in NQP, but NQP uses PAST. I've committed nqp-setting.pir into the repository to help break the deadlock, which seems to have helped a lot.

May 30 PAST NQP Framework: Convert PAST into NQP-based files via Q:PIR constructs. This will involve splitting Node.pir into separate files for each class, providing a NQP structure for each sub and updating the build framework.

Is that all I said I'd do this week? Huh. Well technically, I already did that. I may have to admit I was a bit pessimistic in my estimates for the beginning of the project. But on the other hand, bacek hasn't gotten back to me about the code yet so there may still yet be changes coming. Also, if I do get ahead, that just leaves more time at the end of summer to get more features in.

I'm started converting PAST::Compiler into a similar framework. I expect this to take a while longer than the nodes since it has not only a lot more code but also more complex code. When I finish that, I plan to start hacking out Q:PIR blocks wherever I can. This will take me well into my goal for week 3.

I have a friend moving into my house this weekend, which will likely occupy me Sunday & Monday. But given my progress so far, losing a couple days likely won't hurt and I'll definitely be around by next Tuesday's #parrotsketch.