1. 23 May, 2017 9 commits
    • 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
      1a253e2f
    • 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
  2. 19 Feb, 2017 3 commits
  3. 17 Feb, 2017 4 commits
  4. 12 Jan, 2017 1 commit
  5. 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
  6. 01 Dec, 2016 1 commit
  7. 30 Nov, 2016 1 commit
  8. 27 Nov, 2016 2 commits
  9. 26 Nov, 2016 2 commits
    • Francois-Rene Rideau's avatar
      Fix ECL bundle and tests · 01aa2ff4
      Francois-Rene Rideau authored
      Push monolithic-op to the back of inheritance, to preserve class-allocated
      slot bundle-type slot in a class in front of the inheritance list.
      
      Now that make-build was remove,
      adjust some ECL tests to use program-op instead.
      01aa2ff4
    • 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
  10. 25 Nov, 2016 1 commit
  11. 23 Nov, 2016 1 commit
    • Elias Pipping's avatar
      Fix test-run-program on windows · 3c514bfe
      Elias Pipping authored
      We cannot use `exit` on Windows with :force-shell nil (it's a builtin);
      use `cmd /c exit` instead.
      
      Using `exit` on Unix with :force-shell nil may or may not work (it's a
      builtin but CL implementations typically invoke a shell anyway).
      `true` and `false` are guaranteed to exist by the POSIX standard.
      3c514bfe
  12. 22 Nov, 2016 9 commits
  13. 20 Nov, 2016 1 commit
  14. 15 Nov, 2016 1 commit
  15. 06 Nov, 2016 3 commits
    • Francois-Rene Rideau's avatar
      Make test-try-refinding more robust vs MKCL · bd65bcea
      Francois-Rene Rideau authored
      It looks like a bug in MKCL 1.1.9 causes the entire test to be re-run when
      the asdf:retry restart is invoked. Use a defvar rather than a lexical
      (or a defparameter) to check that an attempt was made, and exit with prejudice
      instead of throwing an error.
      bd65bcea
    • Francois-Rene Rideau's avatar
      Fix monolithic-dll-op on ECL · 5e85031c
      Francois-Rene Rideau authored
      Use required-components in a way that is more robust when
      *load-system-operation* is load-bundle-op rather than load-op,
      by using basic-compile-op and/or basic-load-op as the :keep-operation
      rather than compile-op or load-op respectively.
      
      Test-bundle was passing the first time around, but not the second time.
      The first time, it was only passing because the appropriate file were
      loaded while building the dependencies of the target monolithic dll;
      but monolithic-dll-op was already buggy and not linking all these dependencies.
      The second time around, there was no building step and the proper dependencies
      had failed to be linked in, so the loading failed.
      
      This fixes https://bugs.launchpad.net/asdf/+bug/1626994
      5e85031c
    • Francois-Rene Rideau's avatar
      Restore proper use of required-components, with explanation · 822e8afa
      Francois-Rene Rideau authored
      Undo part of 0e0a851b, that changed the keep-operation in invocations of
      required-components from compile-op to load-op. Explain why in a comment of
      bundle.lisp: so any compiled file for the component itself be included,
      which notably matters when using a package-inferred-system.
      
      This notably fixes test-bundle.script, test-program.script on mkcl and ecl,
      and test-concatenate-source.script on ecl.
      
      Also simplify the test-bundle support files and remove some warnings.
      822e8afa