- 12 Oct, 2017 1 commit
-
-
Francois-Rene Rideau authored
ASDF 3.3.0 introduced an unwanted discrepancy from 3.2.1, whereby the readtable and print-pprint-dispatch table were not preserved while loading a .asd file, which caused bad libraries like puri to try to corrupt the standard readtable when loaded as defsystem-depends-on dependency or equivalent. See bug report on the asdf-devel mailing-list. The real solution is to redo the syntax-control branch.
-
- 26 Jul, 2017 1 commit
-
-
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(!).
-
- 24 Jul, 2017 1 commit
-
-
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.
-
- 20 Jul, 2017 16 commits
-
-
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.
-
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
Don't error out but only warn when operate is recursively called. Too much legacy code uses load-system or require inside lisp files and/or perform methods.
-
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
-
Francois-Rene Rideau authored
This should notably prevent recording of a circular dependency of asdf on asdf.
-
Francois-Rene Rideau authored
Tweak primary-system-name to extract a component's system's primary-name. primary-system-p recognizes only systems (not random component) and strings that name them.
-
Francois-Rene Rideau authored
Move it to asdf/find-system.
-
Francois-Rene Rideau authored
-
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
-
- 31 Oct, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 25 Sep, 2016 3 commits
-
-
Francois-Rene Rideau authored
Simplify find-system and a test accordingly. Also, group map-systems with other related functions.
-
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.
-
- 22 Sep, 2016 1 commit
-
-
Robert Goldman authored
-
- 20 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 17 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
SBCL cares about type declarations, and the declared ftype became a lie after allowing arbitrary component designators rather than only components in calls to mark-component-preloaded, which *sometimes* caused errors.
-
- 15 Sep, 2016 2 commits
-
-
Robert Goldman authored
-
Francois-Rene Rideau authored
Daniel Kochmanski convinced me that immutable systems are "just" blessed preloaded systems; the automatic version feature of immutable systems can thus be generalized to all preloaded systems. Update several docstrings. Also, document that direct access to *immutable-systems* is not supported. Contact the maintainers if you need an interface to that.
-
- 14 Sep, 2016 1 commit
-
-
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
This should make Daniel K happy. Also remove obsolete cleaning of locate-system cached results, for we haven't cached the result since 00256418 (3.1.2.9, 2014), that this commit partly undoes, partly re-does (due to merge conflict at the time).
-
- 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
-
- 17 Nov, 2015 1 commit
-
-
Francois-Rene Rideau authored
Attila offered these tests, that currently fail at HEAD, for which I have a patch (to be included in next commit). They check that an error when loading defsystem-depends-on dependencies doesn't cause an incomplete system to be registered but never properly parsed, that thereafter pollute the build. A real solution would imply to fix lp#1500578 though: ASDF should handle change in defsystem-depends-on dependencies https://bugs.launchpad.net/asdf/+bug/1500578
-
- 10 Jul, 2015 1 commit
-
-
Francois-Rene Rideau authored
-
- 29 Jun, 2015 1 commit
-
-
Dave Cooper authored
Make *immutable-systems* also respect preloaded-systems. Don't clear immutable-systems as part of clear-system and clear-defined-system. Export register-preloaded-system. Add a test, ensure bugs are fixed. This code was written by Dave Cooper then tweaked by Francois-Rene Rideau.
-
- 27 Apr, 2015 1 commit
-
-
Francois-Rene Rideau authored
-
- 11 Jul, 2014 2 commits
-
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
the functionality was moved to call-with-asdf-cache before where it belongs.
-
- 10 Jul, 2014 2 commits
-
-
Robert P. Goldman authored
Caching negative results here causes pervasive problems, and removing negative caching only would be very messy, so we are removing caching here altogether. This required some modification to the test code, which was directly using LOCATE-SYSTEM, and LOCATE-SYSTEM cannot be safely invoked unless the ASDF-CACHE has been established.
-
Francois-Rene Rideau authored
-