Opened 11 years ago

Closed 11 years ago

#95 closed enhancement (fixed)

URL Pathnames

Reported by: Mark Evenson Owned by: Mark Evenson
Priority: major Milestone: 0.20
Component: other Version: 0.20
Keywords: Cc:
Parent Tickets:

Description

Goals


  1. Use Common Lisp pathnames to refer to representations referenced

by a URL.

  1. The URL schemes supported shall include at least "http", and those

enabled by the URLStreamHandler extension mechanism.

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


  1. MERGE-PATHNAMES

(merge-pathnames "url.asd"

"http://example/org/armedbear/systems/pgp.asd")

==> "http://example/org/armedbear/systems/url.asd"

  1. PROBE-FILE returning the state of URL accesibility.
  1. TRUENAME "aliased" to PROBE-FILE signalling an error if the URL is

not accessible (see "Non-goal 1").

  1. DIRECTORY for non-wildcards
  1. URL pathname work as a valid argument for OPEN with :DIRECTION :INPUT.
  1. Enable the loading of ASDF2 systems referenced by a URL pathname.
  1. The reserved URL characters (~, /, ?, etc.) shall be

encoded in the proper manner on construction of the Pathname.

  1. The "file" scheme will continue to be represented by an

"ordinary" Pathname.

  1. 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).

  1. DIRECTORY working for URL pathnames containing wildcards.

Change History (7)

comment:1 Changed 11 years ago by Mark Evenson

Version: 0.20

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.

comment:2 Changed 11 years ago by Mark Evenson

Resolution: fixed
Status: newclosed

The implementation seems to be holding up to testing.

Marking as good to go for 0.20.

comment:3 Changed 11 years ago by Mark Evenson

Resolution: fixed
Status: closedreopened

comment:4 Changed 11 years ago by Mark Evenson

Status: reopenedassigned

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.

comment:5 in reply to:  4 Changed 11 years ago by Mark Evenson

Replying to 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.

comment:6 Changed 11 years ago by Mark Evenson

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.

comment:7 Changed 11 years ago by Mark Evenson

Resolution: fixed
Status: assignedclosed

Implemented enough for 0.20; we'll pick up the warnings noted by Ville, and the URL escaping for 0.21.

Note: See TracTickets for help on using tickets.