[asdf-devel] bad interaction with new ASDF 2.015 and Quicklisp

Faré fahree at gmail.com
Tue May 10 16:54:17 UTC 2011


On 10 May 2011 12:45, Nikodemus Siivola <nikodemus at random-state.net> wrote:
> Steps to reproduce:
>
> 1. Get ASDF 2.015 or .1
>
> 2. Install Quicklisp, (ql:quickload "flexi-streams")
>
> 3. Install Flexi-Streams outside quicklisp as well. (For the purposes
> of bug reproduction, putting a copy of flexi-streams.asd into eg ~/tmp
> is enough.)
>
> 4. Go to the directory with the non-Quicklisp copy of flexi-streams.asd.
>
> 5. In lisp:
>
>   (push "./" asdf:*central-registry*)
>
>   (asdf:load-system "flexi-streams")
>
> ...endless recursion that eventually blows either stack or heap.
>
> What is happening is approximately this:
>
>  ASDF starts loading ~/tmp/flexi-streams.asd
>
>  DEFSYSTEM FLEXI-STREAMS is ok.
>
>  During processing of DEFYSTEM FLEXI-STREAMS-TEST, FIND-SYSTEM is
> called for FLEXI-STREAM-TEST --
>  ironically _after_ it has been registered and its pathname set.
>
>  Source-registry doesn't find it because there is no file
> flexi-stream-test.asd, and neither does
>  SYSTEM-FIND-ASDF, but Quicklisp which _does_ find it:
>
>    ASDF starts loading quicklisp/.../flexi-streams.asd
>
>    ...you can guess where this leads. But even without the endless
> recursion this find is bogus.
>
> This did not happen with prior versions of ASDF. This is really
> messing up things for me -- enough so that I'm contemplating reverting
> the SBCL provided ASDF to 2.014.
>
Ouch.

Does 2.014 fix this? If it does, that makes sense indeed. I'll have to
go back to the drawing board and maybe change the way find-system
works, to make it more robust.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
You can tell whether a man is clever by his answers.
You can tell whether a man is wise by his questions. — Naguib Mahfouz




More information about the asdf-devel mailing list