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

Опубликован выпуск 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.
    • Исправление SB-SIMD AVX f64.4-reverse.
    • Исправление тасования SB-SIMD на AVX и SSE2.
    • Исправление времени жизни в sse+xmm0 VOP-ах.

Источник: opennet.ru

Добавить комментарий