Older blog entries for brg (starting at number 17)

14 Jan 2004 (updated 14 Jan 2004 at 22:02 UTC) »

I've made a lot of progress since September in getting vmips to boot Linux 2.4; in fact, I think the only missing piece now is proper interrupt-driven I/O support in my DZ11 serial chip emulation.

These days I spend the bulk of my time (at work, that is) working on a very nice compiler system called LLVM. It has recently been released under the U of Illinois/NCSA Open Source License. Anyone who's interested in compilers should have a good look at it; it makes writing program transformations a lot nicer than with traditional systems.

I've been messing around a little bit with Objective-C and Apple's Xcode and Interface Builder systems. They're pretty impressive. I worry a bit about Objective-C though; I get the feeling that its various implementations may have diverged more than is appropriate. This year I think I will try to learn SmallTalk.

The vmips 1.1.x releases have come and gone. More recently, I have been working in my spare time on making it possible to boot an operating system on vmips. The testing this effort has required has unearthed many interesting bugs along the way. The NetBSD "dec-docs" archive has been immeasurably helpful. (I expect to make a new major release based on this effort before the year's out.)

I haven't worked on Lisp at all lately. I've too much else to do, and I'm paid to code in C++. More's the pity; many times I've wished for mapcar or remove-if-not and had to make do by hand, using C++ iterators...clunky, but I can appreciate that they're type-safe.

vmips has been on the back burner for a while, stuck in release-candidate limbo while I tend to more pressing (i.e., school, bleh) issues. I should learn to keep my mouth shut and not make, er, "forward-looking statements" I think the prospectuses call them, about when my releases are supposed to come out. :-)

Lately I've decided I need to learn how to do type inference and compile Lisp down to low-level code. I am searching for appropriate papers to read.

The vmips testsuite is fully armed and operational, as they say, and nightly testsuite runs are integrated into the snapshot mechanism. The patches I've put in have made vmips quite a lot faster; I've even gotten a report of a user achieving more than 1 million instructions per second. I am optimistic that the branch for vmips 1.1.x will happen within the next month.

Real life things like moving across the country, getting married, quitting job(s) and finding new one(s), and suchlike have really cut into the energy I have for development. Sometimes I have time to hack, but I don't have the mental energy to do it.

My XML-based procmailrc generator is going to get some showtime, but probably not before I leave my current job. I will miss my job. It has truly provided me a vast array of practical computing-related problems to solve. And I have a great boss.

I have been slowly but surely working on vmips. Several nice bug-fix releases have been sent out since 1.0, and the 1.0.x codebase is, more or less, stable. All current development work is focused on what is currently thought of as 1.1. The test-suite I mentioned in my last diary entry is all but operational, and now I am integrating a huge patch sent me by a user. I don't like huge patches, because I like to review things incrementally. But the patch sounds like a really good idea, with potentially huge performance gains, so I am still, slowly, working on integrating it.

I don't really want to write up a vmips coding style guide, but I may have to. It's one of those things that magically takes the place of real work, and unlike most of those, it's not fun. (Not fun for me, anyways, because as a linguist, I abhor prescriptivism.)

As an aside, I'm now less disenchanted with Tcl, now that I've had to write a lot of Tcl code in order to implement the test-suite automation mechanisms, which are based on DejaGNU. You just have to sort of accept at the start that some things are kind of weird about the syntax. I am still interested to know how to access Tcl arrays from C code, though. Must train harder.

I released WebNews 1.2.3, which has a very small change. In addition, one of my users contributed a Danish translation of WebNews. Several others have approached me about features they'd like to add, but only my translator has sent a patch. (You know who you are. :-) Thanks!) There really is nothing like people happily using your software and telling you about it.

My research codes have mostly metamorphosed into something that my colleagues can successfully support on their own. That's good, because I mostly don't have time to do it myself. I note that the one thing that still creates maintenance hassles for me personally is (surprise) a Bison parser I wrote for vsimII, because apparently parsers are hard. Sigh?

I'm working on test-suite automation for vmips using DejaGNU.

I released WebNews 1.2.2. I fixed the race conditions, and threw in a few speed enhancements. By way of fixing News::Newsrc, I learned to write perl modules and use perl's version of class method inheritance, which turned out to be a big win here because I could just override the offending methods without having to hack the module.

Guile has become a much better language for extension than it used to be. Mostly this is because of the manual they have finally written. I really wish they would post it on their web page, even if it's an incomplete version. Right now you have to check it out from CVS. But it's already more than enough to get you started, which makes Guile much better than it used to be. It still has some noticeable startup overhead though.

I've become disenchanted with Tcl lately. I can't understand why arrays (hashtables, for those whose native language is Perl) are not first class objects in standard Tcl. Not only is it the Right Thing to Do, there doesn't seem to be any obvious technical reason why it should not be possible to make that change to the language.

I think I need to learn to use SWIG, as well. Extension languages are a maze of twisty little passages all alike that you can get lost in forever if you're not careful, and SWIG looks like it just might provide a reasonable abstraction over them. Here's hoping.

I released vmips 1.0, finally. Sometimes you have to kick the code out the door, long after it should have left of its own free will.

I have been working on a race condition in WebNews which results in corrupted .newsrc files. I think I have a fix. It's kind of lame that the News::Newsrc perl module doesn't give you an option to set locks on newsrc files. I am contemplating whether to send in a patch.

I have made WebNews work with mod_perl. To the extreme credit of the authors of mod_perl, it didn't take any modifications to WebNews. I added my notes to the WebNews documentation. I created an entry for WebNews on Freshmeat.

A couple more features have squeaked by into vmips, and I am building up a build status page. vmips is now essentially code-complete for its 1.0 release; I will probably not add anything more, but I will quite possibly take things out. I'm not quite ready to branch yet.

I GPLed one of my research codes (vsimII), but I have yet to think of why this would help, because it depends on non-free software. Hopefully I will have an opportunity to GPL other more self-contained codes in the future. I wish academics were granted more freedom to do as they pleased with their intellectual property (sounds silly, doesn't it?) not to mention with their minds in general.

My XML-based procmailrc generator has evolved to a point where it might prove useful, but it still languishes in limbo due to other coworkers' projects that have yet to see the light of day.

Today, my salary goes to the EFF in the form of a membership fee. Joining the EFF is quick and easy, and they take plastic. Click here (SSL) to join.

On the free software front, I have been working on fixing bugs in vmips and its manual with a view to an eventual release.

8 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!