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

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

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

  • Выделение стека через DYNAMIC-EXTENT теперь применяется не только к начальной привязке, но и ко всем значениям, которые может принимать переменная (например, через SETQ). Это позволяет, например, упростить построение сложных или рекурсивных структур в стеке через итерации.

  • Некоторые интерфейсы в модуле SB-POSIX приведены к соответствию спецификации и результат NULL от Си-библиотеки считается ошибкой тогда и только тогда, когда errno будет изменён вызовом. В этом случае будет порождён сигнал SYSCALL-ERROR.

  • Улучшена работа макросов DO-PASSWDS и DO-GROUPS в модуле SB-POSIX. Эти макросы предназначены для безопасной работы с базой данных паролей и групп.

  • Восстановлена поддержка платформ Darwin x86 и PowerPC (благодарим Кирилла А. Коринского, Сергея Фёдорова и barracuda156).

  • Исправлена неправильная компиляция, происходившая вследствие ошибочного вывода типа при умножении значений fixnum на дробные значения.

  • Исправлена ошибка компилятора, возникающая в некоторых случаях при проверке знаковых и беззнаковых 64-битных значений.

  • Исправлена ошибка компилятора в случае, когда аргумент »: INITIAL-CONTENTS» для MAKE-ARRAY является константой-не-последовательностью.

  • Исправлена ошибка компилирования функций свёртки в константу заданной последовательности при возврате ложного значения от функций »: TEST» или »: KEY».

  • Исправлена ошибка компиляции функций массива или последовательностей с аргументами, подразумевающих очень большие размеры последовательности.

  • Исправлена ошибка компилятора, возникающая в случае, когда не используется значение, возвращаемое от ADJUST-ARRAY.

  • Оптимизирован вывод типов функций компилятором, которые могут распространяться назад (propagated backwards) через промежуточное представление.

  • Улучшен вывод типов для LDB, LOGBITP и RATIO.

  • Внесены оптимизации, связанные с исключением лишних проверок границ для многих случаев транзитивных сравнений.



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

© OpenNet