[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MCL size limitations (was "Can I access 256MBytes of memory?")

>If I buy a Quadra 900/950, and fill its' 16 slots with 16MByte SIMMS,
>can I run MCL in a 250MByte memory partition without any problems?  Has
>anyone actually done anything like this?  Has anyone run MCL with over
>Christopher J. Vogt vogt@netcom.COM
>From: El Eh, CA

Shouldn't be a problem. The only instance I know of of someone actually
doing something similar were a couple of MIT students who ported a very large
Lisp application to a IIfx running Mac VM. I believe thier MCL app was
around 100 megs.

MCL has a couple of limitations that you may run into in such a large
world. Vector sizes are limited to 16 megabytes. Also, INTERN & FIND-SYMBOL
get very slow if there are more than 16000 or so symbols in a package. The
vector size limitation is due to the way MCL represents vectors and is
not changeable by a patch. The package bug is fixed by "package-hash-patch"
which will be part of patch 3 for MCL (ask and I'll send it to you).

MCL's vector size limitation will get worse in version 2.1 unless enough
people squawk to make me do some work to make it not so. Gary modified the
vector headers so that a vector requires only 4 bytes of overhead instead
of the 8 bytes required by MCL 2.0. This reduces MCL's memory requirements
by about 10%, but reduces the number of bits available to encode a
vector's size from 24 to 22. Since this number still represents the number
of bytes in the vector, it reduces the maximum vector size to 4 megabytes.
This means a max of about 500K entries in a hash table. I can imagine
changing the 22 bits to represent the number of elements instead of the
number of bytes. This will increase the maximum size to 4 million elements
or 16 megabytes for general vectors. Making the maximum larger still is a
significantly larger project (requires two different vector
representations, one with 4 bytes of overhead and a second with 8).

How important is the maximum vector size to your applications? If I hear
no response, 2.1 may ship with a 4 megabyte limit.