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.
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"
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"
I think that was all I found, at least for now :-), thanks.
Yong.
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:
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.
- 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.
- 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!
[Forwarding message for errors with Pathnames that didn't seem to make it to the list]
Begin forwarded message:
From: Mark Evenson evenson@panix.com Subject: Re: [armedbear-devel] Bugs(?) in pathnames Date: January 28, 2012 14:33:41 GMT+01:00 To: Theam Yong Chew senatorzergling@gmail.com Cc: armedbear-devel armedbear-devel@common-lisp.net
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:
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.
- 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.
Liberal use of the #P operator locally is advised, as it also gives the compiler a better chance to optimize.
- 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!
On Jan 28, 2012, at 14:33 , Mark Evenson wrote:
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:
Filed your report under [ticket #197][#197]:
armedbear-devel@common-lisp.net