14 Feb 2006 fzort   » (Journeyer)

haruspex, bi: thank you. Here is, ahem, more of the same. I'll try to add some colors this weekend.

Stumbled upon some SIGSEGV problems when trying to run UMB Scheme 3.2 here at work. UMB Scheme is the interpreter I've been using at home, on my hopelessly obsolete Linux distribution. Had a look at the source code. The bug was a bit puzzling at first - the code seemed to work perfectly under valgrind! Turned out the author was using the sign of a pointer as a sort of flag; when it's negative, flip the sign and follow the resulting pointer somewhere else. Evil! At least on the system where I'm at, addresses of stack allocated and heap allocated objects have different signs. I did the obvious thing; here's a patch that fixes the problem.

Why even bother with UMB Scheme? Well, newer Scheme interpreters are a bit picky about the argument for force being a promise. This prevented me from running, on newer interpreters, this breathtakingly beautiful piece of code. Well, yes, I only found out about lazy streams yesterday; this stuff still looks to me a bit like magic.

Edit: redi, yes, that's it. Thanks.

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!