On Thu, 2016-09-22 at 14:24 -0500, Robert Goldman wrote: > On 9/22/16 Sep 22 -2:07 PM, Stelian Ionescu wrote: > > On Thu, 2016-09-22 at 14:04 -0500, Robert Goldman wrote: > > > On 9/22/16 Sep 22 -1:56 PM, Stelian Ionescu wrote: > > > > > The comments in the file say that we *must* use load-asdf to > > > > > load > > > > > a > > > > > .asd file, but not *WHY* we must do so. > > > > > > > > > > Why is this necessary? > > > > > > > > Because asdf:load-asdf sets up the correct evaluation > > > > environment, > > > > including setting the correct *package*. > > > > > > > > > > OK, again, if this is required, why don't we ENFORCE it? > > > > Because in some specific cases it could be made to work without it > > (all > > ASDF symbols package-prefixed, etc...) and some old-timers > > complained > > that we're breaking their dev workflow if we make it impossible to > > reload an .asd using C-c C-c or cl:load > > > > I'm one of those old-timers, TBQH. I interactively compile a lot of > code, and I don't see why DEFSYSTEM forms should be different. > > I'm not a big fan of making stuff that looks like CL code, but > doesn't > *behave* like CL code. > > If we can't LOAD a file with a DEFSYSTEM form, or EVAL a DEFSYSTEM > form, > why do we READ them?
Parsing DEFSYSTEM forms with CL:READ is simply convenient, especially since, as Lispers, we expact Lisp syntax. > Why don't we make DEFSYSTEM forms NOT be legal CL > forms? They are CL forms, they just require a certain implicit evaluation environment, which is set up by ASDF:LOAD-ASD. > > I don't want ASDF to turn into a minefield of assumptions that > require > its users to carefully read the source to use it properly, because > things that are otherwise sensible cause random stupid things to > happen. > > So: let's either ENFORCE the use of LOAD-ASD or let's get rid of it. > Not enforcing it if it needs enforcing is the bad midpoint on this > continuum. I agree it should be enforced. -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur.
Description: This is a digitally signed message part