From: Mark Watson
Subject: Simple way to load large packages into a working Lisp image
Date: 
Message-ID: <cca08f5a.0410041954.2075edd@posting.google.com>
While ASDF, defsystem, etc. are very good for conditionally loading
code as you need it, I find that the way I work with Lisp is to write
low level libraries, keep them in my working Lisp image, then as I
work my way up to higher level libraries, also add those into my
image. (I used to have a Xerox Lisp Machine, and I got used to having
all my *stuff* (and utilities written by other people) immediately
available when I start up my Lisp environment; usually LispWorks, but
sometimes OpenMLC, SBCL, or CLisp.)

Anyway, maybe I am missing something from going about configuration
too simply, but I like to have each module, with all data files (if
any) that are needed at runtime in a directory with a 'load.lisp' file
that assumes that my Common Lisp's curent directory is that directory.

I handle dependencies by having one high level "image creation" load
file that uses a pattern like:

(print "Loading XML tools, XML-RPC, etc.")
(change-directory "/work/Lisp_stuff/xml-rpc")
(load "lisp.lisp")

(print "FastTag")
(change-directory "/work/Lisp_stuff/FastTag")
(load "lisp")

...

(change-directory "/work/Lisp_stuff")

#+lispworks
;; save image in LispWorks, and exit lisp....

#+openmcl
;; save image in OpenMCL, and exit lisp....

In my simple scheme, the load.lisp file creates any required packages,
exports what is needed, etc.

--

Anyway, the reason that I am being honest about using such a lazy and
simple approach for organizing code and periodically loading the
latest versions of everything into my working Lisp image is this:

I think that it would be great if authors of useful Lisp packages
always included a simple portable "load.lisp" type file in addition to
supporting ASDF, defsystem, etc.