Steady Progress towards Alpha 1
This weekend, the Haiku project has seen some nice leaps forward. Two items are especially noteworthy: Ingo Weinhold and Axel Dörfler have finally nailed bug 2059. This bug specifically prevented serious use of Haiku for anything else than testing, since it meant that the kernel could crash at any time, especially when there was heavy disk activity. All that was supposed to be written to disk at the time of the crash was lost. Luckily, due to prior fixes to the file system journaling and log replay, it didn't mean that your entire file system would be corrupted, but at least anything that you were working on at the time would be lost. So the fix for this particular bug is getting us much closer to our goal of a usable self hosting situation in which you can actually use Haiku for development. This is our most important goal to reach before we wanted to release the first alpha of R1.
The second noteworthy achievement is build system support for a mixed GCC4/GCC2 Haiku environment. It has been known for quite some time, thanks to the explorations of Haiku developer Michael Lotz, that it was possible to set up a GCC4 build of Haiku to run GCC2 applications or vice versa, by installing the respective libraries into certain places so that the correct versions are used for linking. What was missing was support in the runtime loader (the system component used to launch applications and link them to the shared libraries that they use) to do this automatically and on a system wide level. Also missing was support in the build system to effortlessly produce such a hybrid Haiku build. Both of these items have now been implemented by Haiku developer Ingo Weinhold. Also related to this, Michael Lotz had researched the stability issues that GCC4 builds of Haiku were suffering from some time ago and tracked them down to a problem in the specific GCC4 version that Haiku is using. They can be avoided by simply turning off a certain compiler optimization feature. All this combined means Haiku can use GCC4 itself while maintaining our stated goal of binary compatibility to the large pool of GCC2 applications in an automated and transparent fashion.
A few serious issues remain before we can release the first alpha. Some concern missing or buggy functionality that affect the self hosting goal with regards to the development tool chain. A completely native port of Subversion is the last item on this list. As far as I know, some bugs in the TCP implementation are preventing it, but progress is being made on this front as you read this. Formal testing is being conducted to make sure the entire tool chain will work correctly and reliably. Axel Dörfler is currently working on the device manager, the system component which manages everything concerning hardware and drivers. There are some issues with regards to hardware interrupts that, when fixed, will hopefully clear up some driver problems that can be experienced on certain hardware.
I want to conclude with a big "Thank You" to everyone who is helping with tracking and reporting issues in our bug tracker and to everyone providing patches and of course to the Haiku developers themselves! Personally, I am very excited about the progress that is being made. Thanks to everyone who is contributing towards this goal!