1. 15 Dec, 2018 2 commits
  2. 05 Oct, 2018 1 commit
  3. 02 Aug, 2018 2 commits
  4. 31 Jul, 2018 1 commit
  5. 08 Apr, 2018 2 commits
  6. 01 Mar, 2018 1 commit
  7. 20 Feb, 2018 1 commit
  8. 03 Jan, 2018 1 commit
  9. 05 Dec, 2017 2 commits
  10. 20 Oct, 2017 3 commits
    • Francois-Rene Rideau's avatar
      Extend the set of versions from which to test upgrade · bfbefcec
      Francois-Rene Rideau authored
      A recent manual test found a bug upgrading from 3.2.1.
      So include that in the test set.
      New policy: include first and last of the last few ASDF series, not just last.
      bfbefcec
    • Francois-Rene Rideau's avatar
      Rename stamp to timestamp in uiop/utility · c6654583
      Francois-Rene Rideau authored
      Restore backward compatibility with older versions of ASDF (before 3.3.0)
      by renaming stamp< and its friends to timestamp<, etc.
      Sometime in the lead-up to ASDF 3.3.0, I changed the encoding of infinities
      from NIL is -infinity and T is +infinity to T is -infinity and T is +infinity
      which made the code notably nicer on the ASDF side, because file-write-date
      would return directly the correct result instead of having to constantly switch
      between inverse conventions. However --- big mistake --- I kept the same
      function name, after checking that the functions had no user in Quicklisp,
      no one who had ever discussed them but me, and no documentation before 3.2.0
      except a single comment line for the entire family of functions.
      This doesn't matter as long as ASDF and UIOP are kept in synch, but such is
      not the case with Quicklisp, where Xach both welcomes recent UIOP releases
      but refuses to include updates to ASDF itself. Then, loading a new UIOP
      with reverse conventions totally confuses the old ASDF, and causes spurious
      rebuilds of everything after UIOP is loaded -- multiple times if present
      in multiple phases (that and slower build times is how Xach noticed the bug).
      The solution adopted is to give a new name to the functions with a different
      convention -- timestamp< instead of stamp<, and so on. Therefore,
      the new ASDF 3.3.1 will expect the new convention from UIOP 3.3.1,
      that will no longer overwrite the functions from ASDF 3.2.1 and older with
      backward-incompatible variants. If an old ASDF 3.2.1 or earlier loads
      a newer UIOP 3.3.1 or later, it will keep using the old functions:
      the symbols for these functions will be uninterned, but
      the values for these functions which won't be clobbered anymore.
      Backward compatibility is a strong requirement not to to break lightly,
      not even in a subtle way, not even if "nobody else is using it" ---
      an older version of ASDF is already "somebody else" with respect to UIOP.
      c6654583
    • Francois-Rene Rideau's avatar
      Add upgrade test for UIOP issue that Xach found. · 40020f7d
      Francois-Rene Rideau authored
      UIOP 3.3.0 loaded on top of an earlier ASDF 3 would cause everything to be
      spuriously rebuilt, because of a change of representation of stamp< arguments.
      This test evidences the breakage, and the fix.
      40020f7d
  11. 12 Oct, 2017 1 commit
  12. 01 Sep, 2017 1 commit
  13. 24 Jul, 2017 2 commits
    • Francois-Rene Rideau's avatar
      Fix run-program on clisp/win multicommand strings · a0939ad0
      Francois-Rene Rideau authored
      Group the commands in ( parentheses ) including the optional chdir.
      Update the test-run-program.script.
      a0939ad0
    • Francois-Rene Rideau's avatar
      Fix upgrade issues on ABCL and ECL · 815a1833
      Francois-Rene Rideau authored
      Fix upgrade on ABCL, that failed to properly process the fact that
      initialize-source-registry had moved from asdf/find-system to
      asdf/source-registry, yet was called in a cleanup function.
      
      Fix upgrade on ECL, that failed to correctly process that
      find-component was fmakunbound.
      It also seems to clear *central-registry* in some upgrade scenarios
      (that also moved from find-system to system-registry).
      
      Tweak script-support to not unconditionally frob-packages
      when ASDF isn't loaded yet, and to not include the asdf directory
      when loading and testing only UIOP.
      815a1833
  14. 23 Jul, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Add back make-build on ECL · 41f397c9
      Francois-Rene Rideau authored
      This provides for backward compatibility with ECL, whose current
      maintainer Daniel K. has decided to keep supporting the make-build
      interface and has forked ASDF for that.
      41f397c9
  15. 21 Jul, 2017 2 commits
  16. 20 Jul, 2017 17 commits
    • Robert Goldman's avatar
      Fix bug detecting need to reload defsystem. · aca68cf1
      Robert Goldman authored
      Previously, if one bumped a version number that was included into a
      system definition using :READ-FILE-FORM or :READ-FILE-LINE, ASDF would
      not notice the change (so it could, for example, fail to recognize that
      a depended-on system has had its version number bumped and now satisfies
      a new :VERSION requirement).
      
      This was fixed by adding ADDITIONAL-INPUT-FILES to the object model.
      These serve the purpose of giving a place other than INPUT-FILES for ASDF
      to stash input files that it "notices" on its own (e.g., when processing
      :READ-FILE-<FOO>).  ASDF can't stash such files in INPUT-FILES, because
      it must leave the INPUT-FILES primary methods open for users to
      override.
      aca68cf1
    • Robert Goldman's avatar
      Allow user to disable backtraces. · b0f468c0
      Robert Goldman authored
      In some cases the backtraces aren't useful, and obscure more important
      information.  Now the user can disable them with lisp variable or
      environment variable.
      
      (cherry picked from commit 99422ff9238f72fbad557e8d716bee9df2e84d7c)
      b0f468c0
    • Francois-Rene Rideau's avatar
      08c2dee8
    • Francois-Rene Rideau's avatar
      Add test case for spurious rebuild in ddo · 4ed76c32
      Francois-Rene Rideau authored
      I noticed that some systems, e.g. fast-io, will cause UIOP, CFFI, and
      everything that depends on it, to be constantly recompiled.
      Interestingly, this doesn't happen with any of the systems that fast-io
      directly depends on: alexandria, trivial-gray-streams, and static-vectors.
      And interestingly, the test case, once reduced, is exactly isomorphic to
      the test case already in test-defsystem-depends-on-phase-overlap.script:
      fast-io => main-system, alexandria => overlapping-dependency,
      static-vectors => intermediate-dependency, bazel => defsystem-dependency
      And indeed, adding a test for it detects the failure.
      4ed76c32
    • 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
      Reproduce staging failure from cl-protobufs-tests · eed95a70
      Francois-Rene Rideau authored
      Add test case in test-defsystem-depends-on-phase-overlap.script for a failure
      observed when running (test-system "cl-protobufs"):
      the action (test-op "cl-protobufs") depends on (load-op "cl-protobufs"),
      which gets staged at level 0; it then depends on (test-op "cl-protobufs-tests")
      which defsystem-depends-on (load-op "cl-protobufs"), but it has already been
      staged, so traverse-action fails to re-stage it at higher priority for level 1,
      and fails to perform it before we're back to defsystem "cl-protobufs-tests".
      eed95a70
    • Francois-Rene Rideau's avatar
      Stop having asdf.asd depend on uiop.asd · a61bd35e
      Francois-Rene Rideau authored
      A DEFINE-OP "asdf" shouldn't depend on a DEFINE-OP "uiop", or
      a circular dependency may be introduced by the "always load asdf first"
      behavior. Instead, have asdf/driver do a low-level copy of the components
      in uiop, rather than a transclusion of a system defined in a separate file.
      a61bd35e
    • Francois-Rene Rideau's avatar
      Make test-force pass with asdf-tools · 1eb9210b
      Francois-Rene Rideau authored
      TODO: understand what's going on there...
      1eb9210b
    • 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
    • Francois-Rene Rideau's avatar
      Tweak some tests · 87788ed0
      Francois-Rene Rideau authored
      87788ed0
    • Francois-Rene Rideau's avatar
      Add test for systems used in multiple phases · 79638a7d
      Francois-Rene Rideau authored
      Add test-defsystem-depends-on-phase-overlap.script (currently failing) to check
      that an action present in multiple phases will only be performed once.
      79638a7d
    • 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
      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
      51accff1
    • 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
      4fad7181