Comment 4 for bug 1230368

Revision history for this message
Alastair Bridgewater (alastair-bridgewater) wrote :

As the original author, I'm somewhat qualified to comment on quick-build. It's basically two afternoon's worth of hack, rather than anything really well designed. The version that Drew shared is pretty much up-to-date, and I have only ever used it with SBCL.

Were I to write it again, I would probably use a different representation for the graph and nodes (filenames+dependencies), almost certainly a class-based representation for the nodes if not necessarily the graph overall. I might also add a more flexible method for determining dependencies than simply requiring that the first form in the file be a CL:DEFPACKAGE and parsing it for :USE, :IMPORT-FROM, and :SHADOWING-IMPORT-FROM clauses. I might also allow specifying a "node class" per prefix, which would allow overriding the default mapping from package name to file path and determining the dependencies.

Quick-build fits very well with the code style that I have come to use, largely because it was written after the basics of said style had been settled, and I was at the point of getting tired of maintaining a linear build order, and didn't want to use ASDF. At the same time, it's very much at the level of a personal tool in terms of design (as described above), implementation (as described above, plus the complete and total lack of tests), and documentation (completely nonexistent).

All that said, please don't let me stop you from adopting it, or the ideas that it demonstrates. But if you DO adopt it for ASDF or simply as a public project, please address at least the matter of documentation, if not also customizable mappings from package names to file names and determination of dependencies.