Closed fare closed 9 years ago
This is not necessarily an example you'd like to follow, but ASDF 1 was pretty minimal, as one file less than 1000 lines long, at the expense of lacking features and being neither robust nor portable. It has since evolved into a large program more than ten times that size, but full-featured, robust and portable — yet developed as a series of smaller files, some of them organized into a library dependency.
Minimalism in quicklisp-bootstrap is antithetical to a lot of features that people would like to see in bootstrapping quicklisp, such as supporting cryptographic checksums, if not native https support, etc.
Yet minimalism in source code can be compatible with maximalism in deployed artifact:
1- A lot of libraries could be shipped with the quicklisp.lisp loadable file, using asdf:monolithic-concatenate-source-op. The constraint is that none of the concatenated source file may rely on a wrapper or dynamic environment reset around individual files to setup or reset readtables or other syntax variables. This unhappily excludes, e.g. ironclad. Assuming no funky business with the reader, the file could be further minimized, if needed, by filtering out docstrings, comments, blanks, etc.
2- If further libraries are required that do not satisfy those requirements, they can be shipped as part of of an embedded tarball, compressed and mime-encoded into a string, then installed and loaded by the loader.