1. 05 Oct, 2018 1 commit
    • Robert P. Goldm an's avatar
      Fix UIOP bundling on ECL. · 15344571
      Robert P. Goldm an authored
      Bundling on ECL wasn't working because UIOP was not properly being detected, because its name wasn't coerced.
      Thanks to Marius Gerbershagen.
      15344571
  2. 05 Aug, 2018 1 commit
  3. 05 Dec, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Fix upgrade issue with asdf/bundle. · 8e68ac22
      Francois-Rene Rideau authored
      Change implementation strategy for operation metadata methods
      bundle-type, gather-operation and gather-type.
      
      Upgrading from 3.1.7 or earlier yielded incorrect values for the metadata slots
      of the bundle operation classes, e.g.
      (gather-type (make-operation 'monolithic-lib-op))) was stuck to :STATIC-LIBRARY
      instead of its correct value :OBJECT since 3.2.0.
      The reason was that we were storing the value for this method in the :initform
      for the slot gather-type, which started as clever way of defining it as part of
      the DEFCLASS form for the class itself; however, this usage pattern does not
      work well with hot code upgrade: if the :initform changes during ASDF upgrade,
      the slot is already initialized, so its value isn't updated. That would require
      a method on UPDATE-INSTANCE-FOR-REDEFINED-CLASS, which hopefully should be
      invoked despite the fact that the shape of the class hasn't changed.
      A new slot won't be allocated because (a) we ensure that our operation classes
      are singleton classes using an *operations* cache, so objects are not
      reallocated, and (b) we define our slots with an :allocation :class, anyway.
      Remarkably, at least *some* of our changes in :initform have worked anyway,
      because when we transitioned allocation from :instance (default) to :class,
      that transition did force the computation of the new :initform, so the problem
      was hidden. But we're already out of luck with this upgrade from 3.1.7,
      and we must find a real solution.
      
      The Right Thing(tm) to do is to use DEFMETHOD to define specialized values.
      This commit does exactly that for the slots defined in bundle.lisp
      (and also used in concatenate-source.lisp). Ideally, we'd also do that
      for the slots defined in action.lisp and used in lisp-action.lisp, bundle.lisp
      and concatenate-source.lisp --- but there might or might not be clients
      in Quicklisp (or beyond Quicklisp) that this change would break.
      We must check backward compatibility, make sufficient announcement, etc. Sigh.
      8e68ac22
  4. 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
  5. 21 Jul, 2017 1 commit
    • Francois-Rene Rideau's avatar
      Fix issues with ECL with the new plan · df2261fe
      Francois-Rene Rideau authored
      Update some packages so #+ecl forms can see symbols they need.
      Make sure uiop and/or asdf have linkable output before to link them.
      Fix test-program to account for recent asdf changes.
      df2261fe
  6. 20 Jul, 2017 2 commits
    • 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
      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
  7. 17 Feb, 2017 4 commits
  8. 12 Jan, 2017 1 commit
  9. 07 Dec, 2016 2 commits
    • Francois-Rene Rideau's avatar
      Stop using .a's as input for anything but image · 61abf8c4
      Francois-Rene Rideau authored
      There is no robust portable way to combine multiple .a files together;
      libtool kind of works but has weird limitations and is a cumbersome dependency
      to require, and even it doesn't work well in cross-compilation setting.
      The ECL maintainer Daniel K suggests we should always link from object files:
      https://bugs.launchpad.net/bugs/1647391
      
      This patch still uses static libraries as input for images,
      but even that could be changed.
      61abf8c4
    • 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
  10. 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
  11. 06 Nov, 2016 2 commits
    • 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
  12. 29 Oct, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Fix bundle-op and concatenate-source-op file order · 0e0a851b
      Francois-Rene Rideau authored
      Fix direct-dependencies, that was reversed from file order,
      leading to inversions in the order of input files for bundle-op and
      concatenate-source-op as compared to what a user would expect.
      
      Check all the bootstrap file lists and provide an *actionable* error message
      when discrepancies are detected.
      
      Also fix bundle's use of required-components to be in line with an old comment.
      And remove the comment.
      0e0a851b
  13. 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
  14. 25 Sep, 2016 1 commit
  15. 21 Sep, 2016 1 commit
  16. 20 Sep, 2016 1 commit
  17. 15 Sep, 2016 1 commit
    • Francois-Rene Rideau's avatar
      Tweak bundle some more · 17e4223e
      Francois-Rene Rideau authored
      When injecting dependencies, acknowledge the case when the compiler cmp
      was linked into ECL and there is neither system nor module.
      
      At places, use 'fun rather than #'fun in case function redefinition may happen.
      17e4223e
  18. 11 Sep, 2016 6 commits
  19. 10 Sep, 2016 7 commits
  20. 12 Jan, 2016 1 commit
  21. 18 Nov, 2015 1 commit
  22. 02 Oct, 2015 1 commit