1. 16 Jul, 2017 1 commit
    • Robert Goldman's avatar
      Fix bug detecting change in read files. · 18b8cfe3
      Robert Goldman authored
      Files read in by READ-FILE-LINE or READ-FILE-FORM were not being
      tracked.  With this change, they are noticed and added to
      ADDITIONAL-INPUT-FILES for a component and operation.
      
      Adding this tracking led to introduction of a new dependency in
      asdf.asd.
      
      Also, added a comparison between the operation-time and the latest
      update time for the input files of a component and operation.
      Previously, even if the input files were newer than the last operation
      time, if there were no output files, ASDF would incorrectly think the
      operation was up-to-date.
      18b8cfe3
  2. 23 May, 2017 15 commits
    • Francois-Rene Rideau's avatar
      1ad4042c
    • Francois-Rene Rideau's avatar
      More backward compatible REQUIRE behavior · d9c15849
      Francois-Rene Rideau authored
      Don't warn when OPERATE is called by REQUIRE.
      
      Don't use :FORCE-NOT in REQUIRE-SYSTEM (only check that
      the required system isn't present yet; otherwise inherit ambient force-not).
      d9c15849
    • Francois-Rene Rideau's avatar
      Only warn in recursive calls to operate · 4e5cccf2
      Francois-Rene Rideau authored
      Don't error out but only warn when operate is recursively called.
      Too much legacy code uses load-system or require inside lisp files
      and/or perform methods.
      4e5cccf2
    • Francois-Rene Rideau's avatar
      Correctly track status of actions across phases · 40b86923
      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.
      40b86923
    • Francois-Rene Rideau's avatar
      Replace *defined-systems* by *registered-systems* · a5345448
      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.
      a5345448
    • Francois-Rene Rideau's avatar
      Separate forcing from plan · fe835596
      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.
      fe835596
    • Francois-Rene Rideau's avatar
      833980c2
    • Francois-Rene Rideau's avatar
      Move flag for asdf upgrade from operate to session. · 0796586f
      Francois-Rene Rideau authored
      This should notably prevent recording of a circular dependency of asdf on asdf.
      0796586f
    • Francois-Rene Rideau's avatar
      Introduce primary-system-p · 6688d26b
      Francois-Rene Rideau authored
      Tweak primary-system-name to extract a component's system's primary-name.
      primary-system-p recognizes only systems (not random component) and
      strings that name them.
      6688d26b
    • Francois-Rene Rideau's avatar
      Include DEFINE-OP in mark-component-preloaded · dd29916b
      Francois-Rene Rideau authored
      Move it to asdf/find-system.
      dd29916b
    • Francois-Rene Rideau's avatar
      876e4b86
    • Francois-Rene Rideau's avatar
      Refactor load-asd to perform a define-op · 7f92cab9
      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).
      7f92cab9
    • Francois-Rene Rideau's avatar
      Move node visit information from plan to session · aba8811b
      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.
      aba8811b
    • Francois-Rene Rideau's avatar
      Introduce an *asdf-session* that may contain more than a cache. · a925eda1
      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.
      a925eda1
    • Francois-Rene Rideau's avatar
      Rename asdf/cache to asdf/session · c1a125bb
      Francois-Rene Rideau authored
      c1a125bb
  3. 31 Oct, 2016 1 commit
  4. 25 Sep, 2016 3 commits
    • Francois-Rene Rideau's avatar
      Have system-source-file accept NIL as argument. · 7b05f832
      Francois-Rene Rideau authored
      Simplify find-system and a test accordingly.
      
      Also, group map-systems with other related functions.
      7b05f832
    • Francois-Rene Rideau's avatar
      Fix the upgrade hooks · 9b431ca3
      Francois-Rene Rideau authored
      The order in which the upgrade fixups were called wasn't very robust.
      We need to first get a list of systems being defined, then
      clear defined systems (but not asdf, and *neither uiop* that asdf depends on),
      then upgrade the configuration, and *finally* reload any of the systems being
      defined (including their defsystem-depends-on dependencies!),
      which means this all has to be coordinated within the same function.
      9b431ca3
    • Francois-Rene Rideau's avatar
      Remove *post-upgrade-restart-hook* · 3dd1f67d
      Francois-Rene Rideau authored
      p-u-r-h was never called! Two functions were registered.
      Register them with *post-upgrade-cleanup-hook* instead.
      The hook was introduced with pre-release 2.27,
      possibly with the intent to be called by the main operate :around method
      when an asdf build is restarted in the middle. But that never happened.
      3dd1f67d
  5. 22 Sep, 2016 1 commit
  6. 20 Sep, 2016 1 commit
  7. 17 Sep, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Fix declaim ftype for mark-component-preloaded · 96ea9270
      Francois-Rene Rideau authored
      SBCL cares about type declarations, and the declared ftype became a lie
      after allowing arbitrary component designators rather than only components
      in calls to mark-component-preloaded, which *sometimes* caused errors.
      96ea9270
  8. 15 Sep, 2016 2 commits
    • Robert Goldman's avatar
      Minor docstring typos. · 4d4b5222
      Robert Goldman authored
      4d4b5222
    • Francois-Rene Rideau's avatar
      Move auto-version from immutable to preloaded systems · 4344de27
      Francois-Rene Rideau authored
      Daniel Kochmanski convinced me that immutable systems are "just" blessed
      preloaded systems; the automatic version feature of immutable systems can thus
      be generalized to all preloaded systems.
      
      Update several docstrings.
      
      Also, document that direct access to *immutable-systems* is not supported.
      Contact the maintainers if you need an interface to that.
      4344de27
  9. 14 Sep, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Eagerly register preloaded systems · d33ab0bc
      Francois-Rene Rideau authored
      Change clear-system accordingly, and simplify how we handle immutable systems.
      Add or improve documentation for several of the functions involved.
      
      Also stop advertising asdf::*immutable-systems*;
      instead promote asdf:register-immutable-system.
      
      This is a preliminary to fixing component-loaded-p for preloaded systems.
      d33ab0bc
  10. 13 Sep, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Refactoring: introduce the function REGISTERED-SYSTEM · 7b7b9f0c
      Francois-Rene Rideau authored
      Introduce the function REGISTERED-SYSTEM to abstract over finding a registered
      system by name, without having to take the CDR of the pair with timestamp.
      
      Also, add or improve docstrings for several functions.
      
      This refactoring should not modify any semantics,
      except for introducing this new function.
      7b7b9f0c
  11. 12 Sep, 2016 1 commit
  12. 28 Nov, 2015 1 commit
  13. 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
  14. 10 Jul, 2015 1 commit
  15. 29 Jun, 2015 1 commit
    • Dave Cooper's avatar
      Add and export a register-immutable-system function. · 1b38225b
      Dave Cooper authored
      Make *immutable-systems* also respect preloaded-systems.
      Don't clear immutable-systems as part of clear-system and clear-defined-system.
      Export register-preloaded-system.
      Add a test, ensure bugs are fixed.
      
      This code was written by Dave Cooper then tweaked by Francois-Rene Rideau.
      1b38225b
  16. 27 Apr, 2015 1 commit
  17. 11 Jul, 2014 2 commits
  18. 10 Jul, 2014 3 commits
  19. 09 Jul, 2014 1 commit
  20. 05 Jul, 2014 1 commit