Я зарегистрировался, изучая Lisp с использованием Clisp версии 2.49 на windows 10. Я скачал Clisp по По этой ссылке , на которую ссылается официальный сайт. Это 32-разрядная версия, и я не смог найти 64-разрядную версию (моя система 64-разрядная).
В любом случае, я пытался создать большой массив, используя:
(make-array 32000000)
Но я получаю следующую ошибку:
MAKE-ARRAY: dimension 32000000 is not of type `(INTEGER 0
(,ARRAY-DIMENSION-LIMIT))
Когда я печатаю ARRAY-DIMENSION-LIMIT
, я получаю 16777215. Я попытался изменить ограничение, запустив (defconstant ARRAY-DIMENSION-LIMIT 100000000)
, но, похоже, он изменился только в локальной системе. контекст и не влияет на фактический предел, так как я все еще получаю ошибку.
Итак, я посмотрел замечания по реализации , где написано
15.1. Элементы массива
, что ограничение размера (и ограничение общего размера массива, которое кажется одинаковым) зависит от ЦП, но, несмотря на то, что мой ЦП является 64-разрядным, его предел измерения массива должно быть 4294967295, это 32-битное ограничение.
Есть ли способ обойти это? Лимит менее 17 миллионов кажется довольно низким, и мне трудно поверить, что большие массивы не могут быть созданы. Спасибо - любая помощь будет оценена!