1. 26 Jul, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Fix more upgrade issues · 65d16a93
      Francois-Rene Rideau authored
      Use :recycle of :asdf/find-system in :asdf/source-registry to migrate symbol
      initialize-source-registry that moved from that previous packages
      (otherwise, upgrade from 3.2.1 breaks on all lisps).
      
      Also :recycle :asdf/action in :asdf/plan for required-components and
      traverse-action. But avoid interning plan in asdf/action so it doesn't
      confuse clisp when upgrading from 2.26(!).
      65d16a93
  2. 20 Jul, 2017 8 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
    • Francois-Rene Rideau's avatar
      10f329e5
    • 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
      51accff1
    • 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
      3d0d07c3
    • 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
      Rename asdf/cache to asdf/session · 49dbfc0c
      Francois-Rene Rideau authored
      49dbfc0c
  3. 19 Feb, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Fix issue upgrading from 3.1.7 or earlier · 1a241a5c
      Francois-Rene Rideau authored
      To reproduce the bug, on sbcl, allegro, cmucl (and presumably all other
      implementations?) try:
      
      ASDF_UPGRADE_TEST_TAGS=3.1.7 \
      ASDF_UPGRADE_TEST_METHODS="'load-asdf-lisp'compile-load-asdf-upgrade" \
      make u l=sbcl ; \
      make t l=sbcl t=test-utilities.script
      
      TEST ABORTED: These two expressions fail comparison with EQUAL:
       NIL evaluates to NIL
       (FISHY-ASDF-EXPORTED-SYMBOLS) evaluates to
       (("ASDF/INTERFACE" "REQUIRED-COMPONENTS")
        ("ASDF/PLAN" "TRAVERSE-SUB-ACTIONS" "REQUIRED-COMPONENTS" "TRAVERSE-ACTIONS"))
      
      After loading the FASL compiled from 3.1.7 (or earlier ASDF3),
      the symbols are unexported in their old package ASDF/ACTION,
      and the same-named symbols in ASDF/PLAN (and ASDF/INTERFACE)
      are fresh symbols that are not fbound.
      
      The solution is for ASDF/ACTION to :UNINTERN those symbols.
      ASDF/PLAN cannot include ASDF/ACTION in its :RECYCLE clause,
      because it comes *after* ASDF/ACTION, and that would negatively affect
      other symbols from ASDF/ACTION that ASDF/PLAN imports (at least on CCL).
      1a241a5c
  4. 18 Jan, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Stop warning in define-convenience-methods explain · 64d01eca
      Francois-Rene Rideau authored
      The convenience methods recursively call explain, which cause a style-warning
      if the compiler-macro is already defined, and a different one if it is defined
      afterwards. The solution is to declare the function notinline in the body of
      the convenience methods.
      
      This fixes test-clean-load on sbcl, and more generally
      hushes loading asdf.lisp from source.
      64d01eca
  5. 09 Jan, 2017 1 commit
  6. 07 Dec, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Support for notification that some functions are deprecated. · c1652787
      Francois-Rene Rideau authored
      Deprecation goes through the following phases:
      style-warning, warning, cerror, functionality removed.
      Automatically upgrade the deprecation phase at every minor version change
      (not every release).
      
      Include minimal testing of the deprecation functionality.
      Add deprecation TODO items.
      
      Deprecation will start with 3.2.
      c1652787
  7. 26 Nov, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Get fully rid of operation initargs · 6bb7aa6b
      Francois-Rene Rideau authored
      ASDF never supported operation initargs, and its component-operation-times
      always assumed that two operations of the same class were equivalent.
      Make it explicitly so and enforce it.
      
      Do NOT pass keys from operate to make-instance operation.
      Catch any attempt to create an operation with initargs and raise an error.
      Make sure no operation class has any slot that isn't :allocation :class
      (with some MOP magic we could do it in at class definition time,
      but that's not portable enough and we don't want to reimplement closer-mop
      or depend on it.)
      
      This is a preliminary to allowing CONS instead of NODE-FOR to identify actions,
      whether or not we want to allow some form of initargs in the future.
      
      Remove unused COMPILE-OP-FLAGS and COMPILE-OP-PROCLAMATIONS.
      Remove MAKE-BUILD that depended on the unsupported operation initargs.
      Use PROGRAM-OP on a PROGRAM-SYSTEM instead.
      Remove the confusingly misnamed and not-so-useful BUILD-SYSTEM function;
      it can be done better in userland.
      6bb7aa6b
  8. 11 Nov, 2016 1 commit
    • Robert Goldman's avatar
      Add pseudo-accessors to ACTIONs. · bbf1914a
      Robert Goldman authored
      ACTIONs are currently simply CONS cells.
      Previously these were accessed with CAR and CDR and made with CONS.
      Now there are "accessor" functions, ACTION-OPERATOR and
      ACTION-COMPONENT.  Also MAKE-ACTION.
      The intention is to make the ASDF code more readable.
      bbf1914a
  9. 31 Oct, 2016 1 commit
  10. 29 Oct, 2016 1 commit
    • Robert Goldman's avatar
      Enforce use of MAKE-OPERATION. · 1e3471c6
      Robert Goldman authored
      Check for and reject attempts to directly invoke MAKE-INSTANCE on
      OPERATION classes.
      Add a test for the error condition.
      Squashed commit of the ENFORCE-MAKE-OPERATION branch.
      1e3471c6
  11. 16 Oct, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Stop fmakunbound'ing defgeneric's past the upgrade trigger · 8e0ec0e9
      Francois-Rene Rideau authored
      If we fmakunbound a defgeneric, we lose any user-defined method on the function
      and must therefore reload any and every system that might have defined methods
      on it. We must therefore not fmakunbound past the forward compatibility upgrade
      trigger, only before. Adjust our code accordingly. Conservative bounds are used
      in *oldest-forward-compatible-asdf-version* and redefined-functions that should
      probably be refined after some inspection of old versions.
      
      This is a response to https://bugs.launchpad.net/asdf/+bug/1631771
      8e0ec0e9
  12. 25 Sep, 2016 2 commits
  13. 21 Sep, 2016 1 commit
  14. 20 Sep, 2016 1 commit
  15. 10 Jan, 2016 1 commit
  16. 08 Jan, 2016 1 commit
  17. 24 Mar, 2014 2 commits
  18. 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
  19. 13 Mar, 2014 1 commit
  20. 28 Feb, 2014 1 commit
  21. 23 Feb, 2014 1 commit
  22. 18 Feb, 2014 1 commit
  23. 12 Feb, 2014 1 commit
  24. 31 Jan, 2014 1 commit
  25. 27 Jan, 2014 4 commits
    • Francois-Rene Rideau's avatar
      Make build-op a non-propagating-operation. · 888c6fd1
      Francois-Rene Rideau authored
      Paper over GCL failure in test-operation-classes; tweak test.
      Tweak Makefile for one more test.
      888c6fd1
    • Francois-Rene Rideau's avatar
      More cleanups: · c7d1ce63
      Francois-Rene Rideau authored
      * Add some comments on TRAVERSE-ACTION; expand those on SOURCE-FILE-TYPE.
      * Remove a few unnecessary input-files or output-files methods
      * Remove (declare (ignorable ...)) for specialized arguments. Specialize a few arguments to T.
      * Remove most when-upgrading methods, since we drop data on old incompatible ASDFs.
      c7d1ce63
    • Francois-Rene Rideau's avatar
      Implement the discussed non-monotonic inheritance of propagation traits. · eb2da723
      Francois-Rene Rideau authored
      For backward compatibility with ASDF 2, an operation that doesn't explicitly
      inherit from one of the propagation classes or non-propagating-operation
      will be downward- and sideway- propagating, with a warning at instantiation.
      Inheriting from non-propagating and a propagating class at the same time
      yields an error, not a warning.
      Update packages and tests.
      eb2da723
    • 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
  26. 26 Jan, 2014 1 commit
  27. 21 Jan, 2014 2 commits