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
definition.

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.