[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ARRAY relocations in MACLISP
- To: MOON at MIT-MC
- Subject: ARRAY relocations in MACLISP
- From: JONL at MIT-MC (Jon L White)
- Date: Mon, 18 Sep 78 23:27:00 GMT
- Cc: (BUG LISP) at MIT-MC
- Original-date: 18 SEP 1978 1927-EDT
BPORG and BPEND delineate the free binary program space, with programs
eating up from below, and arrays from above. There should be no need for
a user to try to control the array relocations, since the space between
BPORG and the top of arrays is treated like a general heap - when there
isn't enuf space between bporg and bpend, the first arrays are shuffled
upwards to close out any already-dead space; then if there still isn't
enough room, a GC is done to see if any more arrays died; finally, if
there still isn't enough room, more address space is eaten from the
time-sharing system allocator (ocasionally leading to "NO CORE? - mumble"
messages).
However, if you are building up a set of mumbles - arrays and programs -
and know in advance that about, say, 32K is needed to hold them, then do
two things first
1) setq *NORET to non-null, to prevent returning address space,
2) (GETSP 33000.) or some such suitable number.
I think this is what you want. Probably after building up the system,
you should reset *NORET to null.