Thursday, June 16, 2011

Tart status update

So, it's been a while since I've posted to this list. That does not mean, however, that I have not been busy working on Tart.

Well, that's only partly true. I've actually been working on Tart somewhat sporadically, about 2-3 nights a week. I've had a lot of distractions lately - some pleasant (Minecraft / Civilization V), and others not so much (my primary desktop machine had a hard drive failure, recovering and setting up the new system has consumed a lot of my time.)

One side effect of the hard drive failure is that my desktop is now running a 64-bit OS (Snow Leopard) instead of a 32-bit OS (Leopard). This means that it will be harder for me to test Tart on a 32-bit system. I do have a spare 32-bit laptop available, but testing and debugging on that system will be somewhat inconvenient.

As far as Tart itself goes: there are still two lingering release-blocker bugs. (1) All of the unit tests segfault on some platforms - specifically in the call to llvm.memcpy(). (2) The DWARF debugging metadata generated by the compiler is invalid on some platforms. (One thing that would be useful to know is whether these crashes occur on platforms other than the ones available to me personally - so if anyone feels like checking out Tart and running "make check" I'd be grateful.)

I've spent a huge amount of personal time on these two bugs, and I'm starting to feel somewhat burned out by my lack of progress. I don't even want to think about how many hours I've spent in gdb, or looking at x86 dissassembly listings.

Sometimes when I get particularly frustrated, I go off and work on some part of Tart that's more fun - like adding a new language feature or standard library class. Several minor new features have resulted, such as the addition of collections.Deque.

I've also been thinking a lot about improving Tart's type inference algorithm - the code needs cleaning up, and there are some types of deductions that I want it to be able to do that it can't right now. But I'll save that for another posting.

No comments:

Post a Comment