Ex Bibliotheca

The life and times of Zack Weinberg.

Friday, 15 February 2002

# 10:30 PM

For the large majority of people out there with browsers that don't understand bleeding edge XHTML, here's the MathML rant in plain HTML. I've also adjusted the MIME type of the original to improve the odds that your browser will understand it.

Nothing's quite as much fun as showing up at work to discover that no one else has come to work today, because the company is making everyone take a day off, to save money.

Well, maybe it's as much fun to show up at Jack London Square to discover that the knife shop you remember from two years ago is no longer there, and in fact the entire building has been torn down. According to the barkeep in the itty bitty waterfront bar I asked questions in, the knife shop moved to Brentwood. The only Brentwood I can think of is in Los Angeles. Is that the one he meant? I have no idea.

Oh well, I got an omnibus of the Riddlemaster of Hed trilogy, so the shopping trip was not a total waste of time. Now for some dinner.

# 6:20 PM

For your entertainment and edification, a rant about MathML.

# 12:20 AM

the best thing about standards is there are so many to choose from

Well, in this case, the best thing about standards is they often have completely brain dead mandated semantics. Take the humble #line directive. Its purpose is to let a programmer adjust the apparent file and line of the code being compiled. It takes a filename parameter. You would think that it would use the same syntax as the other directive that does that, #include. But no, the C standard mandates they have different syntax. Well, maybe. As is common with the C standard, the text can be interpreted multiple different ways; and if you ask the committee informally, two different members respond with contradictory answers, both with solid arguments.

Meantime, there's code out there that assumes that #line works like #include, and no one has shown me code that assumes that they don't. So I'm making GCC treat them the same way. It turns out that this requires major surgery; not because it's intrinsically hard to do, but because you'll never notice the difference unless you use filenames or #line directives containing nasty characters (like newline), and other bugs pop up if you do that. So I can't validate my fix without fixing all the other bugs as well.

(That is, on Unix you'll never notice the difference. On Windows, you definitely will, because Windows uses backslash (\) for its directory separator, and most C programs treat backslash as meaning "the next character in this string is special.")