1. 20 Jul, 2017 4 commits
    • Francois-Rene Rideau's avatar
      Replace *defined-systems* by *registered-systems* · 206c1248
      Francois-Rene Rideau authored
      Use a simple table *registered-systems* mapping name to system,
      and remember timestamps in the COMPONENT-OPERATION-TIME for DEFINE-OP,
      instead of the original *defined-systems* table mapping name to
      cons of timestamp and system.
      206c1248
    • Francois-Rene Rideau's avatar
      51accff1
    • Francois-Rene Rideau's avatar
      Refactor load-asd to perform a define-op · a3b85c8b
      Francois-Rene Rideau authored
      Split asdf/system-registry away from asdf/find-system: the former defines
      the internal *defined-systems* table and the search mechanism, whereas
      the latter keeps the find-system methods, but also defines a new
      define-op operation, on load-asd will call operate.
      
      Reorder dependencies accordingly.
      
      Have forcing come from the plan, so as to not force again actions from
      dependencies that were already performed in a subcall to operate.
      
      Accept asdf.asd from the same version, so asdf.asd doesn't get removed
      at the very next call to operate (which may now come implicitly
      at the least provocation).
      a3b85c8b
    • 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
  2. 17 Nov, 2015 1 commit
    • Francois-Rene Rideau's avatar
      Add tests for defsystem-depends-on · 5a4a89f5
      Francois-Rene Rideau authored
      Attila offered these tests, that currently fail at HEAD,
      for which I have a patch (to be included in next commit).
      They check that an error when loading defsystem-depends-on dependencies
      doesn't cause an incomplete system to be registered but never properly
      parsed, that thereafter pollute the build.
      
      A real solution would imply to fix lp#1500578 though:
         ASDF should handle change in defsystem-depends-on dependencies
         https://bugs.launchpad.net/asdf/+bug/1500578
      5a4a89f5
  3. 17 Apr, 2015 2 commits
  4. 24 Mar, 2014 1 commit
  5. 14 Mar, 2014 1 commit
    • Francois-Rene Rideau's avatar
      Accept strings as OPERATION class designators, read in package ASDF. · 50f2420f
      Francois-Rene Rideau authored
      Refactor COMPONENT class designators to use the same general method.
      As a substrate, goodbye uiop/utility:find-class*, hello uiop/utility:coerce-class.
      
      In the operate upgrade handler, assume there is
      no uninterning and renaming packages away anymore going forward.
      
      Add tests for strings as class designators using defsystem-depends-on.
      50f2420f