Older blog entries for brg (starting at number 13)

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.

I released a new version of WebNews, and I worked on the vmips manual. WebNews's speed problems have begun to get serious. I need to develop a benchmark for it so that I can start to do some serious performance tuning. I would be happy to hear suggestions, if anyone out there has any experience benchmarking CGI scripts.

I benchmarked GCC 3.0 prerelease against its predecessors 2.91.66 and 2.95.2 using the Stepanov Abstraction Penalty Benchmark, and the results made me pretty unhappy. I hope it gets better, because some of my code has performance problems that seem to track the slowdown on this benchmark pretty well. At least I can assume that it will get better, because good performance on this benchmark is one of the release criteria for 3.0.

I have begun developing an XML-based procmailrc generator with a web-based editor, for use in secure IMAP server installations.

My lone experience with the SourceForge support system resulted in approximately one month turn-around time for my bug report. (Happily, once someone got to looking at it, they immediately did the right thing, so I can't exactly say I'm disappointed, but neither can I say that I am pleasantly surprised.)

One thing I've been noticing lately about C++ is that you really have to have a recent compiler to get support for anything resembling the standard.

11 Apr 2001 (updated 11 Apr 2001 at 22:37 UTC) »

I set up a SourceForge project for vmips, but unfortunately, it doesn't look like SourceForge has much to offer beyond what I have set up at home, with the possible exception of a bug tracking system (and it's not like those are hard to set up) and more bandwidth (which might be useful later, but not now.) So I am just mirroring my web pages there for the moment.

In terms of actual free software work, the only thing I've done lately is work on the embryonic vmips manual. I also made a new release of WebNews on March 15th, with better article sorting support, e-mail carbon copy of posted articles, and more bug fixes. I will probably mirror WebNews's site onto sourceforge eventually as well.

The more I use C++, the more I find I like it. And, speaking of C++, I still like GCC 3.0, which I am actually using on a daily basis now (especially because it has libstdc++-v3 inside(tm)). I wrote a little web page about how to play with GCC 3.0. I highly suggest you try it.

I have been working on the IRAM project, doing benchmark hacking. My free software projects have received a lot less of my time lately, but I'm learning a lot more. After learning about IRAM, going home to my Intel and AMD boxes makes me kind of sad.

I have become very interested in automatic vectorization in C compilers. Someday, it would be nice to see a free software vectorizing C compiler.

The Instructional Software CD was released, without Java.

I have been working on getting GCC, Glibc, GNU Binutils, and the Linux kernel to work together in concert to produce a free-software cross-compilation environment for vmips -- this has meant that I have to use prerelease versions of both GCC and Binutils. I abandoned my earlier idea to go with a NetBSD-based environment. Besides, compiler hacking is fun. I'm pretty happy with the new GCC, and excited about its eventual release as GCC 3.0.

Speaking of reasons not to use non-free software, the Instructional Software CD has hit major speedbumps due to Berkeley instructors' use of the Sun JDK, which we can't redistribute.

I made a conscious decision to spend a lot less time chatting online these days. I'm finding that it's actually rather nice.

4 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!