Выпуск SBCL 2.4.1, реализации языка Common Lisp

Опубликован выпуск 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.
  • Ускорены и сокращены проверки типов различных массивов.



Источник: http://www.opennet.ru/opennews/art.shtml? num=60554

© OpenNet