incremental compilation via shared library

brent@jade.ssd.csd.harris.com (Brent Benson)
Mon, 30 Aug 1993 16:28:18 GMT

          From comp.compilers

Related articles
incremental compilation via shared library dave@yost.com (1993-08-25)
Re: incremental compilation via shared library cliffc@rice.edu (1993-08-29)
incremental compilation via shared library brent@jade.ssd.csd.harris.com (1993-08-30)
Re: incremental compilation via shared library pardo@cs.washington.edu (1993-09-02)
Re: incremental compilation via shared library assmann@prosun.first.gmd.de (1993-09-03)
Re: incremental compilation via shared library brett@digits.enet.dec.com (1993-09-07)
Re: incremental compilation via shared library pop@dcs.gla.ac.uk (pop) (1993-09-07)
Re: incremental compilation via shared library pcg@decb.aber.ac.uk (1993-09-11)
Re: incremental compilation via shared library tmb@arolla.idiap.ch (1993-09-20)
[4 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: brent@jade.ssd.csd.harris.com (Brent Benson)
Keywords: linker, design, Lisp
Organization: Compilers Central
References: 93-08-104
Date: Mon, 30 Aug 1993 16:28:18 GMT

# dave@yost.com (Dave Yost) writes:
#
# I don't travel these parts often, but I've been wondering...
# Isn't it time compilation became as easy as making a subroutine call?
#
# I think it would be great if there were shared libraries that
# offered incremental compilation services.


I'm not sure how shared libraries come into play, but this sort of
incremental compilation has been offered in Lisp programming
environments for years:


> (defun square (n) (* n n))
SQUARE
> (compile 'square)
SQUARE
> (disassemble #'square)


                move [%fp + 8] <= %i0 ; local 0
                move %i0 <= [%fp + 8] ; local 0
                move %i1 <= [%fp + 8] ; local 0
                move %x1 <= [%cp + 30] ; *
                add %u3 <= %sq, 11647 ; SQ-CALLF-TRAMPOLINE-2
                jalr %ra <= [%u3]
                add %fp <= %fp, 28 ; local 5
                move %cp <= [%fp - 28] ; local -9
                add %fp <= %fp, -28 ; local -9
                move %u3 <= [%fp + 4] ; return address
                nop
                jr [%u3]
                nop
NIL
>


While your proposal sounds interesting, I think the biggest obstacle
to incremental compilation in traditional environments (C/C++) is a
dynamic object file loader. I don't mind running the compiler in a
separate process if I can load the resulting object file into my
running process and access its functions and data. The other thing
that I would like to have available on every system I work on is an
easy to use and effective conservative garbage collector. These
things are available, along with a threads mechanism, in the Xerox
Portable Common Runtime (PCR). Unfortunately, it is not ported to any
system that I regularly use.


Brent Benson
Harris Computer Systems
--


Post a followup to this message

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