Публикувано издание SBCL 2.4.0 (Steel Bank Common Lisp), свободна реализация на програмния език Common Lisp. Кодът на проекта е написан на езиците Common Lisp и C и се разпространява под лицензионния договор 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 бeзплатно е включено паралелно събиране на боклука, използващо алгоритъм mark-region.
- Решени са проблеми със събирането в новите издания на FreeBSD.
- Поправки на грешки:
- Възстановена е коректността на изхода на типа от компилатора при извиквания на REDUCE с «:INITIAL-VALUE», но без «:FROM-END».
- Отстранена е грешка в компилатора при декларирането на «SB-EXT:MUFFLE-CONDITIONS» за неизвестен тип.
- В някои случаи дизасемблерът е извеждал некоректно форматиран изход за регистрите.
- Няма малко намалена вероятността от повторно изчерпване на стека от системата при извеждане на грешка за изчерпване на контролен стек;
- Оптимизации:
- В много случаи са отстранени бариери за запис в сборщика на боклука.
- Подобрен е изходът на типовете за итерационни променливи със смесени типове.
- Премахнати са неизползваемите инициализационни стойности за LET привързвания, подобрен е изборът на типа на регистрите.
- Намалени са EQUALP/EQUAL/EQL до EQL/EQ в FIND/MEMBER, основано на входните типове.
- Подобрен е изходът на типовете за DPB, LOGIOR.
Източник: opennet.ru
