[armedbear-devel] pathname-directory

Mark Evenson evenson at panix.com
Thu Mar 11 09:02:30 UTC 2010


On Mar 11, 2010, at 9:37 AM, Alessio Stalla wrote:

[…]

>> If you look at the contents of a jar file via java.util.ZipFile.entries(),
>> all the hierarchal entries do not have an initial slash, so are
>> best expressed as relative pathnames.
> 
> True, they don't have an initial slash, but they're all relative to
> the root of the jar i.e. they are absolute, to my understanding. If
> they were relative, they could be interpreted differently depending to
> some reference directory.

Since we control the behavior of Pathname completely as a Java
primitive, we can change the underlying implementation to properly
treat the :ABSOLUTE component of the DIRECTORY list by special-casing
the searching/iteration of jar file contents.  This change would
preclude the distinction between a JAR that has entries with an
initial '/' and  those without, but we could pave over those
differences via some amount of if/thens sprinkled throughout the
code.  

But before digging everything up again and testing it, I'd
like to understand what we want to accomplish here.

Since MERGE-PATHNAMES currently has special semantics with jar
pathnames already, we wouldn't really gain any useful behavior that
I can immediately think of.

Would you propose that the namestring of a jar pathname remain
"jar:URL!/foo/bar.lisp" or would it now become "jar:URL!//foo/bar.lisp"
(which would break the behavior documented in java.net.JarURLConnection)?

So, if y'all really want to change the :RELATIVE to :ABSOLUTE here,
please convince me, as I currently a net negative in this approach.

I've updated [the Pathname implementation notes][1] to explain the
current behavior better.


[1]: http://code.google.com/p/abcl-dynamic-install/source/detail?r=dcf06e25c05c80c1a17b9c417e3c1799715984a0
--

"A screaming comes across the sky.  It has happened before, but
there is nothing to compare to it now."








More information about the armedbear-devel mailing list