[armedbear-devel] Proposed change to jar:file semantics

Mark Evenson evenson at panix.com
Sat Jan 9 12:20:57 UTC 2010


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."




More information about the armedbear-devel mailing list