[asdf-devel] XDG_DATA_DIRS and colon separated things
Robert Goldman
rpgoldman at sift.info
Tue Dec 13 14:27:57 UTC 2011
On 12/13/11 Dec 13 -7:44 AM, Rupert Swarbrick wrote:
> Hi,
>
> TL;DR: Confusing error message. Is it possible to make it less confusing
> and/or ignore the silly input I inadvertently gave asdf?
>
> I'm writing because I've just spent ages debugging a confusing niggle
> with interaction between ASDF and my linux box. Basically, running sbcl
> in a terminal and then trying to (require 'foo) gave me this rather
> confusing error message:
>
>> This is SBCL 1.0.54.0.debian, an implementation of ANSI Common Lisp.
>> More information about SBCL is available at <http://www.sbcl.org/>.
>>
>> SBCL is free software, provided as is, with absolutely no warranty.
>> It is mostly in the public domain; some portions are provided under
>> BSD-style licenses. See the CREDITS and COPYING files in the
>> distribution for more information.
>> * (require :cl-fad)
>> ASDF could not load cl-fad because
>> Invalid designator for an absolute pathname: #P"common-lisp/systems/".
>>
>> debugger invoked on a SIMPLE-ERROR in thread
>> #<THREAD "initial thread" RUNNING {AB1B781}>:
>> Invalid designator for an absolute pathname: #P"common-lisp/systems/"
>>
>> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
>>
>> restarts (invokable by number or by possibly-abbreviated name):
>> 0: [REINITIALIZE-SOURCE-REGISTRY-AND-RETRY] Retry finding system cl-fad after
>> reinitializing the
>> source-registry.
>> 1: [ABORT ] Exit debugger, returning to top
>> level.
>>
>> (ASDF::RESOLVE-ABSOLUTE-LOCATION-COMPONENT
>> #P"common-lisp/systems/"
>> :DIRECTORY
>> T
>> :WILDEN
>> NIL)
>
> I finally worked out what was going on by looking at
> default-source-directory:
>
>> * (default-source-registry)
>>
>> (:SOURCE-REGISTRY (:DIRECTORY #P"/home/rupert/.sbcl/systems/")
>> (:DIRECTORY #P"/home/rupert/src/mine/atonews/")
>> (:DIRECTORY #P"/home/rupert/.local/share/common-lisp/systems/")
>> (:TREE #P"/home/rupert/.local/share/common-lisp/source/")
>> (:DIRECTORY #P"common-lisp/systems/") (:TREE #P"common-lisp/source/")
>> (:DIRECTORY #P"/opt/gnome/share/common-lisp/systems/")
>> (:TREE #P"/opt/gnome/share/common-lisp/source/")
>> (:DIRECTORY #P"/usr/local/share/common-lisp/systems/")
>> (:TREE #P"/usr/local/share/common-lisp/source/")
>> (:DIRECTORY #P"/usr/share/common-lisp/systems/")
>> (:TREE #P"/usr/share/common-lisp/source/") :INHERIT-CONFIGURATION)
>
> Note the #P"common-lisp/systems/" line! Tracing further, I found that
> this comes from a mistake I made when setting up my
> shell. $XDG_DATA_DIRS is
>
> :/opt/gnome/share/:/usr/local/share/:/usr/share/
>
> Because of the leading colon, the split-string call on line 4020 of
> asdf.lisp gives me a leading "", resulting in path names that aren't
> fully qualified.
>
> Now, I'll fix my setup, since it's my own silly fault, but do any of you
> have an idea for how to make this error less perplexing for the next
> person who does something similar? (Maybe just drop "" components?)
Maybe a continuable error dropping the "" components? That would
encourage the user to actually fix the offending configuration.
Any chance of you moving this to a ticket on launchpad?
Best,
r
More information about the asdf-devel
mailing list