lgcd() needs to generate at most one bignum, but currently
generates more.
divide() could use shifts instead of multiply and divide when
scaling.
dumping an executable does not preserve ports. When
loading a dumped executable, disk files could be reopened to the
same file and position as they had when the executable was dumped.
malloced objects by freeing and
reallocing all the malloc objects encountered in a scan of the heap.
Whether compactions would actually occur is system depenedent.
must- or make- routines need some sort of C macros or
conditionalization so that they check:
LENGTH field fits into a size_t (as is checked
now) for platforms with (sizeof(size_t) < sizeof(SCM)).
LENGTH field fits into 24 (or 56) bits on machines where
size_t is 32 bits or more.
This is trickier than it first looks because the must_malloc() routine
is also used for allocating heap segments, which do not have the
LENGTH field restriction. Putting the 24 bit test into
must_malloc() should be tested for speed impact.