Libraries and hierarchies

Simon Marlow simonmar@microsoft.com
Mon, 11 Aug 2003 11:24:39 +0100


Alastair Reid writes:
=20
> Note that URIs make pretty good unique package names.  When=20
> used this way, URIs can take several forms:
>=20
> 1) The URI can be a pointer to an actual file to be downloaded like=20
> http://haskell.org/greencard/gc-3.01.tar.gz
>=20
> This is a good choice because it often exists for publicly=20
> released software=20
> and following the pointer produces something useful.  The=20
> pointer usually=20
> contains a version number and so will be unique.
>=20
> 2) The URI is of the form=20
> http://organization/local-package-name/version and=20
> does not point to an actual file you can download.
>=20
> The organization is the URI to some group that is handing out=20
> locally unique=20
> package names.  Some example organizations might be:
>=20
>    haskell.org
>    sourceforge.org
>    reid-consulting-uk.ltd.uk
>    microsoft.com/~simonpj
>    microsoft.com    <- an independent organization from ~simonpj

Ok, but as I mentioned before we'd like to keep package names as short
as possible, for two reasons: they will be included in symbol names in a
compiled library, and because it's just easier to talk about "hgl-1.0"
than it is to talk about "http://haskell.org/packages#hgl-1.0".

So let me suggest a compromise.  I suspect that using haskell.org as the
main organisation which hands out package names will be fine for a long
time to come, so lets use the convention that

  If the package name is not an absolute URI, then it is taken to be
  relative to http://haskell.org/packages.

This doesn't conflict with your scheme, but lets us get away with short
package names for most purposes.

Thoughts?

Cheers,
	Simon