Subject: Re: What is LISP good for, that is harder in other languages?
From: rpw3@rpw3.org (Rob Warnock)
Date: Wed, 17 Jan 2007 06:17:00 -0600
Newsgroups: comp.lang.lisp
Message-ID: <6pmdnW8uO6ohjjPYnZ2dnUVZ_o-knZ2d@speakeasy.net>
Tim Bradshaw <tfb+google@tfeb.org> wrote:
+---------------
| John Thingstad wrote:
| > A much bigger problem is that you need to construct
| > the entire datastrucure each and every time. Nothing is
| > remembered between runs.
| 
| Yes, I think this must be an issue for C/C++ systems.  Every
| compilation unit requires the compiler to start from a completely blank
| slate and reconstruct (by header files etc) everything on which that
| unit may depend.  I think some C/C++ environments attempt to deal with
| this though.
+---------------

(*sigh*) Yet another lesson from the 70's forgotten...

This also used to be a problem with TOPS-10 Monitor builds.
The TOPS-10 Monitor was written in MACRO-10 assembler, in
many small sources files each with *dozens* of includes of
header files. A build of just the kernel could take *hours*!
Then at some point [with the 5-Series Monitors? 1972?] they
fixed MACRO-10 to save parsed headers in memory [on the '10
you could issue multiple compilation commands to one invocation
of a compiler or assembler], then soon after added saved-on-disk
"compiled" forms of the headers. That brought the kernel build
down to just a couple of *minutes*, and a full system build
down from days to hours.

Of course, right about the same time C was re-inventing the
"start from scratch every time" model... and never got past it. :-(


-Rob

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