Re: 'conservative' GC == 'risky' GC

jgmorris+@cs.cmu.edu (Greg Morrisett)
Fri, 27 May 1994 19:49:03 GMT

          From comp.compilers

Related articles
'conservative' GC == 'risky' GC hbaker@netcom.com (1994-05-21)
Re: 'conservative' GC == 'risky' GC jgmorris+@cs.cmu.edu (1994-05-22)
Re: 'conservative' GC == 'risky' GC wright@asia.cs.rice.edu (1994-05-23)
Re: 'conservative' GC == 'risky' GC pardo@cs.washington.edu (1994-05-24)
Re: 'conservative' GC == 'risky' GC tmb@arolla.idiap.ch (1994-05-25)
Re: 'conservative' GC == 'risky' GC markt@harlequin.co.uk (1994-05-26)
Re: 'conservative' GC == 'risky' GC jgmorris+@cs.cmu.edu (1994-05-27)
Re: 'conservative' GC == 'risky' GC boehm@parc.xerox.com (1994-05-27)
Re: 'conservative' GC == 'risky' GC chase@Think.COM (1994-05-26)
Re: 'conservative' GC == 'risky' GC hbaker@netcom.com (1994-05-31)
Re: 'conservative' GC == 'risky' GC hbaker@netcom.com (1994-05-30)
Re: 'conservative' GC == 'risky' GC boehm@parc.xerox.com (1994-05-31)
Re: 'conservative' GC == 'risky' GC ok@cs.rmit.oz.au (1994-06-07)
[1 later articles]
| List of all articles for this month |
Newsgroups: comp.compilers
From: jgmorris+@cs.cmu.edu (Greg Morrisett)
Keywords: GC
Organization: School of Computer Science, Carnegie Mellon
References: 94-05-084 94-05-116
Date: Fri, 27 May 1994 19:49:03 GMT

Mark Tillotson <markt@harlequin.co.uk> wrote:
>If you have a debugger and value-inspector in your system, then
>pointer-reachability is what the user wants and expects, because the user
>view is of a graph of nodes, not purely the semantics of the original
>program....


Sure. But having a debugger or value-inspector _changes_ the observable
semantics. The same problem arises with any program transformation. For
example, consider a compiler that does copy propogation, eliminating a
variable that a programmer defined. This is a form of compile-time
garbage collection that inteferes with a debugger. As another example,
consider the confusion that occurs when you do a "stack-trace" of
tail-call-optimized procedures.


I've come up with a half-dozen ways that existing implementations of
language use a more aggresive form of garbage collection than
"reachability", including tail-call optimization and zero'ing pointers on
stacks. All of them rely on observable properties of the semantics of the
language. So, if programmers have come to expect reachability as the
definition of non-garbage, they'll be in for a rude surprise...


-Greg Morrisett
--


Post a followup to this message

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