Loading doc/asdf.texinfo +3 −2 Original line number Diff line number Diff line Loading @@ -1728,8 +1728,9 @@ is forced not to be recompiled even if modified since last compilation, but other systems are not affected. If @var{force-not} is a list, then it specifies a list of systems that are forced not to be recompiled even if modified since last compilation. @var{force} takes precedences over @var{force-not}; both of them apply to systems that are dependencies and were already compiled. @var{force-not} takes precedences over @var{force}, as it should, really, but unhappily only since 3.1.1. Both apply to systems that are dependencies and were already compiled. To see what @code{operate} would do, you can use: @example Loading plan.lisp +3 −5 Original line number Diff line number Diff line Loading @@ -122,11 +122,9 @@ the action of OPERATION on COMPONENT in the PLAN")) (not (eq system (plan-system plan)))))))) (defmethod action-forced-not-p (plan operation component) (and ;; Did the user ask us to not re-perform the action? (action-override-p plan operation component 'plan-forced-not) ;; Force takes precedence over force-not (not (action-forced-p plan operation component)))) ;; NB: force-not takes precedence over force, as it should (action-override-p plan operation component 'plan-forced-not)) (defmethod action-forced-p ((plan null) (operation operation) (component component)) nil) Loading test/test-force.script +5 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,11 @@ (assert file1) (assert file1-date) ;; Check that force has some effect, but force-not takes precedence. (assert (traverse 'load-op 'test-force :force t)) (assert (null (traverse 'load-op 'test-force :force-not t))) (assert (null (traverse 'load-op 'test-force :force t :force-not t))) ;; unforced, date should stay same (touch-file "test-force.asd" :timestamp date1) (touch-file "file1.lisp" :timestamp date1) Loading Loading
doc/asdf.texinfo +3 −2 Original line number Diff line number Diff line Loading @@ -1728,8 +1728,9 @@ is forced not to be recompiled even if modified since last compilation, but other systems are not affected. If @var{force-not} is a list, then it specifies a list of systems that are forced not to be recompiled even if modified since last compilation. @var{force} takes precedences over @var{force-not}; both of them apply to systems that are dependencies and were already compiled. @var{force-not} takes precedences over @var{force}, as it should, really, but unhappily only since 3.1.1. Both apply to systems that are dependencies and were already compiled. To see what @code{operate} would do, you can use: @example Loading
plan.lisp +3 −5 Original line number Diff line number Diff line Loading @@ -122,11 +122,9 @@ the action of OPERATION on COMPONENT in the PLAN")) (not (eq system (plan-system plan)))))))) (defmethod action-forced-not-p (plan operation component) (and ;; Did the user ask us to not re-perform the action? (action-override-p plan operation component 'plan-forced-not) ;; Force takes precedence over force-not (not (action-forced-p plan operation component)))) ;; NB: force-not takes precedence over force, as it should (action-override-p plan operation component 'plan-forced-not)) (defmethod action-forced-p ((plan null) (operation operation) (component component)) nil) Loading
test/test-force.script +5 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,11 @@ (assert file1) (assert file1-date) ;; Check that force has some effect, but force-not takes precedence. (assert (traverse 'load-op 'test-force :force t)) (assert (null (traverse 'load-op 'test-force :force-not t))) (assert (null (traverse 'load-op 'test-force :force t :force-not t))) ;; unforced, date should stay same (touch-file "test-force.asd" :timestamp date1) (touch-file "file1.lisp" :timestamp date1) Loading