I statrted learning commmon lisp using Clisp version 2.49 on windows 10. I downloaded Clisp through This link, which the official site links to. It is a 32-bit version, and I could not find a 64-bit version (my system is 64 bit).
Anyway, I tried to create a big array using:
(make-array 32000000)
But I get the following error:
MAKE-ARRAY: dimension 32000000 is not of type `(INTEGER 0
(,ARRAY-DIMENSION-LIMIT))
When I print ARRAY-DIMENSION-LIMIT
, I get 16777215.
I tried changing the limit by running (defconstant ARRAY-DIMENSION-LIMIT 100000000)
, but it seems to only change it in a local context and not effect the actual limit, as I still get the error.
So I looked at the implementation notes, where it says under
15.1. Array Elements
that the dimension limit (and the array total size limit, which seems to be the same) are dependant on the CPU, but even though my CPU is 64-bit so its array dimension limit should be 4294967295, it is the 32-bit limit.
Is there any way around this? A limit of less than 17 million seems pretty low and I find it hard to believe bigger arrays can't be created. Thank you - any help would be appreciated!