On Thu, Sep 22, 2016 at 3:04 PM, Robert Goldman <rpgold...@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