Archive for February, 2008

Tools Happenings

There are some fun things going on in the tools arena right now.

Do you read Taras Glek’s blog? He’s working on GCC Dehydra, which lets you write GCC passes in javascript. I think his work is one of the most interesting developments in the GCC world today.

There are a few similar projects in the works right now. The plugin branch lets you write GCC plugins; the authors of this branch have a Python plugin, but as far as I’m aware this is not publicly available.

On a slightly more idiosyncratic note, Basile Starynkevitch made a branch for his MELT project. This is also a plugin system, but it uses a lisp dialect for which he’s written his own lisp-to-C translator. I’m kind of partial to this idea — I think it would be fun to write parts of GCC in lisp, at least if it compiled down to something reasonable.

I’m quite interested in pushing GCC more into source analysis and refactoring. Right now the front ends have some problems that make this difficult, but I think these are surmountable without too much trouble. Maybe when I finish this pesky incremental compiler…

With all this going on I wonder why GCC-XML is not in the tree, at least on a branch.

Vladimir Prus recently made available his prototype which integrates Python into gdb. This is promising work — we’ve needed something like this for years. Maybe we can finally print complex data structures in sensible ways.

Finally, Benjamin Kosnik has checked in a restructuring of the libstdc++ documentation. I browsed the new stuff a bit and I found it much simpler to navigate. I’m very happy about this; good, clear documentation is critical to the success of free software.

Using Quagmire

Over the last two weeks I’ve spent some time hacking on Quagmire. I’ve tried to add the features I think are most commonly needed, and I think now it is ready for early adopters to come on board. It isn’t at feature parity with Automake, but it does implement a large subset of Automake’s functionality:

  • Build and install C/C++ programs and static libraries, with Automake-style dependency tracking.
  • Initial (aka, gcc-only) shared library support. (This is still fairly lame… “libtool in two lines of code”. My current plan here is to do something much more minimal than what libtool provides.)
  • Automatic support for the standard clean targets.
  • Install and uninstall, including DESTDIR.
  • dist and distcheck support (a bit incomplete; and FWIW this is just ripped right out of Automake).
  • Support for some minor (but standard) targets: TAGS, texinfo stuff, rebuilding configure-generated files.

It also has some features that Automake does not. One long-requested Automake feature is to be able to turn off its verbose output; Quagmire does this dynamically depending on whether -s was passed to make.

Quagmire also has some initial support for build-time function and header checks, and pkg-config support. This is not fully baked, but fun to play with. One way this is nicer than using configure is that if you add a new function to the list, the next invocation of make will run that test only.

There’s some example code in the repository that shows how to use most of the features.

Currently Quagmire does some things differently from Automake. For instance, it does not use directory prefixes for things like PROGRAMS. However, I recently figured out that it could (and in some situations, like _DATA, this is really what you want), so I’m wondering whether I should change all this to follow Automake more closely. Let me know what you think.

Also I’ve been wondering about whether it would be appropriate to post an announcement of Quagmire on the Automake mailing list.

Charlie Bartlett

We went to an early screening (theater release Feb 22) of Charlie Bartlett last night. It was part of BIFF, playing at the Boulder Theater.

This is a pretty good teen film — funny without being a comedy. It meandered at times but I enjoyed it quite a bit. The actors are very good.

Afterward the director held a Q&A on stage. This was interesting, and even inspiring. He mentioned that this script had been in development since at least 1985, and was voted as one of the best scripts not likely to be made. He also talked about his process of choosing a script (he read over 100), his filmmaking, and his move from editing to directing… he made a good enough impression that it made me want to push his film a bit. So, go see it.

Soon I Will Be Invincible

Never say pomo didn’t build anything — there’s a small genre of books that take fresh looks at old stories, usually adopting the outsider point of view. Soon I Will Be Invincible is the latest such book, the story of a supervillain (Doctor Impossible) and his attempts to take over the world. I stayed up late to read this book in one sitting.

This book follows all the comic book conventions — evil genius trying to take over the world, super heroes, etc. The universe seems to be Marvel-esque; there are alternate dimensions, and magic, and aliens, and gods. Soon makes funny references to the comic book world as well, with a mention of the “golden age”, and generally drawing implicit parallels between the life stories of its characters and the evolution of comics themselves.

It reminded me of Lint in that it is a bit repetitive at times. It is a nice read, though, and I recommend it.

27 Dresses

This film was almost completely formulaic. Perhaps, someday, an enterprising quantitative movie reviewer will come up with a way to measure the deviation of a film from its genre ideal. For instance, this movie would not score a perfect 1.0, because the boy-girl fight was a bit too brief.

Don’t get the wrong impression. There are many venues where boring conformance to the norm is to be preferred — perhaps, regrettably, including programming. Romantic comedies, I suspect, are in this zone, or nearly so. Which is a way of saying that I had an ok time, at least I didn’t spend the hours crying.

While watching this I did have enough spare time to wonder whether this kind of movie represents a particular phase of an actress’ career — similar to the way that writing an editor or window manager marks a particular development in a programmer’s career. Someone out there makes a living advising aspiring actors on these topics. I find that interesting, maybe even comforting.