asdf merge requestshttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests2016-10-02T16:14:39Zhttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/28Bless launch-program as primary function2016-10-02T16:14:39ZFrançois-René RideauBless launch-program as primary functionMake %run-program the alias of launch-program rather than the other way around.
Rename %use-run-program to %use-launch-program. Update tests.
NB: I wanted to move %run-program to backward-driver, but that won't help,
since the function ...Make %run-program the alias of launch-program rather than the other way around.
Rename %use-run-program to %use-launch-program. Update tests.
NB: I wanted to move %run-program to backward-driver, but that won't help,
since the function was never exported from uiop/run-program, so wasn't in uiop.3.2.0Elias PippingElias Pippinghttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/27WIP: Handle symbolic links2017-09-03T12:14:51ZElias PippingWIP: Handle symbolic links[Bug 1205653](https://bugs.launchpad.net/asdf/+bug/1205653) and [Bug 1205555](https://bugs.launchpad.net/asdf/+bug/1205555) are just the tip of the iceberg. The behaviour of `uiop:directory-files` and `uiop:subdirectories` is unfortunate...[Bug 1205653](https://bugs.launchpad.net/asdf/+bug/1205653) and [Bug 1205555](https://bugs.launchpad.net/asdf/+bug/1205555) are just the tip of the iceberg. The behaviour of `uiop:directory-files` and `uiop:subdirectories` is unfortunately very far from consistent. Whether a symlink in `~/common-lisp/asdf` is picked up by cl-launch e.g. is equally inconsistent and potentially related.
So far, I've gotten `subdirectories` into a state where it always resolves symlinks and gives me the right answer on the 9 platforms I've tested on.
The sample directory I'm working with:
```
$ find /home/pipping/test -exec ls -ldF {} + | awk '{ for (i=9; i<=NF; ++i) { printf "%s ", $i }; print ""; }'
/home/pipping/test/
/home/pipping/test/broken-link -> does-not-exist
/home/pipping/test/dir/
/home/pipping/test/dir/dir-in-dir/
/home/pipping/test/dir/file-in-dir
/home/pipping/test/dir/secret-dir-in-dir/
/home/pipping/test/.dot-dir/
/home/pipping/test/file
/home/pipping/test/link-to-dir -> dir//
/home/pipping/test/link-to-dir-in-dir -> dir/dir-in-dir//
/home/pipping/test/link-to-file -> file
/home/pipping/test/link-to-file-in-dir -> dir/file-in-dir
$
```
(the secret-dir-in-dir directory is the sole physical directory that doesn't have a link pointing to it. It should thus only ever show up in recursive listings of test/, or regular listings of (symlinks to) test/dir/)
The consistent output I now get (consistent up to the fact that some are truenames and others are not but I think that shouldn't be "fixed")
```
===== abcl =====
(/home/pipping/test/dir/dir-in-dir/ /home/pipping/test/dir/ /home/pipping/test/dir/ /home/pipping/test/.dot-dir/)
===== allegro =====
(/home/pipping/test/link-to-dir-in-dir/ /home/pipping/test/link-to-dir/ /home/pipping/test/dir/ /home/pipping/test/.dot-dir/)
===== ccl =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/link-to-dir /home/pipping/test/link-to-dir-in-dir)
===== clisp =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/dir/ /home/pipping/test/dir/dir-in-dir/)
===== cmucl =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/link-to-dir/ /home/pipping/test/link-to-dir-in-dir/)
===== ecl =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/dir/ /home/pipping/test/dir/dir-in-dir/)
===== lispworks =====
(/home/pipping/test/link-to-dir-in-dir/ /home/pipping/test/link-to-dir/ /home/pipping/test/dir/ /home/pipping/test/.dot-dir/)
===== mkcl =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/dir/ /home/pipping/test/dir/dir-in-dir/)
===== sbcl =====
(/home/pipping/test/.dot-dir/ /home/pipping/test/dir/ /home/pipping/test/link-to-dir-in-dir/ /home/pipping/test/link-to-dir/)
```
Next, I'd like to get an option to work that never resolves symlinks, for reasons of efficiency. Progress so far: The following appears to work (that's 5/9 platforms):
- CCL: `(uiop:directory* (uiop:merge-pathnames* uiop:*wild-directory* "/home/pipping/test/"))`
- ACL, MKCL: `(remove-if-not #'uiop:directory-pathname-p (uiop:directory* (uiop:merge-pathnames* "*.*" "/home/pipping/test/")))`
- ECL: `(uiop:directory* (uiop:merge-pathnames* uiop:*wild-directory* "/home/pipping/test/") :resolve-symlinks nil)`
- CMU CL (>=21b): `(remove-if-not #'uiop:directory-pathname-p (uiop:directory* (uiop:merge-pathnames* "*.*" "/home/pipping/test/") :follow-links nil))`
If SBCL were to apply https://bugs.launchpad.net/sbcl/+bug/1114689 then we could do
```common-lisp
(uiop:directory* (uiop:merge-pathnames* uiop:*wild-directory* "/home/pipping/test/") :resolve-symlinks nil)
```
This leaves the following platforms for tackling: ABCL, CLISP, LispWorks.
## Notes
These do things very different from what I would expect (in particular, not at all portable):
- `(uiop:directory* (uiop:merge-pathnames* uiop:*wild-directory* "/home/pipping/test/"))`
- `(uiop:directory* (uiop:merge-pathnames* "*.*" "/home/pipping/test/"))`
- `(mapcar #'uiop:directory-pathname-p (uiop:directory* (uiop:merge-pathnames* "*.*" "/home/pipping/test/")))`
- `(uiop:directory* (uiop:wilden "/home/pipping/test/"))`https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/20WIP: Fix declaim ftype for mark-component-preloaded2016-10-05T23:37:21ZFrançois-René RideauWIP: Fix declaim ftype for mark-component-preloadedSBCL 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.
Also fix test-...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.
Also fix test-require on ECL, MKCL, SBCL and any platform in which
modules also appear in the source-registry.Elias PippingElias Pippinghttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/19Remove erroneous declaim2016-09-17T01:06:02ZElias PippingRemove erroneous declaim`mark-component-preloaded` accepts more general arguments now
Thanks to Faré for discovering the cause and solution of/to the issue.`mark-component-preloaded` accepts more general arguments now
Thanks to Faré for discovering the cause and solution of/to the issue.https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/14Have locate-system use with-asdf-cache but not cache its own results2019-12-10T19:36:08ZFrançois-René RideauHave locate-system use with-asdf-cache but not cache its own resultsThis 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...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).Elias PippingElias Pippinghttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/13wip: fix require-system broken functionality2017-05-05T16:27:25ZDaniel Kochmańskiwip: fix require-system broken functionalityThis fixes broken `require-system` mechanism and adds a few system classes to make the design cleaner. Change passes all tests (with minor fix which reflects system change, that a preloaded system is always loaded – by definition).
Th...This fixes broken `require-system` mechanism and adds a few system classes to make the design cleaner. Change passes all tests (with minor fix which reflects system change, that a preloaded system is always loaded – by definition).
This lacks a regression test suite and proper documentation (I'll work on that next weekend). Please don't butcher it by merging individual commits, especially before it's finished.https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/10Fix up after bundle changes2017-05-05T16:27:25ZElias PippingFix up after bundle changesThe changes between 3.1.7.11 and 3.1.7.12, i.e. 1fe2172d73285b5ddf3de5bf194a7394af49014d..6f361be99c178aa216d16ac95fb9788d7416298a, unfortunately led to three regressions:
- bafb641a1fbf968c7c52072444989377b3bf79a3 introduced a problem ...The changes between 3.1.7.11 and 3.1.7.12, i.e. 1fe2172d73285b5ddf3de5bf194a7394af49014d..6f361be99c178aa216d16ac95fb9788d7416298a, unfortunately led to three regressions:
- bafb641a1fbf968c7c52072444989377b3bf79a3 introduced a problem on MKCL that makes test-program fail
- bbf043bc213b2d6124659e8e47d34be4b345401e introduced a problem on MKCL that makes test-logical-pathname fail
- f4735a88644daf1c42b9702f4ffb9bcbe05151c5 introduced a warning.
The third of these is already addresses in this merge request. I'm in touch with Daniel to address the other two issues as well (scheduled for tomorrow).
**Update**: Moreover, Jean-Claude Beaudoin pointed out that
- `bundle-system` was removed yet MKCL was using it.https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/1added some defsystem-depends-on tests2015-11-17T23:31:02ZAttila Lendvaiadded some defsystem-depends-on teststhey fail in HEAD, but Fare's patch fixes them: https://bugs.launchpad.net/asdf/+bug/1276846they fail in HEAD, but Fare's patch fixes them: https://bugs.launchpad.net/asdf/+bug/1276846