[asdf-devel] Ordering of system :depends-on elements

Zach Beane xach at xach.com
Mon Jul 8 15:08:04 UTC 2013


Robert Goldman <rpgoldman at sift.info> writes:

> Zach Beane wrote:
>> Faré <fahree at 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



More information about the asdf-devel mailing list