From: Mitchell Morris
Subject: Pointers to literature about project organization?
Date: 
Message-ID: <Xns91219FCA81291beablebeable@30.146.28.98>
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?

From: Daniel Barlow
Subject: Re: Pointers to literature about project organization?
Date: 
Message-ID: <87k7yuoqgm.fsf@noetbook.telent.net>
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.