Выпуск SBCL 2.3.11, реализации языка Common Lisp
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Опубликован выпуск SBCL 2.3.11 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD.
В новом выпуске:
- Небольшие несовместимости:
- Потоки с параметром external-format, определённым с помощью ":REPLACEMENT", будут применять данные для замещения информации один раз в потоке, что приводит к ошибкам декодирования (а не так, как в некоторых случаях, один раз для последовательности байтов каждый из которых не является допустимой стартовой позицией символа для этого external-format).
- Определители external-format при использовании неподдерживаемых или нераспознанных вариантов теперь будут сигнализировать об ошибке.
- Улучшения:
- В процессе диспетчеризации обобщённых функций, использующих стандартный или короткий метод комбинирования, при отсутствии главных применимых методов система будет вызывать обобщённую функцию SB-PCL:NO-PRIMARY-METHOD, чьё стандартное поведение заключается в сигнале об ошибке. Пользователи могут определять методы для этой обобщённой функции.
- Внешние форматы теперь поддерживают варианты новой строки для однобайтовых и utf-8 кодировок.
- Сигнализируемые функциями потоков или октетов ошибки о кодировании и декодировании символов теперь поддерживают USE-VALUE перезапуск для обработчиков, предоставляющих замещения для ввода или вывода.
- READ-SEQUENCE и WRITE-SEQUENCE поддерживают последовательности, определяемые пользователем; стандартная реализация обрабатывает элемент за элементом, читая или записывая один байт или символ в/из потока соответственно.
- Оптимизации:
- Внешние форматы с :REPLACEMENT более не привязывают обработчики для ошибок функций конверсии, что должно уменьшить число cons-операций и увеличить производительность.
- Если :EXTERNAL-FORMAT выступает в роли аргумента для STRING-TO-OCTETS или OCTETS-TO-STRING и является константой во время компиляции, то внешний формат разрешается во время загрузки, а не при каждом вызове.
- Компилятор может ограничивать типы аргументов для некоторых функций исходя из выведенного или подразумевающегося типа значения, которое возвращается этой функцией.
- Компилятор сокращает число избыточных проверок типов в функциях, подобных ASSOC и GETF.
- Исправления ошибок:
- OCTETS-TO-STRING корректно сигнализирует или применяет замены при использовании однобайтовых внешних форматов для нешироко распространённых кодировок (например, iso-8859-3), а не берёт биты из адреса NIL и не конвертирует эти биты в символы.
- FILE-STRING-LENGTH теперь возвращает NIL если входные значения не кодируются во внешний формат потока.
- Табличные многобайтовые внешние форматы (EUC-JP, Shift-JIS, GBK) теперь учитывают замещающий символ (во внешнем формате или посредством перезапуска) при кодировании в октеты.
- Конвертирование из октетов с помощью внешних форматов UCS-2, UCS-4 и UTF-32 более не читает конец массива октетов с нецелым числом двух- или четырёхбайтовых единиц.
- Конвертирование из октетов с помощью внешних форматов UCS-2, UCS-4 и UTF-32 теперь возвращает простую строку, как того требует определение типа OCTETS-TO-STRING.
- Применение некорректного внешнего формата аргумента для OPEN или WITH-OPEN-FILE (или внутреннее MAKE-FD-STREAM) более не приводит к утечке файлового дескриптора.
- SB-ROTATE-BYTE определяет спецификации BYTE за пределами допустимого значения перед выполнением cons очень больших целых чисел для использования масок и сдвигов.
- Исправление вывода типа при компилировании SB-ROTATE-BYTE форм с ненулевым POSITION в определении байта.
- Исправление нескольких ошибок ассемблера при компилировании MAKE-ARRAY, MAKE-STRING и прочих с большим постоянным размером.
- Исправление внутренней ошибки при компилировании (SETF-SBIT) с большим постоянным индексом.
- Исправление внутренней ошибки компилятора для лямбда-функции с некорректным списком параметров в LABELS.
- Исправление внутренней ошибки компилятора при компилировании некоторых бесконечно-рекурсивных форм LABELS.
- Исправление внутренней ошибки компилятора при попытке встроить переход к уже удалённой метке.
- FILL-POINTER никогда не должен быть отрицательным.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (http://www.sbcl.org/news.html...)
- OpenNews: Выпуск SBCL 2.3.9, реализации языка Common Lisp
- OpenNews: SystemE, шуточная замена systemd на Emacs Lisp
- OpenNews: Языку программирования LISP исполнилось 60 лет
- OpenNews: Представлен LISP/c - транслятор Common Lisp в C/C++
- OpenNews: Компилятор на базе GNU Guile достиг совместимости с приложениями на Emacs-Lisp
Похожие новости:
- Выпуск SBCL 2.3.9, реализации языка Common Lisp
- [Open source, Виртуализация, Карьера в IT-индустрии, Openshift] Quarkus и разработка еdge-систем IoT, шпаргалка по Kubernetes, а также электронная книга «Ansible for DevOps»
- [Lisp, Функциональное программирование, Исследования и прогнозы в IT, Образование за рубежом, Научно-популярное] Анонсирован Scheme Workshop 2021 (перевод)
- [Java, Анализ и проектирование систем, Lisp, Проектирование и рефакторинг, Конференции] Effective Programs (10 Years of Clojure) — Rich Hickey (с русским переводом) (перевод)
- [Программирование, Lisp, Emacs, Clojure] Что не так с Лиспом? (перевод)
- [Программирование, Венчурные инвестиции, Развитие стартапа, Карьера в IT-индустрии] Пол Грэм: Над чем я работал (перевод)
- [Программирование, Управление разработкой, Управление проектами, Учебный процесс в IT, Изучение языков] Как прорешать SICP: Отчёт о создании решебника для самого известного в мире задачника по программированию (перевод)
- [Программирование, Lisp, История IT] Почему я остаюсь с Лиспом (и вам тоже стоит) (перевод)
- [Программирование, Разработка игр, Изучение языков] Обзор GameLisp: нового языка для написания игр на Rust
- [Lisp, Функциональное программирование, Профессиональная литература, Учебный процесс в IT, Читальный зал] Итоги двух лет изучения «Structure and Interpretation of Computer Programs»
Теги для поиска: #_sbcl, #_lisp
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 19:30
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Опубликован выпуск SBCL 2.3.11 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD. В новом выпуске:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 19:30
Часовой пояс: UTC + 5