[gclist] Re: gclist-digest V1 #97

Paul R. Wilson wilson@cs.utexas.edu
Tue, 6 Aug 1996 07:20:43 -0500


>From majordom@iecc.com Tue Aug  6 07:02:52 1996
>
> || From: Greg Morrisett <jgm@CS.Cornell.EDU>
> || Date: Mon, 05 Aug 1996 17:55:02 -0400
> || Subject: [gclist] tail-calls in C/C++
> || 
> || Why hasn't someone hacked gcc to do full tail-call elimination?
>
>Hey, guys, this is an interesting discussion, but you chose the wrong mailing
>list.  This is gclist, not gcclist.
>
>                                                        Marc

I have to disagree.  Calling conventions for GCC are actually quite
important to a lot of people implementing GC's, definitely including
me.  The interface between GC's and compiled code is very important
to the features and efficiency you can feasilbly implement, and GCC
is the only wildly portable compiler backend we've got.

Generating gcc-specific code is almost as portable as generating
pure C. 

I've discussed this with RMS several times, and he is very much in
favor of tail-call support for gcc.  He'd like someone to do it, and
GNU would roll it into GCC and support it.  The problem is finding
somebody to do it.

If GCC fully supported tail calls (or label addresses) it would be much
easier for somebody (like us, or the TIL people) to come up with a
good portable compiler back end supporting all kinds of GC's (and
fine-grained persistence and whatnot) fairly efficiently.  Then
that backend could be reused for a variety of languages, greatly
improving the portability of garbage collection in general.

Any volunteers?  I think if somebody who knows GC makes the basic
mods, GNU may be willing to put some effort into making minor
changes to the machine descriptions for each platform.  We'd like
to do it, but are too busy with our own compiler to mess around
with the innards of GCC.

(BTW, I was unaware that this would be required.  I had guessed that
the machine descriptions already had enough information.  Fergus,
could you elaborate a little?)