1. 20 Jul, 2017 8 commits
    • Francois-Rene Rideau's avatar
      plan: implement phase level escalation · b7651034
      Francois-Rene Rideau authored
      Track at which level of nested calls to OPERATE a not-done action is needed;
      if it is needed at a higher level than previously traversed, then traverse again
      to schedule it (and its transitive dependencies) to be done in the higher level.
      This fixes cases, such as in (test-system "cl-protobufs-tests"), where a library
      was already marked as needed at a low level of OPERATE, but if actually needed
      at higher level due to a defsystem-depends-on, and was previously not loaded
      early enough (after this plan refactoring).
      b7651034
    • Francois-Rene Rideau's avatar
      Correctly track status of actions across phases · 1aec9162
      Francois-Rene Rideau authored
      Do not perform an action twice in a session. Introduce three status bits
      that every action has in a given session, in addition to the stamp:
      KEEP-P (from previous session), DONE-P (and up-to-date, in this image),
      NEED-P (needed in this image as part of this session).
      
      BACKWARD INCOMPATIBILITY: Invert the meaning of NIL and T for STAMP,
      so that NIL means out-of-date. This makes our code conceptually nicer,
      and no one in Quicklisp uses our stamps, anyway. Still, beware.
      1aec9162
    • Francois-Rene Rideau's avatar
      Separate forcing from plan · 897a142b
      Francois-Rene Rideau authored
      Move forcing into its own file.
      Include forcing, not plan, among session slots.
      Share a toplevel forcing for all performable plans.
      Have REQUIRE use load-system, not require-system,
      so as not to conflict with session forcing options.
      Don't call with-asdf-session outside the test scripts themselves.
      Cleanup a few scripts accordingly, and beyond.
      897a142b
    • Francois-Rene Rideau's avatar
      Move flag for asdf upgrade from operate to session. · 017cb992
      Francois-Rene Rideau authored
      This should notably prevent recording of a circular dependency of asdf on asdf.
      017cb992
    • Francois-Rene Rideau's avatar
      More refactoring of plan · dea282e9
      Francois-Rene Rideau authored
      Move action-status wholly to plan, merge it with planned-action-status.
      Add a performable-p flag to plans.
      Simplify sequential-plan and required-components; have them use a separate
      function collect-action-dependencies for traversing the graph.
      Add a function action-up-to-date-p to check whether an action is up-to-date,
      without adding it to the plan if it wasn't.
      dea282e9
    • Francois-Rene Rideau's avatar
      Move node visit information from plan to session · a9c22442
      Francois-Rene Rideau authored
      Significantly refactor plan internals.
      
      Move visited-actions, visiting-action-set, visiting-action-list,
      total-action-count, planned-action-count, planned-output-action-count
      from plan to session (remove the plan- prefix to accessors).
      
      Move sysdef-error from component to session.
      
      Remove plan as a parameter of action-valid-p (made simple defun)
      and while-visiting-action (both moved to action), but also
      map-direct-dependencies, reduce-direct-dependencies, direct-dependencies.
      
      Rename *default-plan-class* to *plan-class*,
      plan-record-dependency to record-dependency,
      plan-action-status to action-status
      plan-forced (accessor) to forced, plan-forced-not (accessor) to forced-not.
      
      Introduce define-op, and visit a suitable action while loading an asd file.
      Accumulate inner operate dependencies in a slot definition-dependencies of
      a registered system or a newly registered undefined-system.
      
      Introduce reset-session or reset-session-visited in various tests,
      so operations aren't considered as layered atop each other, but
      as restarting from a fresh planning session.
      
      Use with-asdf-session in required-components, make-plan.
      
      Stop using node-for, use cons directly, now that operations are safe.
      
      Export format-action from action.
      
      Move some conditions and generic functions around and reorder dependencies.
      a9c22442
    • Francois-Rene Rideau's avatar
      Introduce an *asdf-session* that may contain more than a cache. · f98aaa6b
      Francois-Rene Rideau authored
      Replace with-asdf-cache with with-asdf-session.
      Introduce *asdf-session-class* to hold the class of the session.
      Introduce caching-cache, currently the only session class,
      that only contains a cache, for now.
      f98aaa6b
    • Francois-Rene Rideau's avatar
      Rename asdf/cache to asdf/session · 49dbfc0c
      Francois-Rene Rideau authored
      49dbfc0c
  2. 20 Sep, 2016 1 commit
  3. 15 Sep, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Some documentation tweaks · f0817225
      Francois-Rene Rideau authored
      Update documentation about preloaded and immutable systems.
      
      Update comments about the ASDF cache.
      
      Explain that we need test cases more than bug fixes.
      f0817225
  4. 10 Jul, 2014 1 commit
  5. 09 Jul, 2014 1 commit
  6. 05 Jul, 2014 1 commit
  7. 02 Jul, 2014 1 commit
  8. 21 Mar, 2014 1 commit
  9. 20 Mar, 2014 1 commit
    • Francois-Rene Rideau's avatar
      Fold *systems-being-defined* into the *asdf-cache*. · 84e17ea0
      Francois-Rene Rideau authored
      Add regression test for no infinite loop
      when processing asd files that mutually define each other's systems.
      (Prompted by Robert Strandh inquiring about the bug fixed in 2.015.[23]
      after my mentioning an infinite loop in my ASDF3 article.)
      Checked that removing the set-asdf-cache-entry in parse-defsystem triggers the bug.
      84e17ea0
  10. 27 Jan, 2014 1 commit
    • Francois-Rene Rideau's avatar
      Cleanups done or initiated during the ASDF Walkthrough. · f71a8b99
      Francois-Rene Rideau authored
      * load-op needn't be sideway, its sideway dependencies are already provided by prepare-op
      * compile-op should use compile-op (default) not load-op as its downward-operation.
      * no need for an input-files method for prepare-op, nil is the global default.
      * Some documentation for compute-action-stamp.
      * Don't skip upgrade from 1.x on Allegro anymore, since we now correctly punt.
      * Instead of asdf/package:define-package, use the canonical name uiop/package:define-package
      f71a8b99
  11. 13 Nov, 2013 1 commit
  12. 20 Oct, 2013 1 commit
  13. 19 Oct, 2013 1 commit
  14. 09 Oct, 2013 1 commit
  15. 26 Feb, 2013 1 commit
  16. 06 Feb, 2013 2 commits
    • Francois-Rene Rideau's avatar
      2.28.1: various upgrade issues · d78df051
      Francois-Rene Rideau authored
      1- To make life easier on Xach, stop requiring asdf.lisp to be loaded as source
      before it's compiled. Instead, wrap each and every single form in an eval-when,
      most of the time via the with-upgradability macro that also transforms
      defun into defun* and defgeneric into defgeneric*.
      Causes massive reindentation :-(
      
      2- Have a proper :version for fallback systems.
      Will make systems that check the version happier.
      
      3- protect a condition with #+sb-eval. Fixes lp#1116408.
      
      4- Protect warnings-file methods with dynamic when *warnings-file-type*
      rather than static #+.
      d78df051
    • Francois-Rene Rideau's avatar
      2.28.1: various upgrade issues · 1e4bafdb
      Francois-Rene Rideau authored
      1- To make life easier on Xach, stop requiring asdf.lisp to be loaded as source
      before it's compiled. Instead, wrap each and every single form in an eval-when,
      most of the time via the with-upgradability macro that also transforms
      defun into defun* and defgeneric into defgeneric*.
      Causes massive reindentation :-(
      
      2- Have a proper :version for fallback systems.
      Will make systems that check the version happier.
      
      3- protect a condition with #+sb-eval. Fixes lp#1116408.
      
      4- Protect warnings-file methods with dynamic when *warnings-file-type*
      rather than static #+.
      1e4bafdb
  17. 27 Jan, 2013 1 commit
    • Francois-Rene Rideau's avatar
      2.26.153: Various speed ups. · 1f4d6fec
      Francois-Rene Rideau authored
      Between 2.26 and 2.26.152, ASDF had gotten ~37 times slower at traversing iolib.
      Now trying to restore some performance.
      
      This commit:
      1- generalizes the cache to cover input-files and output-files as well as get-file-stamp.
      2- removes the probe-file before file-write-date.
      1f4d6fec