10 Generic Limitations

The number of arguments of a compound term may not exceed 255.

The number of atoms created may not exceed 1048575 (33554431) on 32-bit (64-bit) architectures.

The number of bytes making up the characters of an atom may not exceed 65535.

There are 256 “temporary” and 256 “permanent” variables available for compiled clauses.

Saved-states and `.po' files are not portable between 32-bit and 64-bit architectures.

Indexing on large integers or floats is coarse, i.e there is essentially no indexing between different large integers or floats. This can have a huge negative impact on performance, e.g. when using hash codes or some such to represent a (hash-table) as clauses. The hash predicates in library(terms) avoids this, by default, but it has been known to cause hard to track down performance problems when the number is created by some other means.

Send feedback on this subject.