Skip to content
  1. Jan 11, 2013
  2. Jan 10, 2013
  3. Jan 09, 2013
  4. Jan 08, 2013
  5. Jan 07, 2013
  6. Jan 05, 2013
  7. Jan 03, 2013
  8. Jan 02, 2013
  9. Jan 01, 2013
    • 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.
      65be1c38
  10. Dec 27, 2012
  11. Dec 26, 2012
  12. Dec 17, 2012
  13. Dec 15, 2012
    • Francois-Rene Rideau's avatar
      2.26.22: Add new, sensible, :if-feature feature. · 6bb1036a
      Francois-Rene Rideau authored
      Remove last traces of previous non-sensical :feature features.
      6bb1036a
    • Francois-Rene Rideau's avatar
      2.26.21: move children dependencies from traverse to component-depends-on, · 45a36620
      Francois-Rene Rideau authored
      where it ought to always have been, based on a properly cleaned up prepare-op
      (previously introduced in 2.26.14 as parent-load-op).
      
      This is a checkpoint of a mostly working system after major changes;
      it requires further cleanup and fixes:
      strangely, fails some tests on CCL but not SBCL.
      
      Introduce find-operation as a companion to find-component,
      subsuming make-sub-operation.
      The results of component-depends-on are processed with find-operation and resolve-component-spec.
      component-self-dependencies is fixed to play well with prepare-op.
      
      Also, some internal renamings and signature changes:
      parent-operation becomes upward-operation
      parent-load-op becomes prepare-op
      parent-source-load op becomes prepare-source-op
      parent-component is distinguished from module
      module-components becomes component-children
      module-components-by-name becomes component-children-by-name
      compute-module-components-by-name becomes compute-children-by-name
      circular-dependency-components becomes circular-dependency-actions
      component-load-dependencies becomes component-sibling-dependencies (with a stub)
      introducing child-component, downward-operation.
      refactoring visit-dependencies to include the loop in which it's always used.
      refactoring force and force-not processing to use a function action-override-p;
      force is achieved with a trivial method on operation-done-p for prepare-op,
      and force-not as a trivial check in visit-action.
      
      Tweak tests along the way. Tweak the documentation.
      
      Failed to either rename operation-error or introduce action-error in its superclasses:
      that breaks sb-grovel.
      45a36620
  14. Dec 09, 2012
  15. Dec 08, 2012
    • Francois-Rene Rideau's avatar
      2.26.9: Another major rewrite of traverse, to propagate timestamps correctly. · da0d1380
      Francois-Rene Rideau authored
      This fixes the major issue whereby asdf's operation-done-p was failing to check
      the timestamps of dependencies, only checking those of the immediate operation.
      	https://bugs.launchpad.net/asdf/+bug/1087609
      
      This rewrite is also a vast simplification:
      * we rely purely on filesystem timestamps of files
      * we stop using get-universal-time and therefore eschew clock skews issues
       between processor and filesystem
      * we do away with the ugly do-first dependencies, previously made necessary
       by the way get-universal-time messed with load timestamps.
      * we simplify the protocol to visit components, with a better internal API
       that we use twice: once, recursively, in traverse, and once, shallowly,
       in compute-action-stamp (the new internals for operation-done-p).
      * make-sub-operation is drastically simplified.
      
      For the sake of backward-compatibility, the code style had to be contrived,
      notably introducing a special variable *stamp*,
      supporting dual modes for operation-done-p, and
      keeping the old names of many functions that would better be renamed.
      da0d1380
  16. Sep 27, 2012
  17. Sep 13, 2012