Evolving ASDF: More Cooperation, Less Coordination
Keywords: Common Lisp, build infrastructure, interaction design, code evolution, dynamic code update.
Abstract: We present ASDF2, the current state of the art in CL build systems. From a technical standpoint, ASDF2 improves upon ASDF by integrating previous common extensions, making configuration easy, and fixing bugs. However the overriding concern driving these changes was social rather than technical: ASDF plays a central role in the CL community and we wanted to reduce the coordination costs that it imposed upon CL programmers. We outline ASDF’s history and architecture, explain the link between the social issues we faced and the software features we added, and explore the technical challenges involved and lessons learned, notably involving in-place code upgrade of ASDF itself, backward compatibility, portability, testing and other coding best practices.