The Hammer of the Gods…

The hammer of the gods will drive our ships to new lands,
To fight the horde, singing and crying: Valhalla, I am coming!

Led Zeppelin – Immigrant song

Well there, welcome.

I am here to tell you a little bit of my experience during my Google Summer of Code project.

And what is it about? The not despicable process of improving Pharo‘s Debugger. There’s a lot to be done, but me and my mentors think that it’s a very important task, being the debugger a tool to introspect the system and which provides (or would be able to provide) so much information… our true Hammer of the Gods.

So, first things first: the actual state of the art of the debugger.

There are already some things done: the old debugger was (is) quite a mess,  there wasn’t a separation between de UI and the model. So Pharo guys started a new debugger, with a new and fresh UI, separated from the model. The idea is to provide a robust, smart debugger model that can be attached to any UI you can think of; being the default the one made in Spec.

And here is where I came in 🙂  The first step towards a better debugger is, as you might realize, to continue cleaning up the code. As a part of it, there are also some features the old debugger had that are still missing in the new one, so they have to be added. For instance, at the moment I’ve added tests, and I’m adding support for handling post-mortem contexts (contexts that have no longer a process attached).

In that regard, I had to get to know the internals of the debugger. It’s proving to be an interesting challenge for me to think of processes and contexts and getting my hands into them, since I’m much more used to work with other abstractions, closer to the “bussiness logic”. Also I have to get to be friends with Spec, since my little incursions into UI design in smalltalk have all been done in Morphic.

And then, once we get the new debugger as good as the current one, comes the fun(nier) part: calling Heimdall to open the Bifröst.

But that’s another post’s tale 🙂

By clariallende