Sunday, May 28, 2006

A first tiny step

Yesterday night I managed to do it: modify the beast, compile, and test my changes!

The goal was to obtain the closure type of a HValue, the internal datatype representing linked BCOs (bytecode objects) used by ghci. It was a bit annoying to get there, because it involved
  • unsafeCoerce# (aka the Blunt Instrument)
  • fiddling with pointers
  • and going down to C-land.
But it was actually a piece of cake!

Visit my darcs repository if you want to see the code

Saturday, May 27, 2006

I should be coding ...

...instead of posting here, but I guess I can use a few minutes to briefly introduce the SoC project I am working on.

Haskell is a beautiful, lazy functional programming language, and GHC is its compiler. We (that's me and my headache) are working in a easy to use, simple, bare to the bones debugger based on GHC, or GHC-interactive to be more specific. How come there isn't a debugger for Haskell yet?

Well, of course there are debuggers, and they are far more advanced than the one we are aiming at. See for instance the Hat tracer. The main problem is that they are outdated, since they cannot keep up with the evolutional speed of Haskell. Haskell 98 is the standard, but every new version of GHC sets the current status of the language, implementing several (lots of) experimental extensions. Haskell research community is enormously active.

As a result, you are restricted to a (bigger or smaller) subset of the language if you want to use one of these debuggers. Our goal is to build on top of the very own GHC machinery so that our debugger will never restrict you or get outdated. And to keep it simple.

Wish us good luck :)
(ok, I swear the jokes about my headache end here)

PS: Just to clarify, the debugger is not to my credit. I am only doing on a tiny part, building on top of the work of David Himmelstrup, my mentor (poor soul).

Friday, May 26, 2006

A Hell of a week

This one was an all around shiny week which started all wrong. On Monday I had a pretty serious bike accident. In fact I can't remember anything about it: I hit my backhead hard on the ground and lost my conscience for a few seconds. Luckily there were gentle peasants around to help me, and I managed to regain my feet with a few bruises, an almost-broken rib and sore knees.
Because of the head trauma I was feeling some strong dizziness periods, so I have spent some time in the hospital passing tests, until yesterday they found that all I have is this. Phew! Good to know that my brain survived! (though it is the same brain that had a stupid bike accident on Monday in the first place)

On Wednesday morning, before my bike was stolen some hours later, I got accepted for Google Summer of Code, on a very interesting project for Haskell. La ostia! The funny thing is that many people in my research group found it out before than myself, reading it in a post to the Haskell list. It rocks to have this sort of group mates!
I'm a bit scared with the perspective, because until I get some vacation time in July time will have to be shared between work on SoC, PhD courses and PhD work, so it is going to be a tight schedule.

On another topic entirely, my dad is progressing well with Rails. It's an impressive feat (for an old man like my dad ;) ) that in only one month he is speaking Rails fluently, considering that beforehand, he knew nothing about HTML, CSS, Javascript, and the entire web development problem. I'm lucky to be a percent as smart as he is. Also, he just admitted that diving through the Rails sources has helped him immensely. He is starting to appreciate the whole point of open source, and for an old man like him who used to deny OSS, that's a huge accomplishment.

That was all. Not bad for a first post. I will try to post at least an update a week, though I know beforehand that's an empty promise.