Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!apple!ames!think!kulla!barmar From: barmar@kulla (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: Allegro: loading into oldspace Message-ID: <31203@news.Think.COM> Date: 29 Oct 89 04:55:46 GMT References: <33647@cornell.UUCP> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 18 By definition, objects can't be created in oldspace. New objects are always created in newspace. When a copying garbage collector runs, newspace is renamed to oldspace and non-garbage objects are then copied from oldspace to newspace (in the case of a real-time GC, actually to a subspace called "copyspace"). In general, a copying GC requires that you have enough VM for two copies of every non-garbage object. In some systems, the Lisp environment is broken up into "areas", and areas can be GCed individually, which may reduce the memory requirements; however, some garbage in those areas may not be reclaimed because it is referenced by garbage in the non-GCed areas (during a by-area GC, other areas are considered to contain only non-garbage). Some Lisps also have "static" areas, which are not GCed by default (such areas only have newspace). Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar