Subject: Re: generational gc and large root set
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 20 Jan 2002 04:08:17 GMT
Newsgroups: comp.lang.scheme
Message-ID: <a2dfrh$38ki3$1@fido.engr.sgi.com>
Jeffrey Siegal  <jbs@quiotix.com> wrote:
+---------------
| Rob Warnock wrote:
| > But by the definition of a "symbol" in Scheme (or Lisp), those "two"
| > constants
| 
| The "constants" to which I referred are the lists.  The first list can 
| be collected, but the second can't.
+---------------

But that's a complete non sequitor, because the question was when/whether
you can GC global variables and symbols[1], not pairs.

+---------------
| The symbol can't be collected, because it is referenced by the second list.
+---------------

Exactly my point! If you provide "eval" with "interaction-environment"
in your run-time, then you can't collect global variables or the symbols
which name them, because a later call to "eval" *might* reference them.


-Rob

[1] O.k., so the original question was really more along the lines of
    "What has to go into the root set? That is, what cannot ever be GC'd?"
    But the discussion quickly converged on globals & symbols, since
    those were the main items of apparent uncertainty.

-----
Rob Warnock, 30-3-510		<rpw3@sgi.com>
SGI Network Engineering		<http://www.meer.net/~rpw3/>
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA

[Note: aaanalyst@sgi.com and zedwatch@sgi.com aren't for humans ]