Toplevel Macros in Alexandria: Code Revival Project
After finding the old CL Gardeners' site (now defunct), I thought I'd carry the torch this afternoon. They have four suggestions for "gardening" Common Lisp:
- Consumer reports: Write a comparison of different libraries that do the same or similar things. Summarize the strengths and weaknesses of each. Include "under the hood" assessment; would I want to maintain this if the author got hit by a bus?
- Code revival: Adopt an abandoned library and clean up the bit rot.
- Code mining: Dig through existing open source code bases of large applications and extract bits that can be packaged as a useful stand-alone libraries.
- Implementation convergence: Help bring various CL implementations into alignment where there's no good reason for them to differ. This can be done by providing portability libraries or, better yet, by doing the decidedly non-trivial work of finding a common ground that different implementers can actually agree on and then doing whatever it takes to convince them to make the necessary changes to their implementation. ("Whatever it takes" in this case, likely includes patches, test suites, documentation, and civil, egoless, participation in relevant developer forums.)
Browsing the site on the web archive (since they have been defunct for ten years), I found a todo item.
John Connors proposes to revivive the Port module from the [CLOCC](http://clocc.sourceforge.net/dist/port.html): it was a small module that provides portable acess to filesystems, threads and sockets.
I was excited to see that two of the functions in ext.lisp were already in my uitility library (as version spontaneously written by me), so clearly they deserved to be revived!
Cleaned them up and submitted to alexandria.