A generic limitation of SICStus Prolog is that it cannot use more than 256 Mb of virtual memory on 32-bit architectures. This is an artifact of the tagged pointer scheme that we use. We have plans for replacing the tagging scheme, but it's a long term project.
Under Linux on x86, the limit is 128 Mb due to the fact that Linux
sbrk()
returns memory starting at 0x08000000
. So with a
better Linux sbrk()
, the limit would be 256 Mb there too. An
experimental workaround for Linux is available from
sicstus-support@sics.se.