Опубликован выпуск 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.
Release.
Ссылка here.