- Clauses
- Currently the following limitations apply to clauses. The arity may
not be more than 128, the number of links to the `outside world'
(predicates, atoms, (large) integers, etc) may not exceed 512 and
the number of variables should be less than 256.
- Atoms and Strings
- SWI-Prolog has no limits on the sizes of atoms and strings. read/1 and
its derivates however normally limit the number of newlines in an atom
or string to 5 to improve error detection and recovery. This can be
switched off with style_check/1.
- Address space
- SWI-Prolog uses tagged pointers internally. This limits the number of
available bits for addressing memory to 29 (512 Mb).
- Integers
- Integers are tagged values. Their value is limited between
-226 and
226 - 1.
- Floats
- Floating point numbers are C-doubles with a 12 bit reduction of the
mantisse. For machines using IEEE floating point format, this implies
the range is about
±10308 and the accurracy about 10 digits.