Robert Goldman <rpgoldman(a)sift.info> writes:
> Zach Beane wrote:
>> Faré <fahree(a)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