On Fri, 2013-07-26 at 14:47 -0400, Faré wrote:
- (asdf:load-system :swap-bytes/test :force '(:swap-bytes/test))
needlessly compiles files from :swap-bytes on which it depends. I've attached a log that traces PERFORM and COMPUTE-ACTION-STAMP and shows that two files from :swap-bytes get recompiled even though they haven't changed.
I'm wondering if the problem lay with the ASDF extension in Madeira-port, but that's so simple I can't find any obvious fault. Ideas ?
A) I see nothing wrong in madeira-port, but there is no reason for swap-bytes to use it, since i) madeira-port requires asdf 2.29 ii) asdf 2.27 and later already have :if-feature that provides the same basic service
Oh, goodie.
iii) you are not using any of the feature-eval extensions provided by madeira-port
B) your perform methods does a force of swap-bytes/test. Did you try to remove that, and see if the bug still happens? That might help narrow it down. I don't see why you need to force, anyway. (And yes, it looks like a bug.)
When I test stuff I want the entire test suite to be recompiled on-the-fly so as to catch macro redefinitions, etc...
Actually, it's quite possible that even without that force, this could possibly cause the second load-system to have a confused plan.
This happens when I force-load the test suite from the repl too, not only from within the perform method.
Since you're already depending on asdf3, what about instead have in your defsystem swap-bytes something like the following statements (untested): :in-order-to ((test-op (load-op swap-bytes/test))) :perform (test-op (o c) (uiop:symbol-call :5am :run! :swap-bytes))
NB: ok, using uiop instead of asdf/package means you depend on 2.32 instead of 2.29.
Ok, will do