[armedbear-devel] Proposal for URL to be used as Pathnames

Mark Evenson evenson at panix.com
Fri Mar 26 08:34:48 UTC 2010


I've [committed to an initial design][1] for URLs to be used as 
Pathnames, which I am in the process of implementing.  The primary use 
of this functionality will be to be able to eventually express OSGi 
bundles within ASDF system definitions.

[1]: 
http://trac.common-lisp.net/armedbear/browser/trunk/abcl/doc/design/url-pathnames.markdown

The gist of the proposal is to represent a URL with a Pathname whose 
HOST component is a list.  The list will be an association list with the 
key :SCHEME containing the URL scheme and :AUTHORITY containing the URL 
authority.  The DIRECTORY, NAME, and TYPE components will be used to 
construct the PATH of the URL.

As an example, "http://example.org:8080/org/armedbear/lisp/boot.lisp" 
would be converted to a Pathname as follows

   pathname: {
     host: (:SCHEME "http" :AUTHORITY "example.org:8080"),
     directory: (:ABSOLUTE "org" "armedbear" "lisp"),
     name: "boot",
     type: "lisp"
   }

As an answer to Alessio's question (long ago) about whether URLs should 
really be a Pathname or if we are better off using a class, I think that 
they really are better abstracted as a Pathname because they a) have a 
hierarchical path b) the network location has a strong resemblance to 
how HOST is used for UNC mounts under Windows and c) being able to 
express OSGi bundles in ASDF has a chance of working.

Critique welcome.

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