Дата публикации:Mon, 05 Feb 2024 12:38:23 +0300
Опубликован выпуск SBCL 2.4.1 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD.
В новом выпуске:
- В параллельный сборщик мусора, использующий алгоритм mark-region, добавлена частичная поддержка заголовков компактных экземпляров.
Для функций с объявленными возвращаемыми типами в режимах оптимизации с большими значениями SAFETY и в режиме DEBUG 3 обеспечено выполнение проверки типа для возвращаемых значений.
На платформе FreeBSD реализована компоновка с libpthread и отключена рандомизация адресного пространства (ASLR).
Восстановлена сборка на 64-х битных архитектурах riscv и ppc.
Для всех платформ реализована поддержка fastrem-32 (для оптимизированных вычислений FLOOR).
Устранена ошибка, приводившая к повторной очистке перемещённых строк после уплотнения памяти параллельным сборщиком мусора mark-region.
Решена проблема с зацикливанием компилятора при обработке некоторых конструкций с типами SATISFIES.
Хеш-таблицы, используемые в различных частях системы (пакеты, таблицы Unicode), преобразованы для использования хеш функций, избавленных от коллизий (perfect).
Макрос TYPECASE для иерархий структур классов реализован с применением хеша без коллизий.
С целью оптимизации производительности убраны проверки границ для индексов с постоянными смещениями, когда компилятор знает, что индекс меньше разницы между размером и смещением.
В компиляторе учтены дополнительные данные об оптимизации DIGIT-CHAR.
В компиляторе реализована возможность исключения промежуточных значений в некоторых вызовах APPLY, CONCATENATE и MAKE-ARRAY для аргументов, построенных из последовательностей со свежими cons-модификациями.
Ускорена работа цикла "(LOOP FOR X IN (REVERSE LIST) ...)", который теперь использует меньше cons-ов.
Цикл "(LOOP ... APPEND ...)" стал компактнее и выполняет меньше работы при добавлении NIL.
Ускорены и сокращены проверки типов различных массивов.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60554