Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!brl-tgr!tgr!gwyn@BRL.ARPA From: gwyn@BRL.ARPA (VLD/VMB) Newsgroups: net.lang.c Subject: Re: Recoding LISP programs in C Message-ID: <2366@brl-tgr.ARPA> Date: Wed, 23-Oct-85 17:54:37 EDT Article-I.D.: brl-tgr.2366 Posted: Wed Oct 23 17:54:37 1985 Date-Received: Fri, 25-Oct-85 02:42:55 EDT Sender: news@brl-tgr.ARPA Lines: 15 The original suggestion was to perform garbage collection on the STACK, not on the HEAP. There is a BIG difference. Both the DMD (5620) and 8th Ed. UNIX have garbage-collecting equivalents of malloc(). The DMD does it right, by using an extra level of indirection, and the 8th. Ed. uses the "neat hack", but only on the gcalloc()ed HEAP, not on the run-time STACK. (It coexists with malloc() and leaves the malloc() arena alone.) The best LISP garbage collectors perform on-the-fly, so that there is no screeching halt while the trash compactor operates. I'm all for factors-of-2 performance improvements!