Дата публикации:Thu, 29 Feb 2024 22:30:32 +0300
Опубликован выпуск SBCL 2.4.2 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD.
В новом выпуске:
- Компиляция системой самой-себя на системах x86-64 c Linux теперь производит побитово-идентичные кросс-компилированные fasl-ы там, где сборочным хостом является cmucl, ccl, clisp или сам sbcl.
Оптимизации:
Большое число внутренних таблиц, в частности те, которые относятся к поддержке Unicode были переведены на использование хеш функций, избавленных от коллизий (perfect), что улучшило скорость и сократило размер.
FIND, POSITION, ASSOC и RASSOC с аргументами неизменной последовательности, содержащими символы в роли ключей, теперь компилируются для поиска с применением хешей, избавленных от коллизий.
На системах x86-64 в компиляторе обеспечено устранение перехода jump-to-jump.
- Восстановлена возможность наследования и от SEQUENCE и от SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
COERCE не будет конвертировать лямбда формы в функции если заданное название типа будет подклассом FUNCTION.
LOG с аргументами double-float и рациональными аргументами (в любом порядке) не теряет точности через промежуточный single-float-аргумент.
LOG по основанию 2 целочисленной степени двойки вероятнее всего даст математически точный ответ.
LOG на рациональных числах близких к единице с числителем или знаменателем близким к степени двойки будут использовать log1p и, таким образом, будет терять меньше точности.
Внешний формат utf-8 с Unix-окончаниями строки обновляет информацию его размеров символов при применении быстрого пути для буферов ASCII-символов.
Не печаталось содержимое вероятно более не валидных динамически существующих cons-ов в методе PRINT-OBJECT для THREAD объектов.
Постоянное размещение внешних точек входа для функций перед любыми другими локальными функциями.
Удаление неактивных замечаний оптимизации для закавыченных форм и единичных вызовов APPEND на высокой скорости.
Бесконечный цикл в COPY-SEQ на массивах нулевой длины с типом элементов NIL.
Исправление компиляции конструкторов структур не верхнего уровня.
- Улучшение проверки границ в SB-SIMD.
Исправление SB-SIMD AVX f64.4-reverse.
Исправление тасования SB-SIMD на AVX и SSE2.
Исправление времени жизни в sse+xmm0 VOP-ах.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60694