prologsicstus-prolog

Maximum number of atoms in SICStus Prolog 4


The SICStus Prolog User's Manual states about its Generic Limitations:

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

So when I ran the following query on my x64-box using SICStus Prolog 4.8.0 ...

?- statistics(runtime,_),
   (  between(1,100000000,N),
      number_chars(N,Xs), 
      atom_chars(A,[a|Xs]), 
      false
   ;  true
   ),
   statistics(runtime,[_,RT]).

... I was quite surprised to get an answer:

RT = 44313 ? 

What's going on? Does the atom limit not apply here?


Solution

  • This is what I get with 4.9.0 and running statistics which gives you the whole picture:

    ...
    19.129 sec. for 10000 atom garbage collections which collected 99994193 atoms (4188645735 bytes)
    ...