LINUX.ORG.RU

Steel Bank Comon Lisp (SBCL) 2.4.9

 , , ,


0

2

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.

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



Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 1)

Ответ на: комментарий от hateyoufeel

Croco придет, на сиплюсплюсе с Интелибом перепишет :)

gns ★★★★★
()

всегда было интересно пощупать «взрослые» лиспы, но дальше туториала по емакс-лиспу так никогда и не ушёл..

Поздравляю всех кому это интересно!

В том числе (вероятно) lovesan, den73, monk.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

В практическом смысле - для связи с ОС, написанной на Си(как примерно все мейнстримные ОС), имеющей сишное API и сишное ABI, удобнее использовать Си.

Но никакой принципиальной сложности переписать все на лиспе, учитывая что в SBCL имеется компилятор в машкоды - нет.

lovesan ★★
()
Ответ на: комментарий от unDEFER

Код SBCL основан на разработке из Университета Карнеги–Меллона, Carnegie Mellon University Common Lisp. Название форка обыгрывает этот факт: Карнеги, в честь которого назван университет, был сталепромышленником, а Меллон — банкиром.

xsaeta
() автор топика
Ответ на: комментарий от lovesan

В практическом смысле - для связи с ОС, написанной на Си(как примерно все мейнстримные ОС), имеющей сишное API и сишное ABI, удобнее использовать Си.

Там сборщик мусора написан на Си. С ОС он никак не связан, если не считать трёх вызовов mmap и munmap.

Вертишься как глист на сковородке!

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA

bike-c невозможен потому что в Си нет интроспекции.

Но есть CFFI.

для автоматизации есть CFFI-GROVEL, берет информацию из хедеров

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

та библиотека заброшена, но все думаю опять за нее взяться

lovesan ★★
()
Ответ на: комментарий от lovesan

bike-c невозможен потому что в Си нет интроспекции

Для чего она нужна? Получить типы, функции, можно из /usr/include, в процессе выполнения программы они не меняются.

Grovel я его не использую т.к. обычно делаю что-то кастомное и красивое, а не просто автоматом сгенерированное обертки

А зачем генерировать, если можно сделать некий пакет, который позволит

(c-include stdio.h)
(c-call printf "hello world!")

т.к. сишный и лисповый подход к разработке отличается

И GC в С нету, и много других различий, но это уже обертка, я говорю про сам вызов функций, создание структур.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от lovesan

(c-include stdio.h)

лисп так не работает

В чем проблема?

CFFI примерно вот это и позволяет

Без c-include это не отличается от того что есть в других языках.

MOPKOBKA ★★★★
()
Ответ на: комментарий от MOPKOBKA

(c-include stdio.h)

лисп так не работает

В чем проблема?

Да вроде ни в чём, надо просто реализовать парсер C и CPP (который препроцессор). @lovesan, где я ошибаюсь?

Gentooshnik ★★★★★
()
Ответ на: комментарий от Gentooshnik

Можно взять готовый. В metaprog использовался castxml, но у него был недостаток, макросы не подхватывались. В идеале они тоже должны работать.

MOPKOBKA ★★★★
()
Ответ на: комментарий от Gentooshnik

как в контексте лиспового кода эта вещь будет выполняться? и когда?

а вообще так то, примерно это гровеллер cffi делает, но он генерирует определения потом, прочесывая файлы, а не просто «инклюдит»

lovesan ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.