Увеличение предела размера массива в GNU Clisp на Windows - PullRequest
0 голосов
/ 19 апреля 2020

Я зарегистрировался, изучая 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 миллионов кажется довольно низким, и мне трудно поверить, что большие массивы не могут быть созданы. Спасибо - любая помощь будет оценена!

...