#95: URL Pathnames -------------------------+-------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: new Priority: major | Milestone: 0.20 Component: other | Version: Keywords: | -------------------------+-------------------------------------------------- Goals -----
1. Use Common Lisp pathnames to refer to representations referenced by a URL.
2. The URL schemes supported shall include at least "http", and those enabled by the URLStreamHandler extension mechanism.
3. Use URL schemes that are understood by the java.net.URL object.
A file specified by URL
#p"http://example.org/org/armedbear/systems/pgp.asd"
4. MERGE-PATHNAMES
(merge-pathnames "url.asd" "http://example/org/armedbear/systems/pgp.asd") ==> "http://example/org/armedbear/systems/url.asd"
5. PROBE-FILE returning the state of URL accesibility.
6. TRUENAME "aliased" to PROBE-FILE signalling an error if the URL is not accessible (see "Non-goal 1").
7. DIRECTORY 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.
11. The "file" scheme will continue to be represented by an "ordinary" Pathname.
12. The "jar" scheme will continue to be represented by a jar Pathname.
Non-goals ---------
1. We will not implement canonicalization of URL schemas (such as following "http" redirects).
2. DIRECTORY working for URL pathnames containing wildcards.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: new Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: | Keywords: --------------------------+------------------------------------------------- Changes (by mevenson):
* version: => 0.20
Comment:
An (incomplete) implementation was added in r12605-r12616.
Notably missing are the URL encoding/decoding functions.
See http://article.gmane.org/gmane.lisp.armedbear.devel/1058.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: closed Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: fixed | Keywords: --------------------------+------------------------------------------------- Changes (by mevenson):
* status: new => closed * resolution: => fixed
Comment:
The implementation seems to be holding up to testing.
Marking as good to go for 0.20.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: reopened Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: | Keywords: --------------------------+------------------------------------------------- Changes (by mevenson):
* status: closed => reopened * resolution: fixed =>
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: assigned Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: | Keywords: --------------------------+------------------------------------------------- Changes (by mevenson):
* status: reopened => assigned
Comment:
Need to check that logical hosts aren't in place before deciding to ship off a string to URL scheme land.
Test failure noticed in ANSI for Pathnames for CLTEST:COMPILE-FILE-TEST- LP.LISP by Ville.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: assigned Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment(by mevenson):
Replying to [comment:4 mevenson]: […]
Test failure noticed in ANSI for Pathnames for CLTEST:COMPILE-FILE-TEST-
LP.LISP by Ville.
Not a test failure, but a (potentially) confusing warning message which should not be emitted at the default trace levels.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: assigned Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment(by mevenson):
URL escaping (aka URI encoding) not implemented at the present point.
The current plan is to provide functions to encode/decode, and to use them to establish handlers if the common case fails. Re-use of code from PURI is being considered, subject to licensing analysis.
#95: URL Pathnames --------------------------+------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: enhancement | Status: closed Priority: major | Milestone: 0.20 Component: other | Version: 0.20 Resolution: fixed | Keywords: --------------------------+------------------------------------------------- Changes (by mevenson):
* status: assigned => closed * resolution: => fixed
Comment:
Implemented enough for 0.20; we'll pick up the warnings noted by Ville, and the URL escaping for 0.21.
armedbear-ticket@common-lisp.net