Back to index

LispMe Limits

Hopefully, this table may answer some questions about LispMe's memory limits. Some limits seem arbitrarily high while other seem low. However, the main reason is the PalmOS limit of 64k for a single memory block.

AttributeLimitReason
Maximum heap size131008 bytesPalmOS 64k block size
Maximum heap size32752 objectsPalmOS 64k block size
Maximum total symbol (atoms) size4096 charactersLispMe PTR layout
Maximum FP numbers32704 bytesPalmOS 64k block size
Maximum FP numbers4088 numbersPalmOS 64k block size
Minimum big integer-2523999+1PalmOS 64k block size
Maximum big integer2523999-1PalmOS 64k block size
Maximum string length65503 charactersPalmOS 64k block size
Maximum vector length32751 objectsPalmOS 64k block size
Maximum symbol length256 charactersarbitrary
Minimum char code0ASCII
Maximum char code255ASCII
Minimum fixed integer-8192LispMe PTR layout
Maximum fixed integer8191LispMe PTR layout
Minimum big integer printed decimally-247984+1arbitrary/performance
Maximum big integer printed decimally247984-1arbitrary/performance
Minimum (unnormalized) real number4.94065645841246e-324IEEE-754
Maximum real number1.79769313486231e+308IEEE-754
Maximum extension modules64 (currently 21 used)LispMe PTR layout
Maximum foreign types16 (currently 10 used)arbitrary
Maximum port types16 (currently 10 used)arbitrary
Maximum variables per frame128LispMe PTR layout
Maximum environment frames64LispMe PTR layout
Maximum sessions32arbitrary
arbitrary is a limit to reduce the size of statically allocated tables. It can be increased if necessary, but normally must be below 64k.