[asdf-devel] [PROPOSAL] Easier configuration, installation, and removal of asdf systems
Krzysztof Drewniak
krzysdrewniak at gmail.com
Fri Nov 19 20:22:56 UTC 2010
Rationale:
To make asdf easier to use by providing a standard interface for
configuring, installing, and removing systems
Details:
To facilitate easier configuration, installation, and removal of asdf
systems, I propose 2 new operations and 2 new functions be added.
The operations would be install-op and remove-op, and the functions
would be configure and config-of
These new components would work as defined below:
* New function: configure
(defmethod configure (&rest options) ...)
configure would, given a plist of options, print them to a file
in the current directory (which is assumed to contain the asdf
system to configure), for example `config.asdf'. If config.asdf
already exists, it should be moved to config.asdf.bak before the
mew config.asdf is written.
* New operation: install-op
install-op would, given a directory in which `configure' had
been run, use the options given to configure to install the
system. The options involved would be :sources
and :registry . :sources is the pathname of a directory which is
to be created, after which the contents of the current directory
is copied into the directory named by :sources .
After the files are copied, all .asd files in :sources are
linked into the pathname located in :registry.
It is an error to run install-op without first having called
configure.
* New function config-get
(defmethod config-get (system config-key &optional default) ...)
config-get will, given a system and config-key retrieve the
value of config-key located in the config.asdf file located in
the same director as the .asd file of the system (after
dereferencing symlinks).
This method is meant so that library/program authors can add
additional configure options which the library/program can later
access (Ex. a graphics library with an optional #d component
could instruct users to pass `:3d t' or `:3d nil' depending on
whether they want the 3d component. The user's choice would be
accessed through config-get).
The functions will return 2 values, the primary being the result
of the lookup or default if the lookup fails, and a secondary
which is T if the lookup succeeded and NIL otherwise.
* New operation: remove-op
remove-op would undo the operations preformed by install-op,
first removing the symlinks in :registry then deleting :sources.
Comments, suggestions, questions, etc. are appreciated.
Krzysztof Drewniak
[P.S. I will not be available between 09/22/2010 and 09/29/2010 due to a
vacation resort in Mexico which has an 80% chance of no free Internet]
--
X-Real-Email-With-Antispam: krzysdrewniak at gmail dot com
pgp key on keyserver.ubuntu.com 94F02AE8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20101119/4a1dd6c4/attachment.sig>
More information about the asdf-devel
mailing list