Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!think.com!barmar From: barmar@think.com (Barry Margolin) Newsgroups: comp.object Subject: Re: Stash Collection Message-ID: <1990Nov27.074534.17744@Think.COM> Date: 27 Nov 90 07:45:34 GMT References: <2849@esquire.dpw.com> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 24 In article <2849@esquire.dpw.com> yost@DPW.COM (David A. Yost) writes: >The idea is that when GC can't make enough room to satisfy >a request, it invokes SC, which looks around for objects >that will volunteer to give up some memory they don't really >need, such as cached data or multiple reperesentations of >the same data. Symbolics Lisp Machines provide "before-GC initializations", an extensible list of functions to be called before GC, presumably to allow applications to clear or consolidate their data structures. There is also a second set of "GC Cleanups", which the user may invoke manually and selectively prior to GC, and which applications may extend. The before-GC initializations are generally used for internal data structures; some applications clear caches, while others reorganize to improve paging and/or to cdr-code lists. GC Cleanups are generally used for user-visible data, which is why it must be invoked manually; for instance, window histories can be cleared (this can be quite significant, because windows remember the objects that were printed to them, not just the text), and top-level variables such as *, **, and *** can be cleared. -- Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar