On Fri, 2013-07-26 at 18:05 -0400, Faré wrote: > >> This is ASDF3. Dependencies are propagated correctly, unlike with ASDF 1&2. > >> If you want to catch a macro redefinition, just define a dependency, > >> as you should. > > > > When I develop interactively and change stuff without saving files, > > perhaps because I'm working in a scratch buffer, I still want the suite > > to be recompiled. > > > If you recompiled a file but did not recompile some files that depend on it, > ASDF3 will correctly recompile them when you (test-system :swap-bytes). > No need to force anything. This is not ASDF 1&2.
If I edit a macro in a scratch buffer ASDF cannot possibly detect it because no file on disk has changed. Maybe I'm being a little too cautious here but for the moment I'll keep forcing the reload of the test suite. > >> Which files do or don't get compiled twice? > > > > :swap-bytes/test depends on :swap-bytes. When I > > (asdf:load-system :swap-bytes/test :force '(:swap-bytes/test)), some > > files from :swap-bytes get recompiled too, namely the last two, > > network.lisp and endianness.lisp > > > Indeed, this is a subtle bug in madeira-port: when you depend on > a component that is excluded from the build by madeira-port, > the component fails to declare an empty set of output-files, > while its perform method fails to create the declared output-files, > and therefore ASDF while planning decides that this build step > is incomplete, as well as anything that depends on it directly or indirectly. > > The solution is for madeira-port to also provide a :around method for > output-files. > That's subtle: I didn't think of it when reading the source code. Thanks, fixed. -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib
signature.asc
Description: This is a digitally signed message part
