The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

29.11.2023 14:29

Опубликован выпуск 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 никогда не должен быть отрицательным.


  1. Главная ссылка к новости (http://www.sbcl.org/news.html...)
  2. OpenNews: Выпуск SBCL 2.3.9, реализации языка Common Lisp
  3. OpenNews: SystemE, шуточная замена systemd на Emacs Lisp
  4. OpenNews: Языку программирования LISP исполнилось 60 лет
  5. OpenNews: Представлен LISP/c - транслятор Common Lisp в C/C++
  6. OpenNews: Компилятор на базе GNU Guile достиг совместимости с приложениями на Emacs-Lisp
Автор новости: 111
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60193-sbcl
Ключевые слова: sbcl, lisp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Шарп (ok), 16:42, 29/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >Лишп

    Требуется заслушать начальника транспортного цеха Лавсанчика.

     
     
  • 2.27, leap42 (ok), 03:44, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Требуется заслушать начальника транспортного цеха Лавсанчика.

    Это тот, который в vim пишет gui приложения для винды на лишпе, который просто оборачивает дотнет, и считает golang диким костылём? Так он уже даже не смешной, просто недополучивший помощь 🤣

     

  • 1.2, Аноним (2), 16:55, 29/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где используется лисп? OpenAI?
     
     
  • 2.3, Тот_ещё_аноним (ok), 17:04, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://github.com/topics/lisp
    Много всего)

    Причем половина прода именно sbcl
    Тот же influxdb

     
     
  • 3.5, Анонин (?), 17:23, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Influxdb? М... он точно на лиспе, а не на языке-который-нельзя-называть?
    https://github.com/influxdata/influxdb

    Или есть еще какой проект с таким же именем?

     
  • 3.8, Аноним (8), 17:59, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ты давай правильную ссылку https://github.com/topics/sbcl, а то удумал на лаврах других реализаций (которые вы и лиспами не считаете, как например Clojure) рассказать какой этот ваш мутабельный кусок говна завернутый в скобки "популярный"
     
     
  • 4.11, Анонин (?), 18:03, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    https://github.com/topics/lisp - 2,580 public repositories matching this topic
    https://github.com/topics/sbcl -    53 public repositories matching this topic
    Мда... очередное ненужно попытались пропиарить как какую-то полезняшку.

    >>> Исправление внутренней ошибки компилятора
    >> Исправление внутренней ошибки компилятора
    > Исправление внутренней ошибки компилятора

    Как они этот овнокод вообще в прод пустили?

     
  • 4.15, Аноним (15), 18:51, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > которые вы и лиспами не считаете, как например Clojure

    Эты «вы», они сейчас с нами на одном форуме? Clojure — типичный Lisp-1.

     
  • 4.17, Аноним (17), 19:08, 29/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.7, Аноним (7), 17:42, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Например в автокаде используется.
     
  • 2.9, Аноним (9), 18:01, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В емаксе
     
     
  • 3.19, ZloySergant (ok), 19:35, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >В емаксе

    В emacs - elisp тащем-то. Транслятор в подмножество CL - не считается.

     
  • 2.31, Аноним (31), 06:17, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Где используется лисп?

    "У нас каждый уважающий себя программист написал свою реализацию LISP" - так мне на такой же вопрос ответил bitRAKE.

    Тогда я сначала подумал, что это такая шутка (типа "каждый программист пишет свой текстовый редактор", как любит острить тут господин Ш.). Потом ознакомится с программой курса по CS, это правда. Но с тех пор курс изменили, потому имеем вокруг вот это вот всё.

     
     
  • 3.33, Аноним (33), 09:17, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > так мне на такой же вопрос ответил bitRAKE

    мы должны знать кто это?

     
  • 2.37, faa (?), 14:12, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всякие CAS написаны на лиспе.
     

  • 1.4, Аноним (4), 17:21, 29/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    (((((Самый)))) ((нечитабельный)))) язык ((((в мире)))))
     
     
  • 2.6, Аноним (6), 17:31, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    APL
    SD←((+/((X - AV←(T←+/X)÷⍴X)*2))÷⍴X)*0.5
     
     
  • 3.10, Аноним (9), 18:02, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я всё понял кроме того как вводить символы, которых у меня нет.
     
     
  • 4.12, Аноним (12), 18:31, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Добавляешь себе нужную раскладку, лепишь наклеечки или гравируешь символы на клаве. И наслаждаешься!
    Ищи APL keyboard layout.
     
  • 4.13, Аноним (6), 18:31, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Заменяй на null, потом поправишь баги если попросят.
     
  • 4.30, Вы забыли заполнить поле Name (?), 05:47, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Я всё понял кроме того как вводить символы, которых у меня нет.

    Включаешь в настройках редактора поддержку Font Ligatures. Подключаешь шрифт с их поддержкой, например JetBrainsMono. Затем вводишь "<-" или ">=" как обычно и наблюдаешь результат.

     
  • 2.20, Аноним (20), 19:41, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это ещё вопрос где больше скобочек в жс или лиспе.
     
  • 2.22, Аноним (22), 21:04, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я легко прочитал ваш комментарий. Я лиспер?
     
     
  • 3.23, Аноним (12), 21:10, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Конечно нет, у него скобки не сбалансированные.
    Такое даже не скомпилится.
     
  • 2.24, Аноним (24), 22:04, 29/11/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    { толи *дело { всякие* ++более++ **+известные-- { ***++язы

    Segmentation fault, core dumped.

     
     
  • 3.26, bergentroll (ok), 01:10, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    #ifndef #define OLOLO T<U<V>> #endif
     
     
  • 4.28, Жир (?), 04:38, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всяко лучше чем воровство баша питоном
     
     
  • 5.35, Аноньимъ (ok), 13:41, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мне нравится это!

    Баш воришка питона. Колотит удава так сказать. Душит змею.

     
  • 2.36, Аноньимъ (ok), 13:42, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле совсем на оборот.

    Самый простой и понятный синтаксис из всего. Проще уже нельзя на самом деле.

     
  • 2.38, Akteon (?), 14:51, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет ли в вашем комментарии антисемитизма??
     
     
  • 3.39, Аноним (39), 22:53, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем вы спрашиваете?
     
     
  • 4.40, Akteon (?), 09:23, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вы разве не згаете что этими скобками базовые гройперы обозначают?
     

  • 1.29, Вы забыли заполнить поле Name (?), 05:20, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Самый позитивный язык: в нем больше всего скобочек улыбак
     

  • 1.41, Аноним (41), 20:20, 01/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная новость. Использую лисп в своем проекте - числодробилка, 3д графика. Сейчас прикручиваю cuda, cpu не хватает.
    По скорострельности рвет всех в пух и прах, за исключением С и асм. Удивляюсь как ai/ml делают на питоне - тормоза ведь жудчайшие.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру