Blog Closed

This blog has moved to Github. This page will not be updated and is not open for comments. Please go to the new site for updated content.

Tuesday, May 19, 2009

GC and Other Miscellaneous Cleanups.

Spent most of my time this weekend working on more GC cleanups. The work I talked about previously was in improving the API, today I am working to clean up everything behind the curtain. It wasn't without it's bumps, but I think all this cleanup work is having a real effect on the quality of the GC, and the ability for us to eventually implement a better core for it. There are still some warts here and there, and I'm perpetually unhappy that several unused and unworking code files can't be deleted yet, but it is getting better.

Today is the Parrot 1.2 release, and whenever a release comes up on the horizon I basically put all my work on hold. I don't want to be committing changes to trunk except bug fixes, and I know branches tend to get merged in before or after a release, so I try not to have one of those outstanding to avoid merger messes. I do my testing, report bugs, and do what I can to clean up low-hanging bug tickets.

One particular ticket that had been stuck in my craw was a problem about subclassing an ExceptionHandler with a PIR-defined type. I had been examining the issue in the debugger for a while without finding anything that looked too out-of-the-ordinary. Finally yesterday I had my epiphany: The throw routine was attempting to access a non-inherited attribute in a way that wasn't throwing an exception. I added in a small fix to avoid this and magically the test program started running as expected. There are definitely some limitations to this method of course, but it's a step in the right direction. It's worth noticing here that if the attribute in question was a Context PMC instead of being a struct Parrot_Constext *, the attribute would be inheritable and everything would have worked as expected without much change. So that's more impetus for us to get that work under way ASAP.

I'm the release manager for June, and will be pushing 1.3 out the door on the 16th. A few more GC fixes for me to tackle after the release, and a few other grandios plans at the top of my task list are also scheduled for June. Plus, I'm going to be at YAPC. June is going to be quite the busy month for me!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.