[Gardeners] Standard ASDF operations for understanding and running applications
Paolo Amoroso
amoroso at mclink.it
Tue Dec 13 11:08:31 CST 2005
As others have said, ASDF is an important piece of infrastructure for
simplifying the installation and usage of Lisp applications and
libraries. A further way of helping novices run a newly installed
application, and providing them with some healthy instant
gratification, may be to define some simple standard ASDF operations
for, say:
- running the application
- running a demo
- getting short help in a `where to go from here' style with a capsule
description of what the program is supposed to do, sample forms to
try at the REPL, and instructions on how to execute the above
operations
At times, it is necessary to check the source code in order to
discover even just what's the entry point function for running an
application. Given the above operations, the user would only have to
remember these magic incantations, which are similar to the well known
one for loading a system (or just the last, which would display
instructions about the others):
(asdf:load-op 'asdf:run-op :my-app)
(asdf:load-op 'asdf:demo-op :my-app)
(asdf:load-op 'asdf:help-op :my-app)
Such operations might be defined like this (untested):
(defclass run-op (operation) ())
(defmethod perform ((o run-op) (c (eql (find-system 'my-app))))
(my-app:start))
These operations would also be a reassurance that everything is
properly installed, working and neat--neatness does count when forming
the first impressions of a new environment.
Paolo
--
Lisp Propulsion Laboratory log - http://www.paoloamoroso.it/log
More information about the Gardeners
mailing list