powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ограничение по размеру массива в Лиспе?
6 сообщений из 6, страница 1 из 1
Ограничение по размеру массива в Лиспе?
    #36404797
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Сейчас у нас с коллегами посленовогодний перерывчик, развели небольшой холивар на тему, какой язык программирования круче :). В качестве эталонного алгоритма было выбрано нахождение простых чисел от 2 до 10000000, компилируем без оптимизаций. Фортран оказался на 10% быстрее С++, на 5% быстрее С. Решили сделать то же на Лиспе. Используемый компилятор - gcl.
Код: plaintext
1.
2.
3.
4.
5.
6.
(progn 
(defconstant maxNum  128 ) 
(setq allNums (make-array (+ maxNum  1 ))) 
(setf (aref allNums  2 ) t)
(do* ((i  3  (+ i  2 ))) ((> i maxNum)) (list (setf (aref allNums i) t) (do ((j  3  (+ j  2 ))) ((> j (sqrt i))) (block innerLoop (if (and (aref allNums j) (= (rem i j)  0 )) (setf (aref allNums i) nil) (return-from innerLoop))))))
(do ((i  2  (+ i  1 ))) ((> i maxNum)) (if (aref allNums i) (block output (prin1 i) (terpri)))) 
)
Этот алгоритм 1 в 1 повторяет использованые на других языках. Проблема в том, что когда я пытаюсь увеличить размер создаваемого массива хоть на 1 (до 129), получаю сообщение об ошибке:
Error: Caught fatal error [memory may be damaged]
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by SYSTEM::SET-UP-TOP-LEVEL.
Backtrace: DO
Сначала подумал, что это ограничение на длину массива, но вроде как стандарт гарантирует минимум 1024. Подскажите, пожалуйста, в чем может быть проблема?
--------------
Festina lente
...
Рейтинг: 0 / 0
Ограничение по размеру массива в Лиспе?
    #36404955
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok пишет:
> С++, на 5% быстрее С. Решили сделать то же на Лиспе. Используемый
> компилятор - gcl.

Не самый лучший. Рекомендую closure или sbcl

> Сначала подумал, что это ограничение на длину массива, но вроде как
> стандарт гарантирует минимум 1024. Подскажите, пожалуйста, в чем может
> быть проблема?

В лиспе ограничений на размер нет.
В конкретно GCL -- я его не знаю.
Это безусловно проблема самого GCL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ограничение по размеру массива в Лиспе?
    #36405385
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаток лиспа. Но это похоже на какой-то баг.
...
Рейтинг: 0 / 0
Ограничение по размеру массива в Лиспе?
    #36406269
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok,



в clisp все нормально с твоим алгоритмом при любой размерности.
...
Рейтинг: 0 / 0
Ограничение по размеру массива в Лиспе?
    #36406306
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за ответы. Просто мы решили использовать именно гнусовые компиляторы для однородности результатов (gfortran, gcc, g++, и вот gcl). Видимо, это действительно чисто его глюк. Завтра еще погуглю, нужно ж узнать конкретно.
--------------
Festina lente
...
Рейтинг: 0 / 0
Ограничение по размеру массива в Лиспе?
    #36422048
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok wrote:
> Спасибо всем за ответы. Просто мы решили использовать именно гнусовые
> компиляторы для однородности результатов (gfortran, gcc, g++, и вот
> gcl). Видимо, это действительно чисто его глюк. Завтра еще погуглю,
> нужно ж узнать конкретно.

Я ни разу за года три общения с лиспом не слышал от кого-то, чтобы рекомендовали
хотя бы для каких-то целей GCL.

SBCL, CLOSURE (open-mcl), CLISP, ECL. + коммерческие лиспы.

Не советую с ним связываться.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ограничение по размеру массива в Лиспе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]