Re: Incremental compilers

Paul Fuqua <ti-csl!!>
Wed, 25 Jan 89 09:50:04 CST

          From comp.compilers

Related articles
[3 earlier articles]
Re: Incremental Compilers (Richard F. Man) (2000-05-10)
Re: Incremental Compilers (Matthew Markland) (2000-05-12)
Re: Incremental Compilers (Herbert M Sauro) (2000-05-12)
Re: Incremental Compilers (Mike Kent) (2000-05-12)
Re: Incremental compilers brunix!apollo!alan (Alan Lehotsky) (1986-09-18)
Incremental compilers (1989-01-24)
Re: Incremental compilers ti-csl!! (Paul Fuqua) (1989-01-15)
Re: Incremental compilers rogerson@PEDEV.Columbia.NCR.COM (1989-01-26)
Re: Incremental Compilers (Nick Rothwell) (1989-01-27)
| List of all articles for this month |

Date: Wed, 25 Jan 89 09:50:04 CST
From: Paul Fuqua <ti-csl!!>
In-Reply-To: Msg of 24 Jan 89 22:12:43 GMT from (Charlie D. Havener)

        Date: Tuesday, January 24, 1989 4:12pm (CST)
        From: charlie at (Charlie D. Havener)
        Subject: Incremental compilers

        I know the Lisp compiler on the Symbolics work station is incremental ...

Incremental compilation on a Symbolics (or TI Explorer, or LMI Lambda)
is made easier by using dynamic linking all the time, and by the fact
that a compiled function is a first-class Lisp object like any other.

To omit lots of details, the name of a function contains a pointer to
the function itself. When you (re)compile a function, just replace the
pointer with the new one. Other functions that call this one indirect
through the name, so nobody has to be relinked to see the new

This handles function-by-function incremental compilation, not
line-by-line, but I don't think you can do it to any finer grain than
functions, or would want to.

I think that Saber does the same sort of name-to-function association
and indirection in their interpreter, but I don't know for sure.

Paul Fuqua
Texas Instruments Computer Science Center
PO Box 655474 MS 238, Dallas, Texas 75265

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.