Re: how to generate code for (a,b):=(b,a)

Dave Lloyd <Dave@occl-cam.demon.co.uk>
27 May 1997 23:44:50 -0400

          From comp.compilers

Related articles
[14 earlier articles]
Re: how to generate code for (a,b):=(b,a) wilson@cs.utexas.edu (1997-05-17)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-17)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-17)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-22)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-22)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-25)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-27)
Re: how to generate code for (a,b):=(b,a) fjh@murlibobo.cs.mu.OZ.AU (1997-05-30)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-30)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-06-11)
conservative GC (was Re: how to generate code for (a,b):=(b,a)) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-06-13)
| List of all articles for this month |

From: Dave Lloyd <Dave@occl-cam.demon.co.uk>
Newsgroups: comp.compilers
Date: 27 May 1997 23:44:50 -0400
Organization: Compilers Central
References: 97-05-058 97-05-129 97-05-148 97-05-262 97-05-272
Keywords: storage, C, GC



Hans-Juergen Boehm <boehm@mti.mti.sgi.com> wrote:
> This doesn't make much sense to me:
>
> 1) Most conservative GCs are mark-and-sweep GCs.


I think we differ in our terminology. While a conservative GC works in a
similar way to mark-and-sweep, you do not have a guaranteed set of
top-level pointers as you do in Lisp, Algol, Fortran. This is the
essential distinction that means that I never need to look in registers,
because I ask the compiler to arrange that all root pointers are on
the stack - I then use a refmap to trace out each stack frame (and
further I know the precise type of each pointer).


Currently, the whole system is stopped in a synchronised way to GC, so
traces only occur at procedure calls in all threads. But this is more
for convenience with the threading mechanisms available than required by
the method.


> warnings. The issue here is whether the COMPILER can exclusive-or
> pointers in the absence of source code that does it. This could
> happen with either Fortran/Algol or C.


Agreed. I was surprised that such an expectation of the COMPILER as
opposed to LANGUAGE was important to you. Strictly speaking it is none
of your business what sequence of instructions the compiler uses as long
as it gets the right answer, but, as I said, I can appreciate the
problem when bolting a conservative GC onto C (which can support no
other type of GC).


Cheers,
----------------------------------------------------------------------
Dave Lloyd mailto:Dave@occl-cam.demon.co.uk
Oxford and Cambridge Compilers Ltd http://www.occl-cam.demon.co.uk/
Cambridge, England http://www.chaos.org.uk/~dave/
--


Post a followup to this message

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