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!