[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