I'm about to make a proposal to use Lisp as the development environment for
a new pilot project, but have identified what may be a weakness in my
suitability as champion. Up until this point, I've delivered many
applications built with various technologies, but they've all been file-
oriented, so in some sense they are all "shaped" the same way: a
heirarchical directory structure with a smattering of Makefiles. Change to
the root, enter "make" and eventually an executable or three appears. There
is probably also an installer program so that these work products can be
installed onto the large number of computers where the work is to take
place. Do I want to structure a Lisp application the same way? (I assume
not, but I don't know enough to even say that much)
After reviewing the thumbnail synopses of books at <http://www.lisp.org/> I
was unable to determine if any of them covered how to organize a larger-
than-toy-sized project. In addition, I'm not even sure how to formulate a
query for my favorite search engines to find more information on what I thnk
I need to know.
My question is: what information sources will help me learn how to structure
a large Lisp application for eventual delivery?
Mitchell Morris <···············@cingular.com> writes:
> After reviewing the thumbnail synopses of books at <http://www.lisp.org/> I
> was unable to determine if any of them covered how to organize a larger-
> than-toy-sized project. In addition, I'm not even sure how to formulate a
> query for my favorite search engines to find more information on what I thnk
> I need to know.
PAIP has, as I recall, some useful info on programming in the large.
It's a while since I looked at it though.
> My question is: what information sources will help me learn how to structure
> a large Lisp application for eventual delivery?
Check your implementation's documentation for a "system definition"
tool (often called DEFSYSTEM). If it came without one, or if you want
to support several implementations, also look at the free defsystem
implementation of it, courtesy of Mark Kantrowitz (originally) and the
CLOCC people: mk-defsystem. http://ww.telent.net/cliki/mk-defsystem
is not a bad place to start
-dan
--
http://ww.telent.net/cliki/ - Link farm for free CL-on-Unix resources
From: Christopher Stacy
Subject: Re: Pointers to literature about project organization?
Date:
Message-ID: <uk7yuu7u5.fsf@spacy.Boston.MA.US>
>>>>> On 19 Sep 2001 19:42:30 GMT, Mitchell Morris ("Mitchell") writes:
Mitchell> My question is: what information sources will help me learn how
Mitchell> to structure a large Lisp application for eventual delivery?
Part of the answer will come from the vendor's documentation, supplied
with the particular Lisp implementation that you decided to use.
There will be documentation on DEFSYSTEM, which is analgous to Makefile,
and there will also be seperate documentation on topics named "delivery"
or "tree-shaking" and so forth. These things are not part of the Lisp
language standard, but they are similar across all the implementations.
There are generally several ways that you can deliver a Lisp application,
just as there are differences in how you might deliver in any other
technology. Some of them are the same as for Perl or C or whatever,
for example: you might want to provide the user with a shell-script
wrapper that sets up things and then invokes the actual program; you
might choose to deliver linkable modules or shared libraries; or you
might deliver a standalone executable. Lisp also has its own run-time
demand link-loader, using a proprietary binary format called FASL, so
your application could be designed to load itself up piecemeal.
As with all languages, there might or might not be application-specific
setup procedures that create appliaction configuration files or Registry
entries or whatever. All of these things depend on the Lisp system that
you have decided to use and the operating system that you are deploying on.