LINUX.ORG.RU

Избранные сообщения multimethod

Вышел Clasp 0.4

Новости — Open Source
Группа Open Source

20 ноября вышел в свет Clasp 0.4 — новый релиз, включающий в себя совершенно новый компилятор, способный генерировать до 200 раз более быстрый код, чем его предшественник, так же улучшено взаимодействие с C++ и теперь реализация полнее соответствует стандарту ANSI Common Lisp.

Clasp — новая реализация Common Lisp с упором на легкое взаимодействие с библиотеками C++, используя LLVM для компиляции в нативный код, с целью использования большого количества существующих библиотек и программ. Встраивание их в среду Common Lisp'а позволяет воспользоваться быстрым прототипированием, инкрементальной разработкой и другими возможностями, делающими Common Lisp столь мощным языком.

Основные изменения:

  • Совершенно новый, оптимизирующий/встраивающий (inlining) компилятор — cclasp! (небольшое сравнение с C++ / SBCL / Python)
  • Значения типов fixnum, character и single-float теперь представлены напрямую.
  • Указатели на объекты и cons-ячейки теперь тегируются для скорости.
  • Библиотека Clbind позволяет программистам выставлять наружу внешние C++-библиотеки.
  • Множество исправлений ошибок и улучшений.

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

 , clasp, , ,

loz
()

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

Новости — Open Source
Группа 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
()

Вышел Allegro Common Lisp 10.0

Новости — Проприетарное ПО
Группа Проприетарное ПО

Сегодня, 7 октября 2015 года Franz Inc, давний новатор в области искусственного интеллекта (ИИ), представила десятый релиз своей платформы Allegro Common Lisp (CL). Allegro CL — мощная, динамическая система разработки ИИ, которая отлично подходит для разработки в промышленных масштабах. Сделать приложения с миллиардами объектов теперь просто с Allegro CL 10, которая является лидирующей в индустрии платформой разработки на Common Lisp. Allegro CL 10 обеспечивает параллелизм при управлении памятью, включая параллелизм в сборщике мусора, а также быструю утилизацию памяти.

Основные нововведения:

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

 , , franz,

anonymous
()

ФВП и производительность

Форум — Development

Провёл тест на скорость работы одной и той же функции, написанной нормально и через ФВП. Получил потерю производительности в полтора раза:

SBCL:

(declaim (optimize (speed 3) (safety 0)))

(asdf:oos 'asdf:load-op :alexandria)

(defun f (x)
  (+ (+ (+ x 1) 2) 1))

(let ((f-comp
          (alexandria:compose
            (lambda (x) (+ x 1))
            (lambda (x) (+ x 2))
            (lambda (x) (+ x 1)))))
  (defun f-comp (x)
     (funcall f-comp x)))

(defconstant iter 10000000)

(time
 (dotimes (i iter)
   (f i)))

(time
 (dotimes (i iter)
   (f-comp i)))


Evaluation took:
  0.181 seconds of real time
  0.180000 seconds of total run time (0.180000 user, 0.000000 system)
  99.45% CPU
  325,363,554 processor cycles
  0 bytes consed

Evaluation took:
  0.296 seconds of real time
  0.296000 seconds of total run time (0.296000 user, 0.000000 system)
  100.00% CPU
  530,610,480 processor cycles
  0 bytes consed

Racket:

#lang racket
(define (f x)
  (+ (+ (+ x 1) 2) 1))

(define f-comp
  (compose
   (lambda (x) (+ x 1))
   (lambda (x) (+ x 2))
   (lambda (x) (+ x 1))))

(define iter 1000000)

(time 
 (for ([i iter])
   (f i)))

(time 
 (for ([i iter])
   (f-comp i)))

cpu time: 728 real time: 726 gc time: 0
cpu time: 1244 real time: 1244 gc time: 0

Получается, функции высшего порядка лучше не использовать? А как с этим борются в Haskell, если там без них почти ничего написать нельзя (точнее не принято рекомендуемым стилем программирования)?

 , , ,

monk
()

clcon - новая IDE для Common Lisp. Выбираем фичи для пре-альфа-релиза

Форум — Development

Тема началась здесь, но надо завести новую, а то важное сообщение залистнётся.

У меня есть написанный на SWANK/tcl/tk прототип IDE для Common Lisp. Сайт проекта clcon. Снимок экрана.

Текущая цель - простая и легковесная IDE для обучения (альтернатива SLIME), устанавливаемая «за один щелчок». Пермиссивная лицензия.

Текущие фичи:

  • REPL
  • Поиск определения
  • Completion
  • Инспектор
  • Дебаггер

Все фичи имеют ограничения, это скорее прототип чем что-то рабочее.

До того, как попытаться собрать подобие релиза, хочу сделать ещё пару фич. Вот список. Весь список не осилю. Собираю голоса, кому что больше интересно. Ну и заодно хочу понять, будет ли кто-то загружать эту игрушку или нет.

  • 1. табы как в файрфоксе для листания файлов в редакторе (сейчас листание окон примерно как list-buffers в емаксе)
  • 2. интеграция со справкой (CLHS, docstring, quickdocs)
  • 3. slime-who-calls и т.п.
  • 4. grep
  • 5. размещение окон по экрану
  • 6. автоотступы

Жду от вас деклараций вида: «если будут фичи N1,N2 и N3, то я готов буду посмотреть твою поделку».

P.S. ожидаю вопросов «а будешь ли добавлять другие языки». Отвечаю: да. Но пока об этом рано говорить.

 , , ,

den73
()

Clasp, одна из новых реализаций CL, всего лишь в четыре раза медленнее, чем C++

Форум — Development

Новая реализация компилятора CClasp, базирующегося на Cleavir от Robert Strandh, без оптимизаций, всего лишь в четыре раза медленнее, чем C++. Ожидается, что с добавлением вывода типов производительность генерируемого кода с CClasp, должнo еще прибавить в скорости выполнения.

В приведенной таблице, также есть сравнение производительности генерируемого кода с SBCL (еще одна из активных реализаций CL) и Python.

Основной особенностью Clasp, среди других реализаций Common Lisp, является тесная интеграция с C++ и использование LLVM.

Подробности: https://drmeister.wordpress.com/2015/07/30/timing-data-comparing-cclasp-to-c-...

 , , , ,

Oxdeadbeef
()

Состояние экосистемы Common Lisp на 2015 год

Форум — Development

По следующей ссылке приведен список рекомендуемых библиотек и фреймворков в Common Lisp для различных применений:

http://eudoxia.me/article/common-lisp-sotu-2015/

 ,

Oxdeadbeef
()