And So Ends the Flight of the Honey Bee

Actually, I suppose the flight has really just begun. It's true that GSoC is nearly at its end but, ironically enough, it doesn't really feel like the end but more of a new beginning. A new debug data format is in the works and it has so much potential!

This new debug data format is very exciting for me. Not only does it mean that I could do a complete overhaul of HBDB but it also opens up the door to a whole new world of possibilities for other analysis tools. For example, profiling and code instrumentation. I would really like to have these tools integrated into HBDB as a profile command. It could take an argument specifying what type of profiling to do like profile sample for program counter sampling or profile instrument for code instrumentation. In fact, HBDB could turn into just one big "anything on Parrot" analysis tool. There's so many possibilities!

At the moment, I'm done picking out the bits and pieces I like from DWARF and have begun exploring PCT to gather potential ideas on how to implement this. Tomorrow, I'm going to head over to #gcc to see how they've implemented DWARF. I think it's going to be a multi-stage process so the natural flow of control isn't going to change that much. That is, PAST still goes to POST still goes to PIR still goes to PBC except a little extra data is going to be tagging along with it. Each compilation stage would generate as much information as possible (according to the specification) and then the next stage would "fill in the gaps" with information the higher stages don't know about. I could be completely off but that's just how I picture it happening.

Since generating debug data creates a lot of overhead during compilation and increases the size of the executable, traditional compilers only generate debug data when it's explicitly told to do so by the user; usually with a command-line switch. However, since PCT is more of a compiler framework, we're going to need some way to programmatically indicate that debug data should be generated. I'm not really sure how to do this though.

While all this is great, I'm still having trouble getting people on board with this. I've had some really positive feedback regarding the idea but I really want to start getting down to business. I've been able to get most of the initial design done myself since all I really had to do was borrow large chunks from DWARF. But there's still a lot of PCT territory that's unknown to me and that's where I need others to swoop in and help.

So even though GSoC will soon be over, it's not really going to phase me. I'm still going headstrong and don't plan on stopping anytime soon. :)