[asdf-devel] patch for component-relative-pathname

Faré fahree at gmail.com
Mon Feb 22 05:16:15 UTC 2010


> 1.  SPLIT-PATH-STRING is not an ideal name.  SPLIT-PATH-STRING is /not/
> used on paths, it is used on /names/ (in the ASDF sense of these terms).
>  An unwary reader of this code might try to apply it to a pathname (as I
> originally thought), where it could cause lossage because S-P-S doesn't
> handle logical pathnames (or lots of other things about pathnames).
> Suggest that we rename this to something like NAME-TO-PATHNAME or
> NAME-PATHNAME-SPLIT.
>
What about COMPONENT-NAME-TO-PATHNAME-COMPONENTS
or SPLIT-COMPONENT-NAME-INTO-PATHNAME-COMPONENTS

> 2.  We should define in the grammar simple-names and structured names.
> Simple names have no "/" and structured names may have a slash.
>
Where do we care? System names are not passed to the above function.

> 3.  The period character should be forbidden in /both/ simple and
> structured names because of oddities with pathname types.
Wait, there are plenty of (:static-file "foo.bar") around the world!
Do you propose to make them invalid?

> 4.  Only simple names should be permitted in naming systems.
>
Why? System names are never parsed into paths.

> 5.  For modules, I propose either:
>
>   5.1 Only simple names should be permitted in naming modules, or
>
It's often useful to name modules that are several levels deep.
We used to have modules with
	:pathname #.(make-pathname :directory '(:relative "foo" "bar"))
and it ain't pretty.

>   5.2 The use of a structured name implicitly overrides the default
> relative pathname for modules.  [a test should go here!]
>
Isn't that what's currently happening? If not, that's a bug that should
be fixed and tested for. Sigh. Too little testing happening indeed.

What about we use Stefil for testing ASDF?

> On a related note, the grammar in the manual seems to suggest that a
> component can be just a string, which I don't believe that ASDF supports.
>
> The grammar says:
>
> component-def  := simple-component-name
>                | ( component-type name {option}* )
>
> But I don't believe SIMPLE-COMPONENT-NAME is actually supported.  I
> propose to squash this from the documentation, unless corrected.
>
If not currently supported, it's obviously not used anywhere, and
can be removed in a backward-compatible way.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
The revolution will be won, not, as the authoritarians would claim, when the
last political boss is hanged with the bowels of the last state propagandist,
but, as the libertarians know, when the ever-repeated attempts to lure people
into subservience are systematically greeted with laughter and drowned in
ridicule by free men who are well-armed both physically and intellectually.




More information about the asdf-devel mailing list