[asdf-devel] Problems with asdf:load-system :force

Faré fahree at gmail.com
Fri Jul 26 18:47:54 UTC 2013


> 2) (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
 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.) Actually, it's quite possible that even without
that force, this could possibly cause the second load-system to have a
confused plan. 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.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Let's take compulsion out of compassion.



More information about the asdf-devel mailing list