- 21 Oct, 2017 1 commit
-
-
Francois-Rene Rideau authored
A when-upgrading form had an improper version.
-
- 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(!).
-
- 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
Fix mark-status-needed to be a special-purpose action-status-or, and not use an action-status-and that merge-action-status is. This was causing level escalation to wholly invalidate some actions and have them rebuild all the time. Fix merge-action-status which is a action-status-and; also fix its documentation. That is minor, but still.
-
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
Refactor plan to define and export two functions that make POIU's life easier.
-
Francois-Rene Rideau authored
Use NIL instead of T as the status stored in the visited-actions hash-table when the status is unknown, and check whether it (or a known status) is present using the second value of GETHASH. When a known value is sought, keep checking for the first value.
-
Francois-Rene Rideau authored
-
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
Stop unnecessarily re-performing initial input-less actions. Also fix (setf (action-status nil o c) ...), which therefore seems not to have been previously used.
-
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
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
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
-
- 19 Feb, 2017 1 commit
-
-
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).
-
- 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.
-
- 11 Nov, 2016 1 commit
-
-
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.
-
- 29 Oct, 2016 1 commit
-
-
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.
-
- 25 Sep, 2016 2 commits
-
-
Francois-Rene Rideau authored
The previous use of defun (foo) () relying on with-upgradability was confusing to new developers reading the code. Explicitly using defun* and defgeneric* in these cases makes the code less surprising and less confusing to readers.
-
Francois-Rene Rideau authored
Also make traverse-actions and required-components simple defuns. It's unclear why they were in action. Maybe at some point in the past, they have been used earlier in the build.
-
- 22 Sep, 2016 2 commits
-
-
Francois-Rene Rideau authored
-
Robert Goldman authored
There was a kind of sentence fragment in a comment to PLAN-TRAVERSAL DEFCLASS. I tried to clarify it. I may have guessed wrong about its intended meaning.
-
- 21 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 20 Sep, 2016 1 commit
-
-
Francois-Rene Rideau authored
Move code around a bit and rename a few variables, but no real code change.
-
- 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.
-
- 08 Jan, 2016 1 commit
-
-
Francois-Rene Rideau authored
Fixes lp#1531887, whereby some actions all dependencies of which were already done would be given the wrong timestamp after perform, and every plan tried to do them anew.
-
- 17 Sep, 2015 1 commit
-
-
Francois-Rene Rideau authored
{,monolithic}{lib,dll}-op used to only work on ECL, MKCL. Now they will work on SBCL and other image-based CLs, though it currently requires a patched CFFI.
-
- 07 Mar, 2014 2 commits
-
-
Francois-Rene Rideau authored
* move *all* timestamp management to COMPUTE-ACTION-STAMP. * goodbye visit-dependencies, move its functionality to map-direct-dependencies, * refactored map-direct-dependencies and co to always take a plan object. * modified clients of map-direct-dependencies and co to pass a proper plan, or t. Add invalid file with false if-feature to bundle.
-
Francois-Rene Rideau authored
-
- 05 Mar, 2014 2 commits
-
-
Francois-Rene Rideau authored
Add regression tests for the feature. Change the meaning of :force-not t to mean "anything but current system".
-
Francois-Rene Rideau authored
Not only is it the Right Thing™ (see lp#1184002), it makes code simpler. Actually, the two are one and the same. https://bugs.launchpad.net/asdf/+bug/1184002
-
- 28 Feb, 2014 1 commit
-
-
Francois-Rene Rideau authored
-
- 21 Feb, 2014 1 commit
-
-
Francois-Rene Rideau authored
-
- 31 Jan, 2014 1 commit
-
-
Francois-Rene Rideau authored
Remove some trailing spaces.
-
- 28 Jan, 2014 1 commit
-
-
Francois-Rene Rideau authored
Also update comments in TODO file, manual. Make the Makefile test result checking less uselessly verbose.
-
- 27 Jan, 2014 1 commit
-
-
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.
-