.asd files are Lisp code, but this Lisp code must be loaded in the correct context. Just like a random Lisp file won't even load if its packages haven't been defined, or the readtable is wrong, etc., a random .asd file won't run if it's not loaded in the correct context.
This is NOT new: ASDF 1 (and ASDF 2 after it) even used to create a new package around the loading of each and every .asd file -- and delete it afterwards! And there wasn't even an exported function that users could call to achieve the same effect, until 2.011.3 (Dec 2010).
Now if you use swank-asdf, I made sure that it calls load-asd when you use C-c C-k on a .asd file. I also implemented other goodies, so that compiling a file would be done with perform compile-op, but the slime maintainers disabled them by default. Sigh.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I’d like to confess, Papa, at that moment I discovered that I really like killing. — Ernesto "Che" Guevara
On Thu, Sep 22, 2016 at 5:19 PM, Eric Timmons etimmons@mit.edu wrote:
On Thu, Sep 22, 2016 at 4:44 PM, Robert P. Goldman rpgoldman@sift.net wrote:
Actually now LOAD-ASD controls syntax, sets the readtable, controls the pretty-printer, sets up a cache, and a handler. And who knows what it will do tomorrow?
Oooph, didn't realize that was in there as well. At least those effects aren't advertised in the manual (I think)?
For the record, I'm not a fan. I would prefer that asd files were normal lisp. But they aren't, so I don't think we should lie about it, and I don't want to field alleged bug reports that arise because someone thought they were, when they are not.
Honestly, I'd go the other way and say I wish ASD files were not LOAD'able. It'd make it easier to analyze a system without the possibility of incurring side effects due to whatever code the developer decided to put in there (this has made my life annoying a couple of times). But that's probably not worth thinking about until ASDF 4 rolls around.
We could make this a continuable error as a concession to people who know that they want to evaluate these forms outside LOAD-ASD, but that's as far as I'm prepared to go.
That's probably a good compromise.
-Eric