My initial code to get LOAD to use "jar:file:" was rather hackish in
that it didn't consider enough scope of the impact so I've been looking
hard at implementing TRUENAME, PROBE-FILE, MERGE-PATHNAMES (and
eventually PROBE-DIRECTORY and DIRECTORY) for "jar:file" entries. I'd
like to propose we change the use of the "jar:file:" string to only
occur in the namestring representation of a jar file entry, i.e. the
device entry would always be a "real" pathname.
So what would currently be
CL-USER> (pathname-name (pathname-device #p"jar:file:abcl.jar!/foo"))
"jar:file:abcl"
which would become
CL-USER> (pathname-name (pathname-device #p"jar:file:abcl.jar!/foo"))
"abcl"
under my proposal.
This would simplify the needed code quite a bit as one just has to
detect we are dealing with a jar entry reference, pull the pathname out
of device, and pass it to a sub-routine.
And according to the unofficial specification of the "jar:file" URI
schema, it is invalid not to have a reference to the entry by the path
following the "!/" (i.e. "jar:file:abcl.jar" has no meaning, just
"jar:file:abcl.jar!/foo").
I've started to implement this, but would like to float this idea across
the list to see if there are objections and/or problems I've not foreseen.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."