LINUX.ORG.RU

Lisp


163

8

Всего сообщений: 74

Steel Bank Comon Lisp (SBCL) 2.4.9

Группа Разработка

29 сентября было объявлено о выходе корректирующего обновления свободной реализации языка программирования Common Lisp sbcl-2.4.9.

Пакет sbcl включает в себя компилятор, профайлер, дебаггер и другие полезные расширения. Распространяется как общественное достояние, с частями под лицензией MIT. Большая часть кода sbcl написана на Common Lisp. Официально поддерживаются платформы x86, x86-64, PowerPC, SPARC, Alpha, MIPS, HPPA, ARM с Linux, а также ряд других операционных систем на аппаратных плафтормах x86 и x86-64.

Изменения в выпуске 2.4.9:

  • Незначительное нарушение совместимости с предыдущими версиями: FIND, POSITION (и их варианты) теперь проверяют аргументы :START и :END на корректность как ограничивающие указатели индексов (bounding index designators) для последовательностей списков.
  • Поддержка платформ:
    • Улучшена поддержка Solaris и ее вариантов на x86 и x86-64 (благодарности Masatoshi SANO)
    • Исправлен баг в обработке таймаутов и прерванных системных вызовов в SB-UNIX:UNIX-SIMPLE-POLL (lp#2078824, благодарности Michał phoe Herda)
    • Исправлен баг в лисповом представлении ssize_t в Windows
    • Исправлено кодирование больших констант в RISC-V. (lp#2077307, благодарности Guillaume LE VAILLANT)
    • Более экономичные низкоуровневые типовые тесты на arm64
    • Сборка после выполнения git-archive должна завершаться без ошибок.
  • Исправлен баг: экспортирование символа во врема итерации пакета больше не пропускает другие символы. (lp#2080387, благодарности kbhit).
  • Оптимизация: улучшения в хэш-таблицах EQ и связанных хэш-функциях.
  • Оптимизация: проверка типа строки и строки-обозначения (string-designator) сделана более эффективной.
  • Оптимизация: компилятор лучше понимает природу результата CONCATENATE.

>>> Подробности

 , , ,

xsaeta
()

Язык программирования 1 теперь работает на Эльбрусе

Группа Разработка

Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.

$ uname -a
Linux alatyr 5.4.0-3.19-e1cp #1 Wed Mar 9 16:53:28 MSK 2022 e2k E1C+ MBE1C-PC GNU/Linux
$ cat тест.1
#!1

структура человек
  ; имя
    отчество #:изменяемое
  #:суффикс -человека

иван = человек "Иван" "Иванович"
отчество-человека иван := "Петрович"
отчество-человека иван
$ racket/bin/racket тест.1
"Петрович"

Пока сборка есть только для Эльбрус Линукс на Эльбрус-1С+ (система команд e2k-8c). Для остальных можно воспользоваться скриптом для сборки.

Язык 1 - функциональный язык программирования на основе русского языка. Синтаксис унаследован от Haskell, семантика от Racket.

Предыдущее обсуждение на ЛОРе

>>> Описание языка

 , , , ,

monk
()

Emacs 28.1

Группа Linux General

4 апреля состоялся релиз Emacs 28.1.
В новой версии добавлены возможности:

  • компиляция Lisp-файлов в машинный код;
  • поддержка Harfbuzz при формировании текста и отрисовка с помощью Cairo;
  • улучшенная поддержка отображения Emoji и их последовательное отображение;
  • minor mode для контекстного меню;
  • отображение по умолчанию совпадающих круглых скобок;
  • множество улучшений и дополнительных расширений для project.el;
  • новая система документирования групп функций.

>>> Подробности

 , ,

Oldboy
()

GNU Guile-CV 0.3.1

Группа GNU's Not Unix

Guile-CV — это библиотека компьютерного зрения для языка программирования GNU Guile, являющаяся привязкой к библиотеке Vigra. Vigra написана на C++ и используется в Guile-CV через прослойку Vigra C. Guile — реализация языка Scheme, диалекта Lisp.

Изменения с прошлой новости (0.2.0)

( читать дальше... )

>>> Источник

 , , , ,

mertvoprog
()

Racket 8.0

Racket 8.0
Группа Разработка

Вышла новая мажорная версия языка программирования Racket, основанного на Scheme и нацеленного на создание пользователем собственных DSL.

  • Завершён переход на среду исполнения Chez Scheme — таким образом удалось уменьшить объём генерируемого кода на величину от 10 до 30%, а также значительно ускорить выполнение программ и повысить эффективность.
  • Переписан движок среды тестирования программ.

>>> Подробности

 , ,

Princesska
()

Racket завершает переход с LGPL на двойное лицензирование MIT/Apache

Группа Разработка

Racket — язык, вдохновленный Scheme, а также экосистема для программирования других языков — начал переход на двойное лицензирование Apache 2.0 или MIT в 2017 году и теперь, к версии 7.5, практически все его компоненты завершают этот процесс.

Авторы отмечают две основные причины этого:

  1. Непонятно, как трактовать положения LGPL о динамической линковке к Racket, где макросы «копируют» код из библиотек в код приложения, а приложения зачастую комплектуются рантаймом и библиотеками Racket.
  2. Некоторые организации принципиально не хотят использовать программное обеспечение, лицензированное под любой вариацией GPL.

Всего несколько небольших компонентов осталось под LGPL из-за того, что их авторы неизвестны либо не ответили на запрос о перелицензировании. Двое разработчиков ответили отказом на подобный запрос, их код и документация уже были удалены или переписаны.

>>> Подробности

 , ,

filosofia
()

Голосование по второй бета-версии Revised 7 Report on Algorithmic Language Scheme (Large Language)

Группа Конференции и встречи

Открыто голосование по содержанию второй (из восьми) бета-редакции алгоритмического языка Scheme R7RS-large (Tangerine Edition), а также сбор предложений по третьей бета-редакции (Orange Edition).

Scheme, также известный под именем Lisp (не путать с Common Lisp) — это современный алгоритмический язык программирования, знаменитый своей ориентацией на функциональную парадигму программирования, однако ей себя не ограничивающий.

Семейство Lisp - второе по длительности применения семейство языков (после Фортрана), основанное Джоном Маккарти в качестве инструмента написания искусственного интеллекта. Одним из активных участников разработки специализированных компьютеров для интерпретации Lisp был Ричард Столлман, впоследствии основатель Фонда Свободного Программного Обеспечения. Как следствие, одним из основных инструментов при разработке на Scheme является Emacs (+Geiser, Scheme-Complete, company-mode). Предполагается, что в какой-то момент Scheme будет внутренним языком Emacs, вместо Emacs Lisp. (Уже сейчас можно посмотреть на EdWin.)

Scheme — это Lisp, ориентированный на лёгкость портирования, функциональный подход и внедрение лучших практик теории языков программирования.

Scheme развивается двумя путями. Индивидуальные расширения формулируются согласно процессу, сходному с RFC, и называются SRFI, (Scheme Request For Implementation). В отведённые сроки выходят объединённые редакции «стандартного отчёта», формулирующие, что из себя представляет scheme «в целом». Последним завершённым изданием является Revised 7 Report on Algorithmic Language Scheme (small language), а последним экспериментальным изданием является R7RS-large Red Edition. Предполагается, что до выхода окончательной редакции R7RS-large выйдет семь или восемь промежуточных редакций, и в данный момент рассматриваются редакция 2 (Tangerine), ставящая своей целью формализовать структуры данных, коллекции и numerics и редакция 3, нацеленная на новые фичи.

Заинтересованным специалистам предлагается изучить дискуссионный материал и проголосовать согласно собственному видению вопроса, представившись перед этим заранее в scheme-reports-wg2@googlegroups.com

Вопросы, по которым предлагается голосование:

  • Строковая библиотека
  • Ассоциативные массивы
  • Регулярные выражения
  • Генераторы/Аккумуляторы
  • Целочисленные операции
  • Битовые операции
  • Математические операции с fixpoint
  • Математические операции с floating point
  • Битовые вектора
  • Гомогенные вектора
  • Форматирование
  • Большие числа
  • Дроби
  • Точные числа

Вопросы, которые предлагается рассмотреть в третьем издании:

  • Случайные числа
  • Простые числа
  • Целочисленные множества
  • Дискрептивная статистика
  • Диапазоны
  • Битовые вектора
  • Байтовые строки
  • Перечисления
  • Комбинаторика и перестановки

>>> Подробности

 , , , ,

anonymous
()

MIT/GNU Scheme 10.1

Группа GNU's Not Unix

MIT/GNU Scheme — это реализация языка программирования Scheme, предоставляющая интерпретатор, компилятор, отладчик исходного кода, встроенный Emacs-образный редактор и большую библиотеку времени выполнения. MIT/GNU Scheme заточен под программирование больших приложений с быстрым циклом разработки.

Изменения:

  • Сборки для Windows больше не распространяются, поскольку существовавшие 32-разрядные сборки малопригодны для современных систем, а для достижения работоспособности 64-разрядной нужны немалые усилия, в которых никто из текущих сопроводителей не заинтересован.
  • Для macOS теперь выпускаются только 64-разрядные сборки, поскольку в применяемом в последних выпусках инструментарии поддержка 32-разрядной сборки объявлена устаревшей.
  • Переносимая версия для C не включена в этот выпуск, поскольку её не удалось вовремя починить.
  • На следующий выпуск запланировано кучу мелких улучшений; первоочерёдными задачами этого выпуска являются нововведения.

Важные нововведения:

( читать дальше... )

Ещё изменения:

  • начальная поддержка SMP;
  • уведомления сборщика мусора;
  • события нитей;
  • многие другие мелкие нововведения и исправления.

Несовместимые изменения:

( читать дальше... )

Экспериментальные новые возможности:

  • Тип URI имеет новый синтаксис: #<...>. И читатели, и писатели работают с этим синтаксисом.

>>> Подробности

 , , ,

bodqhrohro_promo
()

GNU Guile-CV 0.2.0

Группа GNU's Not Unix

  Guile-CV — это библиотека компьютерного зрения для языка программирования GNU Guile, являющаяся привязкой к библиотеке Vigra, написанной на C++, и работающая через прослойку Vigra C. Guile — реализация языка Scheme, диалекта Lisp.

( читать дальше... )

>>> Источник

 , , , ,

bodqhrohro_promo
()

Вышел язык программирования Racket 7.0

Группа Разработка

Racket - это язык программирования общего назначения, а также первая в мире экосистема для языко-ориентированного программирования.

Racket версии 7.0 включает существенные изменения в рамках долгосрочных целей замены текущей системы времени выполнения и поддержки множества систем времени выполнения. Предполагается, что пользователи Racket не почувствуют большой разницы между Racket 6.12 и Racket 7.0, но в связи с тем, что реализация претерпела серьёзные изменения, увеличен именно старший номер версии.

Ядро версии 7.0 является результатом переработки ядра версии 6.12 более чем на 1/8, и включает новый механизм раскрытия макросов, который осуществляет бутстрэппинг самого себя. Данный механизм покрывает более 40% кода, необходимого для замены ядра Racket на Chez Scheme. Остальные 60% кода, по бОльшей части, также реализованы, но не включены в этот выпуск; мы надеемся и предполагаем, что Racket-на-Chez будет готов для промышленного использования в следующих выпусках ветки 7.x

  • Синтаксис формы (`#'`) поддерживает новые шаблоны подформ: ~@ - для сплайсинга, и ~? - для выбора между подшаблонами, основанного на возможном «отсутствии» значения у переменных образца (например, у образца ~optional в syntax-parse). Библиотека syntax/parse/experimental/template, откуда происходят эти возможности, экспортирует новые формы под старыми именами для совместимости.
  • На Windows флаг --embed-dlls команды raco exe создаёт по-настоящему автономный исполняемый файл ".exe", который содержит в себе разделяемые библиотеки Racket.
  • Опция «Create Executable» интегрированной среды разработки DrRacket для учебных языков (Beginner Student, и т.п.) использует флаг --embed-dlls на Windows.
  • Поддержка prefab («previously fabricated») структур в Typed Racket существенно улучшена, что делает их более полиморфными, исправляя, вместе с тем, существенные ошибки текущей реализации. Программы, которые сейчас используют предикаты для prefab-структур неизвестных данных, могут нуждаться в ревизии, т.к. предыдущие версии Typed Racket позволяли программам с потенциальными ошибками осуществлять проверку типов. Смотрите Typed Racket RFC 1 и prefab-changes для более подробной информации об этом изменении, и о том, как исправить программы, которые подверглись влиянию в связи с этим изменением.
  • Typed Racket поддерживает #:rest-star в конструкторе типов ->*, что позволяет функциональным типам указывать в хвостовом списке аргументов (rest arguments) более сложные образцы типов, такие как функция hash.
  • Интерактивные оверлеи могут быть наложены на графики, созданные с помощью plot-snip. Это позволяет создавать интерактивные графики или отображать дополнительную информацию, когда указатель мыши находится над областью графика. Примеры использования данной возможности можно посмотреть тут.
  • racket/plot предоставляет процедуры для отображения графиков японских свечей (candlestick charts), которые могут быть использованы в финансовом анализе временных рядов.
  • Добавлен contract-equivalent?, который проверяет, что два контракта являются взаимосильными, без экспоненциального замедления, которое имеет место в случае двух вызовов contract-stronger?.
  • Lazy Racket поддерживает функции с именованными аргументами.

>>> Оригинал

 , ,

azelipupenko
()

GNU Guile-CV 0.1.9

Группа GNU's Not Unix

Guile-CV — это библиотека компьютерного зрения для языка программирования GNU Guile, являющаяся привязкой к библиотеке Vigra, написанной на C++, и работающая через прослойку Vigra C. Guile — реализация языка Scheme, диалекта Lisp.

Изменения с версии 0.1.8:

  • Обновлены зависимости. Совместимость теперь поддерживается с Vigra C от коммита a2ff675f4 и выше, из-за изменений в январе этого года: в интерфейсе vigra_nonlocalmean_c переименован аргумент, в функции vigra_medianfilter_c добавлен аргумент out-of-bound strategy.
  • Новые интерфейсы: im-median-filter, im-median-filter-channel, im-nl-means, im-nl-means-channel.
  • Исправления: в модуле (cv support latex), использующем latex-pdftoppm — недокументированной, но весьма полезной для подготовки текста к добавлению на изображения процедуре — опциональный аргумент с ключевым словом [#:res 72] фактически не использовался, теперь это исправлено.

>>> Подробности

 , , , ,

bodqhrohro_promo
()

Состоялся релиз LispWorks 7.1

Группа Проприетарное ПО

LispWorks Ltd рада представить новый релиз LispWorks 7.1 на платформах Windows®, Macintosh®, x86/x86_64 GNU/Linux®, ARM GNU/Linux®, ARM64 GNU/Linux®, FreeBSD®, AIX®, x86/x64 Solaris™ и SPARC/Solaris™, Android и iOS.

LispWorks 7.1 включает следующие новшества и улучшения:

>>> Подробности

 , ,

anonymous
()

PicoLisp 17.6

Группа Разработка

29 июня вышла новая версия интерпретатора PicoLisp.

PicoLisp — это ультрапрагматичный минималистичный диалект Lisp, работающий исключительно в режиме интерпретации. В его стандартную библиотеку входит эффективная база данных и веб-сервер, что позволяет с его использованием создавать веб-сервисы (и не только).

Обновление включает в себя две новые функции, исправления ошибок и улучшения repl, добавлена библиотека для Android и новый компонент TreeChart для web-gui.

>>> Страница загрузки

 ,

nihirash
()

Armed Bear Common Lisp 1.5

Группа Open Source

Вышла шестая редакция ABCL 1.5 — реализации языка программирования общего назначения Common Lisp.

( читать дальше... )

>>> Подробности

 , , ,

Oxdeadbeef
()

ECL 16.1.3

Группа Open Source

Спустя почти год вышла новая версия ECL — реализации языка программирования Common Lisp.

Также ведутся работы над новой документацией.

Было проведено обширное тестирование релиза на Linux, FreeBSD, OpenBSD, NetBSD, OSX, Windows MSVC, Windows MinGW, Windows Cygwin, Android и Haiku. Было уделено больше внимания над улучшениями на платформе Windows.

Основной особенностью ECL компиляция исходного кода на Common Lisp в байт-код или в портабельный код на C, который затем компилируется стандартным компилятором текущей платформы, что делает компилятор ECL легко переносимым. Например, известны порты ECL на ARM, работающие на Android и iOS.

ECL также может легко встраиваться в приложения, написанные на других языках, как скриптовый язык, но с более богатыми возможностями: Common Lisp, компиляция в байт-код или машинный код (если доступен компилятор С).

>>> Исходный код

>>> Подробности

 , , ,

Oxdeadbeef
()

«Функциональное программирование: базовый курс» на Common Lisp

Группа Open Source

В курсе изучаются основы функционального подхода к программированию и практические вопросы программирования на языке LISP. Функциональные языки обладают множеством интересных особенностей, знакомство с которыми расширяет кругозор программиста. Курс содержит видеолекции, опросы и практические задания по программированию. Материал курса рассчитан на 10 недель обучения. Занятия пройдут с 27 февраля по 7 мая 2017 г.

Требования

Необходимым условием для освоения курса является знание основ вычислительной техники и дискретной математики. Для прохождения курса требуется компилятор LISP, поддерживающий стандарт Common Lisp, например, GNU CLISP или SBCL.

>>> Записаться на курс

>>> Подробности

 , , ,

Oxdeadbeef
()

ABCL 1.4.0

Группа Open Source

ABCL — реализация языка программирования общего назначения Common Lisp, которая работает на JVM (включает интерпретатор и компилятор) и поддерживает JSR-223 (Java scripting API) и, таким образом, может быть встроена в приложения на Java.

Официальный сайт

>>> Информация о релизе

 , ,

Oxdeadbeef
()

Вышел Racket 6.4

Группа Open Source

Вышла версия 6.4 языка Racket — языка программирования общего назначения из семейства Lisp/Scheme.

  • Исправлена уязвимость в Web-сервере. Данная уязвимость позволяла получить доступ к любому файлу, доступному Web-серверу для чтения (подробности).
  • Новый инкрементальный сборщик мусора уменьшил паузы, что особенно важно в играх и анимациях.
  • Скроллинг в DrRacket стал быстрее.
  • Добавлен болгарский перевод в DrRacket.
  • Каталог пакетов теперь имеет адрес HTTPS по умолчанию, а не HTTP.
  • Документация теперь может определять свои собственные категории для главной страницы руководства с использованием строк.
  • Шпаргалка по Racket включена в основной дистрибутив.
  • Контракт, который Typed Racket генерирует для типа Any, стал более либеральным, что позволяет большему числу программ как с использованием системы типов, так и без неё работать без ошибок контракта.
  • Redex поддерживает спецификацию связей (binding specifications).
  • Все функции pict принимают pict-convertible, что обеспечивает прозрачное взаимодействие между pict и библиотеками типа 2htdp/image.
  • Команды raco profile и raco contract-profile предоставляют лёгкий доступ к инструментарию профилирования без необходимости изменять сами программы.

>>> Подробности

 ,

anonymous
()

Вышел Racket 6.3

Группа Open Source

Доступен для скачивания релиз 6.3 языка программирования Racket — http://racket-lang.org/.

Новшества:

  • При раскрытии макросов используется новое представление связывания, что позволяет проще понимать как макросы сохраняют связывания, особенно при вовлечении в процесс раскрытия нескольких модулей и при отклонении от гигиены при раскрытии.
  • GUI-библиотека Racket теперь использует Gtk3+ по умолчанию.
  • Новое руководство по Redex.
  • Улучшена проверка синтаксических ошибок для Redex-паттернов.
  • Bluebox стали более агрессивными в плане отыскания имён для поиска в документации.
  • Подмодули теперь полностью поддерживаются в Typed Racket.
  • Библиотека typed/racket/unsafe предоставляет формы импорта/экспорта для обхода генерации контрактов.
  • Typed Racket предоставляет экспериментальную поддержку units (из racket/unit).
  • Экспериментальная форма define-new-subtype позволяет указывать тонкие различия, без которых типы считаются идентичными (аналог new type в Haskell).
  • Конструктор типов Promise изменился, нарушив обратную совместимость для устранения promise, созданных с помощью promise/name.
  • Пакеты unstable-* исключены из главного дистрибутива.
  • big-bang поддерживает режим display-mode, что позволяет т.н. «мировым» программам (интерактивным, графическим программам, состоящих из простых математических функций) занимать весь экран целиком.

>>> Подробности

 , ,

anonymous
()

Вышла новая версия SBCL 1.3.0 — реализации ЯП Common Lisp

Группа Open Source

Значимые изменения в этой версии:

  • портирование на архитектуру ARM64/Linux (есть возможность запускать на платформе Android);
  • новая реализация интерпретатора, который по возможностям превосходит уже существующий SB-EVAL (быстрее в 20 раз). По умолчанию он выключен, но шаги для его активации описаны в файле src/interpreter/README.

Steel Bank Common Lisp (SBCL) — одна из реализаций языка программирования общего назначения Common Lisp. SBCL отличают высокая производительность генерируемого компилятором кода. Исходные коды открыты под смешанной лицензией BSD-style и Public Domain.

SBCL работает на многих POSIX-платформах, включая Microsoft Windows.

>>> Подробности

 , , , ,

Oxdeadbeef
()