Subject: Re: [historical] Invoking a Lisp compiler
From: Erik Naggum <>
Date: 1999/01/22
Newsgroups: comp.lang.lisp
Message-ID: <>

* Matthew Economou <>
| Can anyone tell me (or point me to the relevant history) how the Lisp
| compiler has traditionally been invoked?  I've found some documentation
| on the internals of a Multics Lisp compiler called "lcp", but no manual
| page.  The modern Lisps I've run across (e.g. Allegro CL, GCL, Chez
| Scheme) don't have a "batch" mode, per se (e.g., a non-interactive
| program like "cc").

  well, I'm not too sure about this part of Lisp lore, but since the
  function is COMPILE-FILE, I'd assume that it's called much like any other
  function in the listener that effectively replaces the shell command line.

  other than that, there is indeed a batch mode in Allegro CL.  e.g., I
  build a new Allegro CL image with this Makefile:

allegro.dxl: allegro customization.fasl update code
	./allegro -batch -e '(load "")' -kill
	mv --force --backup --version-control=t new-lisp.dxl allegro.dxl

	ln -s lisp allegro
	cp -p lisp.dxl allegro.dxl

customization.fasl:	allegro ../custom/*.cl
	./allegro -batch -e '(load "../custom/")' -kill

  and goes like this:

(defsystem :customization
    (:pretty-name "Customizations for Naggum Software"
     :default-pathname #p"/home/franz/custom/")
  (:serial "readtable"

(load-system :customization :silent t :compile t :no-warn t)
(concatenate-system :customization "customization.fasl")

  incidentally, I forget why I did LOAD-SYSTEM instead of COMPILE-SYSTEM.
  there is a reason to it.

  SIGTHTBABW: a signal sent from Unix to its programmers at random
  intervals to make them remember that There Has To Be A Better Way.