Dear Lisp hackers,
I've completed yet another major pass of refactoring of ASDF. It is now divided into many files, that are concatenated together for single-file delivery. (An idea that I once rejected when James Anderson proposed it 3 years ago; he might have known better. The file has more than quadrupled in size since.)
From a pristine git checkout, you can concatenate them from the
command-line with make build/asdf.lisp or from lisp with a recent bootstrapped asdf.lisp with (asdf:operate 'asdf::concatenate-source-op :generate-asdf)
About 45% of ASDF is utilities, and those are now available through a semi-independent system asdf-driver. See make wc wc-driver wc-asdf. I'have notably moved in run-program/ from xcvb-driver, and its native-namestring support, by popular demand, which increased this number. I brought in the condition-control code and image support from xcvb-driver as well; I'll be working to package them better. Hot upgrade is preserved through the heroic development of define-package, an extension to defpackage that makes things as declared from however they were, instead of throwing an error at the first discrepancy. You better know what you want.
As a result from this and all the package declarations, plus the bundle and concatenate support, ASDF has swollen 60% in size since 2.26, or 42% since I merged in asdf-bundle in 2.26.7. I'll argue that the functionality is also much improved, including the fixing of the fundamental build model that I've discussed in previous emails.
I won't release anything until all the packages in quicklisp work, and I'll have to install cl-test-grid for that, but I invite those of you who are interested to test it and/or comment on the changes.
It looks like I mostly understand ASDF these days.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Every technique is first developed, then used, important, obsolete, normalized, and finally understood.