From: gupta
Subject: Lisp
Date: 
Message-ID: <827@prlhp1.prl.philips.co.uk>
Anyone got any ideas on the following consecutive garbage collections ?


1> (gc)
;;; GC: 700946 words [2803784 bytes] of dynamic storage in use.
;;; 1395954 words [5583816 bytes] of free storage available before a GC.
;;; 3492854 words [13971416 bytes] of free storage available if GC is disabled.
2803784
5583816
13971416
2> (gc)
;;; GC: 700934 words [2803736 bytes] of dynamic storage in use.
;;; 1395966 words [5583864 bytes] of free storage available before a GC.
;;; 3492866 words [13971464 bytes] of free storage available if GC is disabled.
2803736
5583864
13971464
3> (gc)
;;; GC: 700940 words [2803760 bytes] of dynamic storage in use.
;;; 1395960 words [5583840 bytes] of free storage available before a GC.
;;; 3492860 words [13971440 bytes] of free storage available if GC is disabled.
2803760
5583840
13971440
4> (gc)
;;; GC: 700944 words [2803776 bytes] of dynamic storage in use.
;;; 1395956 words [5583824 bytes] of free storage available before a GC.
;;; 3492856 words [13971424 bytes] of free storage available if GC is disabled.
2803776
5583824
13971424
5> (gc)
;;; GC: 700944 words [2803776 bytes] of dynamic storage in use.
;;; 1395956 words [5583824 bytes] of free storage available before a GC.
;;; 3492856 words [13971424 bytes] of free storage available if GC is disabled.
2803776
5583824
13971424


Usually, while I get a cup of coffee, I get Lisp to garbage collect twice. 
This way, by the time I'm back, its through and I am saved the agony of a g.c.
when it doesn't suit me.

What I cannot understand in the above printout is why free storage space decreased.
There weren't any other process running (this is Lucid Common Lisp 2.10 on an Apollo 3000
with 8MB RAM).
From: Susan Rosenbaum
Subject: Re: Lisp
Date: 
Message-ID: <1929@edsel>
With regards to the question on why free storage space changes during
consecutive toplevel gc's, it is due to the fact that the evaluator
variables are being changed.  [see CLtL, p. 325] The '+' variables are
getting set to be a list of one element (the symbol 'GC); the '*'
variables are being set to the 1st value returned by gc (a fixnum);
the '/' variables are being set to the list of multiple values
returned by gc (a 3-element list).

			Susan Rosenbaum
			·····@lucid.com