Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!usc!ucsd!ucbvax!agate!shelby!csli!ceb From: ceb@csli.Stanford.EDU (Charles Buckley) Newsgroups: comp.lang.lisp Subject: Re: Is this the end of the lisp wave? Message-ID: <17418@csli.Stanford.EDU> Date: 24 Jan 91 16:32:03 GMT References: <17374@csli.Stanford.EDU> <1991Jan23.080259.19816@Think.COM> Organization: Center for the Study of Language and Information, Stanford U. Lines: 35 In-reply-to: barmar@think.com's message of 23 Jan 91 08:02:59 GMT In article <1991Jan23.080259.19816@Think.COM> Barry Margolin writes: In article <17374@csli.Stanford.EDU> Charles Buckley writes: >Exact. Makes prototyping a breeze. However, I'd still like to do my >own storage management in Lisp when my algorithm makes that possible >and expedient. It's simply not provided for in CL. I'm not sure precisely what type of extension you're referring to. Both Symbolics and Lucid provide "resources", which are pools of objects that can be reused rather than consing new objects each time But resources are nothing more than a sort of software cache of currently unused objects belonging to an isomorphic class. If you will, it's a sort of pointer-in-reserve system, to assure that that which you allocated and might need again doesn't get eaten up unnecessarily by the gc, just because you don't happen to have explicitly programmed full pointer coverage for the life of your algorithm. It's nothing more than a slickered-up version of the hack that Doug Cutting replied with. Calling clear-resource only removes all these pointers-in-reserve, *allowing* the gc to find the freed storage in the course of its own plodding, methodical ruminations --- this according to language in the vendor doc, and from my conversation with one of its employees who should know. If I turn the gc off, calling clear-resource does me no good - memory still gets exhausted. In those circumstances in which gc performance is pathologically poor, the resource facility does nothing to offload it. I want to be able to tell the gc "I'll let you know when I'm done with memory, and you should manage the free chunks, consolidating and all that, but don't bother hunting through memory for non-referenced blocks." So the above-referenced employee: "That that would make gc design too hard." Well, C runtime supports it . . .