18 Aug 2003 chalst   » (Master)

Macros and error messages
In a post I otherwise agree with, raph makes the claim:
Macro substitution, while an appealingly powerful abstraction, is absolutely hopeless when it comes to mission-critical error recovery.
If raph is talking about m4 (which in the context of a discussion of autoconf's failings is possible), this seems fair. But the paragraph suggests this applies to all languages that support macros. lukeg points out that CMUCL supports sophisticated error messages for macro expansion. Even in their absence, I can say from my own macro-heavy programming style in various LISPs that I don't find debugging macros to be especially difficult: most debugging time is spent on the procedural side. Also C programmers make heavy use of macros, and again one doesn't hear from them how difficult their (admittedly less sophisticated) macros are to debug. The difference between these two languages and m4, is that for them it is a matter of using transformations on program source to make source management easier and provide shortcuts to a more intuitive programming idiom. In the case of m4, it is the source of all computational power.

Nerdy, inane, and barely grammatical
Via Dan Drezner, I see that The Economist passes opinion on the weblog phenomenon. Interesting figure: there are about 750 000 webloggers in the world today.

Postscript: Google anomaly
I've stumbled across an anomalous search query on Google: at the moment it gives two results, with the promise of more but clicking on "More results from hnn.us" gives almost identical results but for more "site:hnn.us" strings being added to the query. Odd.

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!