28.02.2024

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

Опубликован выпуск SBCL 2.4.0 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD.

В новом выпуске:

  • Изменения, нарушающие совместимость:
    • *COMPILE-VERBOSE* и *LOAD-VERBOSE* привязаны к NIL при запуске системы с аргументом командной строки «—script».
    • при поиске core-файла, система проверяет корректность того, что указано в /proc/self/exe, и, если /proc/self/exe окажется некорректным, то проверяет argv[0].
    • система больше не предоставляет имена типов для стандартных (CL) символов ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX или FLOAT-DIGITS.
  • Поддержка платформ:
    • На системах arm64 предоставлена возможность включения параллельного сборщика мусора, использующего алгоритм mark-region.
    • Решены проблемы со сборкой в новых выпусках FreeBSD.
  • Исправления ошибок:
    • Восстановлена корректность вывода типа компилятором при вызовах REDUCE с «:INITIAL-VALUE» но без «:FROM-END».
    • Устранена ошибка компилятора при объявлении «SB-EXT:MUFFLE-CONDITIONS» для неизвестного типа.
    • В некоторых случаях дизассемблер выводил некрасиво отформатированный вывод для регистров.
    • Немного снижена вероятность повторного исчерпания стека системой при выводе ошибки об исчерпании контрольного стека;
  • Оптимизации:
    • Во многих случаях устранены барьеры записи в сборщике мусора.
    • Улучшен вывод типов для итерационных переменных со смешанными типами.
    • Удалены неиспользуемые инициализационные значения для LET привязок, улучшен выбор типа регистров.
    • Снижены EQUALP/EQUAL/EQL до EQL/EQ в FIND/MEMBER, основываясь на вводных типах.
    • Улучшен вывод типа для DPB, LOGIOR.

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