[asdf-devel] CCL build failure

Faré fare at tunes.org
Wed Jan 9 05:39:25 UTC 2013


Relevant CCL bugs are
http://trac.clozure.com/ccl/ticket/953
http://trac.clozure.com/ccl/ticket/978
Ticket 953 is especially relevant if you're older than 15330,
which may or may not have been backported to your release branch 1.8.

I've made changes to ASDF to make it more robust, but it's in my
exploded branch,
which doesn't handle package upgrade yet.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
It is deplorable that many people think that the best way to improve the world
is to forbid something. However, they're morally more advanced than the people
who think the best way to improve the world is to kill somebody.
        — John McCarthy


On Tue, Jan 8, 2013 at 9:43 PM, Faré <fare at tunes.org> wrote:
>> I was using this:
>> (setf (logical-pathname-translations "home")
>>       (list
>>        (list "**;*.*.*"
>>                   "/Users/rpg/**/*.*")))
>>
>> Gives me portability across Mac (/Users) and Linux (/home).
>>
>> and doing
>> (push "home:lisp;asdf;" asdf:*central-registry*)
>> (asdf:load-system "asdf")
>>
>> viz:
>>
>> CL-USER> (logical-pathname-translations "home")
>> ((#P"home:**;*.*.*" #P"/Users/rpg/**/*.*"))
>> CL-USER> (push "home:lisp;asdf;" asdf:*central-registry*)
>> ("home:lisp;asdf;" #P"/Users/rpg/lisp/xophe-clx/" "~/lisp/asdf-systems/"
>> "~/lisp/asdf-install-systems/systems/" "~/lisp/asdf-systems/"
>> "~/lisp/asdf-install-systems/systems/")
>> CL-USER> (asdf:load-system "asdf")
>>
>> Unfortunately, on my copy of SLIME, attempts to inspect this "illegal
>> logical pathname" object crashes the inspector.
>>
> I couldn't reproduce, and I don't fully understand this bug yet,
> but the crux is that we're somehow trying to parse a physical namestring
> in the context of either an explicit default
> or the *default-pathname-defaults* being a logical-pathname,
> and that's something that causes the bug.
>
> Are you perchance using (setf *resolve-symlinks* nil) ?
>
> I have worked around the same bug in the past, and
> but maybe it resurfaced despite our testing test-logical-pathname.script.
>
> My understanding is that somehow at some unexpected point
> your *default-pathname-defaults* is a logical-pathname,
> and this causes confusion — even #p"" will then be a logical pathname.
> It could also be that ASDF itself was compiled while
> *default-pathname-defaults* was a logical pathname,
> and that #p"" and/or other constants in there are then parsed
> as logical pathnames, and fail. Or it could be anything.
>
> I think we need a function sane-physical-pathname
> that takes anything in input, tries to turn it to a physical pathname,
> then tries with *default-pathname-defaults*, then tries with
> (user-homedir-pathname), maybe with (lisp-implementation-directory),
> and finally fails with prejudice.
> Then, we should wrap a lot of defaulting and
> all our binding of *default-pathname-defaults* with it.
>
> Logical-pathnames are really a big can of worms and of fail.
>
> Alan Perlis quipped that "A programming language is low level
> when its programs require attention to the irrelevant."
> But if instead of requiring attention to irrelevant low-level details,
> a language requires your attention on gratuitous bogosity,
> what do you call it?
>
> Until we diagnose the exact issue and fix it, a workaround
> to achieve what you want without logical pathnames is to use
> :home for your physical home directory in the location DSL,
> e.g. your ~/.config/common-lisp/source-registry.conf you read:
>
>         (:source-registry
>          (:directory (:home "lisp" "asdf"))
>          (:tree (:home "work" "cl"))
>          :inherit-configuration)
>
> Or you could
>         export CL_SOURCE_REGISTRY='(:source-registry ...)'
>
> Regards,
>
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
> I'd rather write programs that write programs than write programs — Dick Sites




More information about the asdf-devel mailing list