[gclist] RE: gclist-digest V2 #25

Henry G. Baker hbaker@netcom.com
Mon, 31 Mar 1997 17:31:03 +6400 (PST)


> >> > This issue was discussed in Mark Weiser's and my SP&E '88 paper.  Is x
> >>seen
> >> > by the garbage collector during the call to g in
> >>
> >> > { T x; f(x); g("abc"); }
> >>
> >> > For a naive compiler the answer is "yes".  For a CPS-based compiler, the
> >answer
> >> > is "no".  For a typical compiler with global register allocation the
> >>answer
> >is
> >> > "maybe".
> 
> Appel's definition of "space safety" has little to do with
> a CPS-based compiler.  Rather, it has to do with a closure
> environment strategy that strengthens the closure environment
> as much as possible (i.e., only retains values needed to cover
> the free variables of the code).  See [1] for a discussion.
> CPS conversion just makes this easy to do, but comes with its
> own costs.

This early paper (in my ftp directory) discusses the closure issue,
and prefers 'static' to 'dynamic' binding strategies on the basis of
space utilization:

<a href="BuriedStale.html">BuriedStale.html (WWW hypertext)</a><br>
<a href="BuriedStale.ps.Z">BuriedStale.ps.Z (9 pages)</a>

"The Buried Binding and Dead Binding Problems of Lisp 1.5".  ACM
<cite>Lisp Pointers V,</cite> 2 (Apr-Jun 1992), 11-19. An early (1976)
discussion of the space requirements of function closures.<p>

-- 
Henry Baker
www/ftp directory URL:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html