
Hi Lispers! I research sources ASDF Library. I am not understand: Why repeat the compilation of a file (below code and details)? (defmethod perform-with-restarts ((o compile-op) (c cl-source-file)) (loop :with state = :initial :until (or (eq state :success) (eq state :failure)) :do (case state (:recompiled (setf state :failure) (call-next-method) (setf state :success)) (:failed-compile (setf state :recompiled) (perform-with-restarts o c)) (t (with-simple-restart (try-recompiling "Try recompiling ~a" (component-name c)) (setf state :failed-compile) (call-next-method) (setf state :success)))))) This is bad for me: my code evaluated twice (eval-when (:compile-toplevel) ...) in a file that i am recompiled throghout select try-recompiling restart. Details. 1. (setf state :failed-compiled) 2. error compilation. 3. select try-recompiling restart. 4. next iteration. 5. (setf state :recompiled) 6. recursive call: (perform-with-restarts o c) (in recusive-call) 6.1 (setf state :failed-compile) 6.2 (call-next-method) = success compile 6.3 (setf state :success) 6.4 next iteration and exit call. 7. next iteration 8. (setf state :failure) 9. (call-next-method) - second compilation! ??? I understand that (call-next-method) conceptual feature. But the file should not compile twice! Suggestions?