[plt-scheme] package management thoughts

From: Michael Sperber [Mr. Preprocessor] (sperber at informatik.uni-tuebingen.de)
Date: Tue Mar 11 09:48:36 EST 2003

I once designed a package system for XEmacs meant to address much the
same issues as your plans.  I came to the conclusion that it's best to
have a little language to talk about configurations, akin to what's in
SRFI 7.  It roughly looks like this:

<package-specification> -> <package-name>
			 | (<package-name> <package-property>?)
<package-property> -> (version <version>)
                    | (at-least-version <version>)
		    | (at-most-version <version>)
		    | (and <package-property>*)
		    | (or <package-property>*)
		    | (not <package-property>)
<version> -> <string-literal>
<package-name> -> <symbol>

So you could say things like

(gnus (at-least-version "1.12"))

(efs (and (at-least-version "1.12")
          (at-most-version  "1.15)))

(gnus (not (version "0.84")))

... and whatnot, and there's some functionality that allows you to put
these things to work, such as checking if a package specification is
present, or requiring one.

During my experience with XEmacs, I came to the conclusion that
schemes which only allow specifying a fixed version number (and
interpreting it in a fixed way) are ultimately doomed.

Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

Posted on the users mailing list.