>> 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.
>> 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. For once, this wasn't an ASDF bug. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org If once you have paid him the Dane-geld / You never get rid of the Dane. — Rudyard Kipling
