- 20 Jul, 2017 13 commits
-
-
Francois-Rene Rideau authored
-
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).
-
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).
-
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.
-
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.
-
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.
-
Francois-Rene Rideau authored
This should notably prevent recording of a circular dependency of asdf on asdf.
-
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.
-
Francois-Rene Rideau authored
Move it to asdf/find-system.
-
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).
-
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.
-
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.
-
Francois-Rene Rideau authored
-
- 17 Feb, 2017 2 commits
-
-
Francois-Rene Rideau authored
Use different normalizations for module and system names. Other at least CMUCL, MKCL, SBCL are confused. Fixes test-require.script on the latest MKCL.
-
Francois-Rene Rideau authored
See discussion on https://bugs.launchpad.net/asdf/+bug/1649198
-
- 12 Jan, 2017 1 commit
-
-
Francois-Rene Rideau authored
See discussion on https://bugs.launchpad.net/asdf/+bug/1649198
-
- 26 Nov, 2016 1 commit
-
-
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.
-
- 16 Oct, 2016 1 commit
-
-
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
-
- 25 Sep, 2016 4 commits
-
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
Stop using make-instance directly in a few places. Use our convenience methods in other places.
-
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.
-
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.
-
- 20 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 17 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 16 Sep, 2016 2 commits
-
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
Also remove an extraneous assertion.
-
- 15 Sep, 2016 1 commit
-
-
Robert Goldman authored
-
- 14 Sep, 2016 2 commits
-
-
Francois-Rene Rideau authored
Add find-component keyword argument registered to not load asd files. Use it in component-loaded-p so we query what's registered but don't load asds. Many thanks to Daniel Kochmanski for identifying and helping solve the problem.
-
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.
-
- 13 Sep, 2016 1 commit
-
-
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.
-
- 12 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
Also, reformat a function and use uiop implicitly.
-
- 11 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
The code was not clear enough why string-downcase is used at places, and this notably confused Daniel Kochmański. See discussion at !13
-
- 01 Aug, 2016 1 commit
-
-
Robert Goldman authored
Previous method was over-complicated. Now we simply appropriately define the type UIOP:FATAL-CONDITION, and we can do without both UIOP:*FATAL-CONDITIONS* and UIOP::*FATAL-CONDITION-EXCEPTIONS*.
-
- 24 Jul, 2016 1 commit
-
-
Robert Goldman authored
-
- 28 Nov, 2015 1 commit
-
-
Francois-Rene Rideau authored
This helps with e.g. not needlessly triggering find-system hooks, or invalidating the loadedness status because there was a system update. https://github.com/quicklisp/quicklisp-client/pull/122#issuecomment-159744105
-
- 29 Jun, 2015 1 commit
-
-
Francois-Rene Rideau authored
Hopefully fixes lp#1469732.
-
- 11 Aug, 2014 1 commit
-
-
Robert P. Goldman authored
Also, add a test case and bump version to 3.1.3.3.
-
- 20 Jun, 2014 1 commit
-
-
Francois-Rene Rideau authored
Our method to override 'load-op with *load-system-operation* in defmethod component-depends-on ((o prepare-op) (s system)) was failing to call-next-method, which cancelled the :in-order-to in asdf.asd's own defsystem asdf. Oops. Issue: this means that ASDF 3.1.2 is unfit to bootstrap further variants of ASDF, and they must be bootstrapped with make, or their asdf.asd must be modified in a yet-to-be-determined way to compensate for that bug.
-
- 11 May, 2014 1 commit
-
-
Francois-Rene Rideau authored
-
- 24 Mar, 2014 1 commit
-
-
Francois-Rene Rideau authored
* override for prepare-op is on component-depends-on, not perform. * coerce-class must be defined after call-function, and accept *package* for now.
-