Subject: Re: How are LISP programs commonly deployed?
From: rpw3@rpw3.org (Rob Warnock)
Date: Mon, 17 Nov 2008 06:29:44 -0600
Newsgroups: comp.lang.lisp
Message-ID: <04udnUiMP4cl_rzUnZ2dnUVZ_tzinZ2d@speakeasy.net>
Errol Pelchat  <pelchat.errol@gmail.com> wrote:
+---------------
| From what I've gathered so far there doesn't seem to by a
| typical way to deploy a LISP app, but I suspect I have overlooked
| something. Is there a typical way of deploying a LISP program,
| installing it (if necessary), and running it?
+---------------

There are several typical ways, depending on:

1. The kind of app (interactive, "batch", or service daemon);

2. How widely it's going to be deployed (how many platforms);

3. What *kind* of platform (server or client/standalone);

4. Whether startup time is critical or not.

Some ways to package it include [*not* a complete list!]:

1. Single standalone executable: load all your FASLs into a Lisp,
   define a special-purpose top-level startup routine, and save
   the heap image ("core") and startup executable out as a single
   A.OUT, ELF, ".exe", ".dll", or whatever. You will have to build
   one of these for each separate target architecture the app needs
   to run on, and in some cases for each version of the OS.

2. Deliver a compressed source tarball [usually containing
   an ASDF or MK:DEFSYSTEM system definition file] and let the
   user unpack, compile, install, & run it. If you're somewhat
   careful, this can be fairly portable across machine architecture,
   operating system, and Common Lisp implementation.

Note: These two are not exclusive if the compilation process in #2
produces a standalone executable, as in #1. But #1 is really only
helpful for short-lived human-interactive apps. Any kind of "server"
(service daemon) application should *NOT* be run from scratch for
each service request, but rather should be run once per system boot,
as a persistent daemon which is "connected to" with some kind of
protocol [possibly with connection caching, depending on where the
requests are coming from]. In that mode, startup time is seldom
very important.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607