[armedbear-devel] Bugs(?) in pathnames
Mark Evenson
evenson at panix.com
Sat Jan 28 13:33:41 UTC 2012
On Jan 27, 2012, at 12:46 PM, Theam Yong Chew wrote:
> Hi devs,
>
> I've observed a few issues (some I'm not so sure about) with pathnames:
>
> 1.
>
> CL-USER> (make-pathname :device '("c:/a.b.jar")
> :directory '(:absolute "cl-ppcre"))
> ; Evaluation aborted on NIL.
We probably expect the serialized form to be in canonical form
("file:///C:/a/b.jar"). We can loosen this a bit. Wrap a local
handler on the execution: the full Common Lisp condition system
should be available.
>
> Why am I not getting any errors (and not dropping into a debugger)? I
> know the error is because the device is not a list of a pathname ie
> missing a #P.
>
> 2. What's printed out is not what was read in (trailing /)
>
> CL-USER> #P"jar:file:c:/a/b.jar!/cl-ppcre/"
> #P"jar:file:c:/a/b.jar!/cl-ppcre"
We attempt [c8n]() (via the notions in the various URI/IRI specs)
here: does it EVAL again to the same string? Then that's the
serialized form, locally. Otherwise, this is a bug.
[c8n]: http://en.wikipedia.org/wiki/Canonicalization
Liberal use of the #P operator locally is advised, as it also gives the
compiler a better chance to optimize.
> 3. Should this repeated jar:file:jar:file thing throw an error?
>
> #P"jar:file:jar:file:c:/a/b.jar!/cl-ppcre/"
> ==> #P"jar:file:jar:file:c:/a/b.jar!/cl-ppcre"
Such forms should probably be illegal for abcl-1.1-dev, and should not survive attempts
to introspect their validity. I'll clarify as part of the abcl-1.1
release, probably refactoring org.aremedbear.lisp.Pathaname into a
protocol description (where I can check constraints a bit easier).
> I think that was all I found, at least for now :-), thanks.
Thanks for using!
More information about the armedbear-devel
mailing list