[armedbear-cvs] r13067 - branches/0.23.x/abcl/doc/design/pathnames
Mark Evenson
mevenson at common-lisp.net
Mon Nov 29 08:52:59 UTC 2010
Author: mevenson
Date: Mon Nov 29 03:52:58 2010
New Revision: 13067
Log:
[backport r13058] Documentation for the URI encoding changes.
Modified:
branches/0.23.x/abcl/doc/design/pathnames/jar-pathnames.markdown
branches/0.23.x/abcl/doc/design/pathnames/url-pathnames.markdown
Modified: branches/0.23.x/abcl/doc/design/pathnames/jar-pathnames.markdown
==============================================================================
--- branches/0.23.x/abcl/doc/design/pathnames/jar-pathnames.markdown (original)
+++ branches/0.23.x/abcl/doc/design/pathnames/jar-pathnames.markdown Mon Nov 29 03:52:58 2010
@@ -3,7 +3,7 @@
Mark Evenson
Created: 09 JAN 2010
- Modified: 10 APR 2010
+ Modified: 26 NOV 2010
Notes towards an implementation of "jar:" references to be contained
in Common Lisp `PATHNAME`s within ABCL.
@@ -12,7 +12,6 @@
-----
1. Use Common Lisp pathnames to refer to entries in a jar file.
-
2. Use `'jar:'` schema as documented in [`java.net.JarURLConnection`][jarURLConnection] for
namestring representation.
@@ -66,8 +65,7 @@
Status
------
-As of svn r125??, all the above goals have been implemented and
-tested.
+All the above goals have been implemented and tested.
Implementation
@@ -92,7 +90,8 @@
Otherwise the the DEVICE PATHAME denotes the PATHNAME of the JAR file.
The DEVICE PATHNAME list of enclosing JARs runs from outermost to
-innermost.
+innermost. The implementaion currently limits this list to have at
+most two elements.
The DIRECTORY component of a JAR PATHNAME should be a list starting
with the :ABSOLUTE keyword. Even though hierarchial entries in jar
@@ -123,10 +122,11 @@
### Notes
-1. `ABSOLUTE-FILE-NAMESTRING` and `RELATIVE-FILE-NAMESTRING` use the
-local filesystem conventions, meaning that on Windows this could
-contain '\' as the directory separator, while an `ENTRY` always uses '/'
-to separate directories within the jar proper.
+1. `ABSOLUTE-FILE-NAMESTRING` and `RELATIVE-FILE-NAMESTRING` can use
+the local filesystem conventions, meaning that on Windows this could
+contain '\' as the directory separator, which are always normalized to
+'/'. An `ENTRY` always uses '/' to separate directories within the
+jar archive.
Use Cases
Modified: branches/0.23.x/abcl/doc/design/pathnames/url-pathnames.markdown
==============================================================================
--- branches/0.23.x/abcl/doc/design/pathnames/url-pathnames.markdown (original)
+++ branches/0.23.x/abcl/doc/design/pathnames/url-pathnames.markdown Mon Nov 29 03:52:58 2010
@@ -3,7 +3,7 @@
Mark Evenson
Created: 25 MAR 2010
- Modified: 11 APR 2010
+ Modified: 26 NOV 2010
Notes towards an implementation of URL references to be contained in
Common Lisp `PATHNAME` objects within ABCL.
@@ -18,10 +18,10 @@
URL vs URI
----------
-We use the term URL to describe the URL Pathnames, even though RFC3986
-notes that its use should be obsolete because in the context of Common
-Lisp Pathnames all need a lookup mechanism to be resolved or they
-wouldn't be of much use.
+We use the term URL as shorthand in describing the URL Pathnames, even
+though the corresponding encoding is more akin to a URI as described
+in RFC3986.
+
Goals
-----
@@ -34,7 +34,7 @@
3. Use URL schemes that are understood by the java.net.URL object.
- A file specified by URL
+ Example of a Pathname specified by URL:
#p"http://example.org/org/armedbear/systems/pgp.asd"
@@ -49,17 +49,20 @@
6. TRUENAME "aliased" to PROBE-FILE signalling an error if the URL is
not accessible (see "Non-goal 1").
-7. DIRECTORY for non-wildcards
+7. DIRECTORY works for non-wildcards.
8. URL pathname work as a valid argument for OPEN with :DIRECTION :INPUT.
9. Enable the loading of ASDF2 systems referenced by a URL pathname.
-10. The reserved URL characters (`~`, `/`, `?`, etc.) shall be
-encoded in the proper manner on construction of the Pathname.
+10. Pathnames constructed with the "file" scheme
+(i.e. #p"file:/this/file") need to be properly URI encoded according
+to RFC3986 or otherwise will signal FILE-ERROR.
11. The "file" scheme will continue to be represented by an
-"ordinary" Pathname.
+"ordinary" Pathname. Thus, after construction of a URL Pathname with
+the "file" scheme, the namestring of the resulting PATHNAME will no
+longer contain the "file:" prefix.
12. The "jar" scheme will continue to be represented by a jar
Pathname.
@@ -68,10 +71,10 @@
Non-goals
---------
-1. We will not implement canonicalization of URL schemas (such as following
-"http" redirects).
+1. We will not implement canonicalization of URL schemas (such as
+following "http" redirects).
-2. DIRECTORY working for URL pathnames containing wildcards.
+2. DIRECTORY will not work for URL pathnames containing wildcards.
Implementation
@@ -119,4 +122,11 @@
Status
------
-This design is a proposal.
+This design has been implemented.
+
+History
+-------
+
+26 NOV 2010 Changed implemenation to use URI encodings for the "file"
+ schemes including those nested with the "jar" scheme by like
+ aka. "jar:file:/location/of/some.jar!/".
More information about the armedbear-cvs
mailing list