• Francois-Rene Rideau's avatar
    2.26.46: only do things in-image if needed. · 65be1c38
    Francois-Rene Rideau authored
    This restores the feature of do-first that was lost while refactoring ASDF
    to fix the timestamp propagation issue.
    The old asdf-bundle worked implicitly because of do-first:
    fasl-op DEPENDS-ON compile-op, and compile-op has a DO-FIRST on the
    load-op of dependencies, NOT a DEPENDS-ON, so if the compile-op is
    "done" (which did NOT check the timestamps of dependencies),
    then the dofirst is never consulted and load-op is never traversed.
    In our new ASDF, we want to always traverse the load-op of dependencies,
    so we can propagate their timestamps; however, we still want to only
    actually load them if they are needed. Therefore, visiting actions
    takes an additional flag "needed in this image", and each visited action
    can be planned or not planned yet, and a not planned yet action can
    be visited a second time to plan it after recursively visiting its
    dependencies with the "needed" flag set.
    Tests were fixed now to work now that this distinction exists.