- 20 Jul, 2017 20 commits
-
-
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)
-
Francois-Rene Rideau authored
-
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
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
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
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.
-
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
-
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
-
- 19 Feb, 2017 3 commits
-
-
Francois-Rene Rideau authored
Use the same algorithm as Quicklisp uses for its local-projects: prefer a .asd with a path of shorter depth; and for equal depth, prefer the path with namestring that is least for string<.
-
Francois-Rene Rideau authored
This shall address Allegro testing issues on Windows. Also, no need for an ALLEGRO_NOISY variable.
-
Francois-Rene Rideau authored
Our punting strategy seems to fail, but it doesn't matter, because CCL has always been quite up-to-date on its ASDF.
-
- 17 Feb, 2017 4 commits
-
-
Francois-Rene Rideau authored
Test upgrade from 3.2.0, not from 3.1.5. Make asdf-tools and run-tests agree on which versions to test and to skip.
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
Fixes bundle builds for MKCL post 1.1.10.
-
Francois-Rene Rideau authored
Recent ECLs have libasdf.a instead of asdf.a. Not all bundle-op is a basic-compile-op (e.g. concatenate-source-op). Declaring otherwise was causing asdf/defsystem to appear as a compiled dependency, causing incorrect double inclusion of symbols in the link when asdf was explicitly depended on. Make sure to include only one of uiop or asdf as the fallback support file, and only when neither uiop nor asdf is explicitly depended on. Improve test-program.script for ECL. This fixes https://bugs.launchpad.net/bugs/1660547
-
- 12 Jan, 2017 1 commit
-
-
Francois-Rene Rideau authored
Thus it will run when invoked from asdf-tools and/or the SLIME REPL, independently from the current directory at the time of invoking it.
-
- 07 Dec, 2016 1 commit
-
-
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.
-
- 01 Dec, 2016 1 commit
-
-
Francois-Rene Rideau authored
-
- 30 Nov, 2016 1 commit
-
-
Robert Goldman authored
Use offset to ensure that touch changes the timestamp in a predictable way.
-
- 27 Nov, 2016 2 commits
-
-
Francois-Rene Rideau authored
-
Francois-Rene Rideau authored
It was part of a bug report, superseded by test/test-xach-update-bug.script.
-
- 26 Nov, 2016 2 commits
-
-
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.
-
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.
-
- 25 Nov, 2016 1 commit
-
-
Robert Goldman authored
-
- 23 Nov, 2016 1 commit
-
-
Elias Pipping authored
We cannot use `exit` on Windows with :force-shell nil (it's a builtin); use `cmd /c exit` instead. Using `exit` on Unix with :force-shell nil may or may not work (it's a builtin but CL implementations typically invoke a shell anyway). `true` and `false` are guaranteed to exist by the POSIX standard.
-
- 22 Nov, 2016 3 commits
-
-
Francois-Rene Rideau authored
-
Elias Pipping authored
-
Robert Goldman authored
Use of PATHNAME-MATCH caused spurious test failures on clisp.
-