On Thu, Sep 22, 2016 at 3:04 PM, Robert Goldman rpgoldman@sift.net wrote:
It would be trivial to bind a special variable around the body of LOAD-ASD, and put something in DEFSYSTEM that will raise an INTELLIGIBLE error if that variable is not so bound
(error "Do not load an ASDF system definition outside of ASDF:LOAD-ASD")
As I understand it, the issue isn't really with the DEFSYSTEM form itself. Instead, the issue is with all the *other* code that could be in the .asd file as the manual states that symbols from CL, ASDF, and UIOP will all be available inside an .asd file without an IN-PACKAGE form.
EVAL'ing a DEFSYSTEM form seems like a totally reasonable thing to do outside the context that LOAD-ASD sets up. And actually, ASDF itself does EVAL DEFSYSTEM forms, in package-inferred-system.lisp at the very least.
-Eric