25 May 2008 joolean   » (Journeyer)

SRFI-18

It really was the last go-round! Neil checked in the Scheme side of my SRFI-18 implementation early this morning, capping off almost eight months of revisions (and a 75-message-long discussion thread on guile-devel). That duration is a comment not only on the complexity of the specification and the depth of the changes required, but also on how rough the original patch was: I didn't fully understand Guile's threading system at the time, much less the rhythm of interactions such as the ones between individual threads and the garbage collector. So thanks are due to Neil and Ludovic for being nice about things the whole time and helping me get the thing marginally polished. There are undoubtedly bugs -- including, apparently, some kind of deadlock that can show up during make check, but the majority of the work is done.

...Which means it's in, now, and if you're developing with the 1.9.0 series, you can start using it. Like I've said before, I think SRFI-18 is pretty important -- a development platform having a robust and standards-compliant threading implementation is crucial to being able to develop applications of any real complexity on it. Hopefully this will make Guile more attractive to developers and make it less difficult to port standards-dependent projects like Snow to it.

SRFI-89

I spent some time cooking up a translation layer to convert SRFI-89 optional/keyword argument specifications to the format already supported by Guile's (ice-9 optargs) module. Unfortunately, that module has some incompatibilities that I don't think are surmountable (e.g., all required arguments must be passed before any of the optional/keyword ones or the argument-binding system gets confused). Fortunately, Marc Feeley's spec includes a reference implementation that might be usable in a drop-in way. Disappointing that I can't use my convoluted (but more compact) approach, but maybe that's for the best.

Latest blog entries     Older blog 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!