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
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] to explain the
current behavior better.
"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