21 May 2010 joolean   » (Journeyer)


The ever-resourceful wingo just completed a series of patches that enhances the abilities of Guile's syntax expander. Among other wonders, the semantics of the `@@' form have been extended to support arbitrary expressions. To wit:

(@@ (my-module) (my-expr))

...will evaluate -- but, more importantly, expand -- (my-expr) in (my-module)'s environment.


I needed Andy's help with the above because, since last I wrote, I'd gotten pretty far with my implementation of the R6RS standard libraries for Guile. In fact, I'd pretty much finished with them -- all twenty-five or so of them (minus (rnrs bytevectors) and (rnrs io ports), which Ludovic Court├Ęs had already taken on), plus unit tests. And I got them (mostly) done in about one grueling month. (Granted, a lot of them are just repackagings of existing Guile functionality, but...)

Maybe this is how things always go. I spent about a year working on R6RS support in Guile: I was on the Acela back to New York City from the 2009 FSF Associate Members meeting when I started playing around with a naive form of the library-to-module transformer that wingo merged to `master' a couple of weeks ago; and spent the next eight months variously getting frustrated, learning `syntax-case', tweaking, and rewriting, before I got the code to the point where I could knock out all those library implementations in one shot.

And now they'll be in Guile 2.0, which is better than I'd hoped, even.

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!