[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: JPG at MIT-MC
- From: Robert W. Kerns <RWK at MIT-MC>
- Date: Sun, 18 Jan 81 07:51:00 GMT
- Cc: BUG-LISP at MIT-MC, ASB at MIT-MC
- Original-date: 18 January 1981 02:51-EST
Date: 16 January 1981 09:42-EST
From: Jeffrey P. Golden <JPG at MIT-MC>
To: BUG-LISP at MIT-MC
cc: ASB at MIT-MC
How about if one of you answer this for ASB:
Date: Thu, 16 Jan 81 06:37:30 GMT
Original-Date: 01/16/81 02:37:30 EDT
Subject: Re: Garbage question
Just now I was running a longish computation and out of curiosity hit ^D
to see if I could determine whether I was in trouble or not. Turned out
not, but I noticed that very often the following message would be printed
prior to a Garbage collection:
ADDING A NEW LIST SEGMENT--BUT DIDN'T SUCCEED.
I guess that this means that there is no free memory left, which I am not
surprised to learn. But I was wondering why the information that no list
segments could be added anymore was not available to whomever it was that
was trying to add them. Or does my question merely reveal my ignorance?
Seems to me that once segment adding fails, it will fail forever after.
Is that not true?
LISP tries to add segments when it sees after a GC that there is less space
than is 'optimal'. If it can't get any more, yes, it will keep failing to
add more, and will just have to GC more. There is no reason why the GC should
remember the fact that it failed before since it's just a trivial scan of
the segment table to see that there's no room, and there's certainly no reason
why CONS or whoever caused the GC should ever be told about it, since the GC
did find something for it.