- 16 Jul, 2017 11 commits
-
-
Robert Goldman authored
The third test revealed problems in test interaction with FIND-SYSTEM.
-
Robert Goldman authored
Made DEFINE-CONVENIENCE-ACTION-METHODS unnecessarily general. Reverted.
-
Robert Goldman authored
Remove hand-written boilerplate in favor of existing macro.
-
Robert Goldman authored
When processing system definition, invalidate the INPUT-FILES cache for DEFINE-OP.
-
Robert Goldman authored
-
Robert Goldman authored
Change the read file used to specify version and make sure INPUT-FILES and reloading behavior reflect this properly.
-
Robert Goldman authored
Fare points out that checking the input-files against the component-done-time is not necessary: it's done elsewhere.
-
Robert Goldman authored
Files read in by READ-FILE-LINE or READ-FILE-FORM were not being tracked. With this change, they are noticed and added to ADDITIONAL-INPUT-FILES for a component and operation. Adding this tracking led to introduction of a new dependency in asdf.asd. Also, added a comparison between the operation-time and the latest update time for the input files of a component and operation. Previously, even if the input files were newer than the last operation time, if there were no output files, ASDF would incorrectly think the operation was up-to-date.
-
Robert Goldman authored
If I modify an input file too soon after the system is first built, then ASDF will not detect the system as out of date, because the time stamp resolution is insufficiently fine. Added sleep to script for this.
-
Robert Goldman authored
Test to see if systems are reloaded when files included in them using either :READ-FILE-FORM or :READ-FILE-LINE are changed.
-
Robert Goldman authored
These are both things that have nothing to do with the read-depends issue, so they belong with the plan. * commit '4c61a8c5': Export DEFINE-OP. Better document include directives.
-
- 14 Jul, 2017 1 commit
-
-
Robert Goldman authored
In some cases the backtraces aren't useful, and obscure more important information. Now the user can disable them with lisp variable or environment variable. (cherry picked from commit 99422ff9238f72fbad557e8d716bee9df2e84d7c)
-
- 29 Jun, 2017 2 commits
-
-
Robert Goldman authored
I couldn't think of a reason not to export this, in case someone wants to extend the implementation of the operation.
-
Robert Goldman authored
Added :read-file-line to the documentation. Add "version-specifier" rules to the defsystem grammar. Clarify the :at option discussion (it's the option as a whole that is optional, not just the keyword).
-
- 23 May, 2017 26 commits
-
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
Add feature :asdf3.3 because it will be needed e.g. for with-asdf-session. Drop feature :asdf-package-system that shouldn't be used, and isn't used in Quicklisp indeed (good). The official feature to use is :asdf3.1 instead.
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
Drop any information in undefined-system that isn't in proto-system.
-
Francois-Rene Rideau authored
And add more debug information.
-
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
-
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. f plan
-
Francois-Rene Rideau authored
I noticed that some systems, e.g. fast-io, will cause UIOP, CFFI, and everything that depends on it, to be constantly recompiled. Interestingly, this doesn't happen with any of the systems that fast-io directly depends on: alexandria, trivial-gray-streams, and static-vectors. And interestingly, the test case, once reduced, is exactly isomorphic to the test case already in test-defsystem-depends-on-phase-overlap.script: fast-io => main-system, alexandria => overlapping-dependency, static-vectors => intermediate-dependency, bazel => defsystem-dependency And indeed, adding a test for it detects the failure.
-
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
Add test case in test-defsystem-depends-on-phase-overlap.script for a failure observed when running (test-system "cl-protobufs"): the action (test-op "cl-protobufs") depends on (load-op "cl-protobufs"), which gets staged at level 0; it then depends on (test-op "cl-protobufs-tests") which defsystem-depends-on (load-op "cl-protobufs"), but it has already been staged, so traverse-action fails to re-stage it at higher priority for level 1, and fails to perform it before we're back to defsystem "cl-protobufs-tests".
-
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
A DEFINE-OP "asdf" shouldn't depend on a DEFINE-OP "uiop", or a circular dependency may be introduced by the "always load asdf first" behavior. Instead, have asdf/driver do a low-level copy of the components in uiop, rather than a transclusion of a system defined in a separate file.
-
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
TODO: understand what's going on there...
-
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
-
Francois-Rene Rideau authored
-
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
Add test-defsystem-depends-on-phase-overlap.script (currently failing) to check that an action present in multiple phases will only be performed once.
-
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.
-