Robert Goldman rpgoldman@sift.info writes:
Zach Beane wrote:
Faré fahree@gmail.com writes:
A solution that is both backward-compatible and forward compatible is
1- to rename the systems so they follow the foo/bar convention for naming systems in foo.asd, so that ASDF3 can find them. This solves forward compatibility
If anyone considering fixing mcclim is reading this, please don't use a slash-named system. It's incompatible with Quicklisp.
Zach
Can you explain the incompatibility?
It would be hugely useful to be able to map multiple systems to a single file, as your McCLIM example illustrates.
I think it illustrates the problems of putting multiple systems in the same file, not the utility.
But, of course, we want to maximize quicklisp compatibility.
So can you make suggestions about how to be quicklisp-compatible while making it possible to have multiple findable system definitions in a single file?
Hmm, I think it might be workable if, when a system with a given slashed name is not found, the *system-definition-search-functions* chain was called recursively with the truncated name, instead of having each function in *s-d-s-f* have to know how to truncate on its own.
E.g. imagine I had something like this:
(push (lambda (name) (print (list 'trace name)) nil) *system-definition-search-functions*)
Then it would be nice if the ASDF internals led to putput like this:
(find-system "foo/bar")
(TRACE "foo/bar") (TRACE "foo")
=> #<SYSTEM "foo/bar">
Does it work that way now? I don't think it does.
Zach