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] |
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
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.