LINUX.ORG.RU

[Лиспофлейм]Реализации common lisp и пакеты


0

0

Вот не пойму.

Вы хотите написать программу, использующую сторонние библиотеки в C, вы пишите

#include <foo.h> // препроцессор вставляет сдесь содержимое foo.h

В пистоне: import foo // Создается неймспейс foo, читается код из foo.py, все переменные/функции запихиваются в этот неймспейс.

В лиспе же вообще нет единой системы. Когда я сидел под дебианом в clisp'е там было что-то типа:

(require 'common-lisp-controller)
(common-lisp-controller:clc-require 'foo)

В sbcl для установки(!!) пакетов (вернее «систем», которые определяются с помощью defsystem) используется asdf-install:

(asdf-install 'foo)
(require 'foo)

Так вот вопрос: почему реализация берет на себя установку пакетов, контроль путей к пакетам итд.? Почему установку не доверить, например, пакетному менеджеру операционной системы?

Почему везде нельзя как в emacs (идеальный вариант):

(setq load-path (append load-path '(#p"/foo/bar" #p"/foo/buz")))
(require 'bar)
(require 'buz)

Или тупо (load «/foo/bar/buz»)?

Вопрос не совсем технический, поэтому в talks

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

только это ваше Bugatti без костылей в виде обвязок и сторонних библиотек( компонентов от ВАЗа ) даже с места сдвинуться не может

Например?

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

> Например?

да все самое базовое - freetype, cairo, bzip2 и т.п., одни только bindings наклепаны, да и то не на все, вон даже ЛОР-цы жалуются, что даже примитивный zlib из жопы:

http://andy128k.blogspot.com/

ну и даже без всего этого - ты сам писал, что сетевую часть на С++ удобней писать, а тут прямо бугатти ;)

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

> ну и даже без всего этого - ты сам писал, что сетевую часть на С++ удобней писать, а тут прямо бугатти ;)

ну правильно, пакеты между городами проще на фурах возить, чем на бугаттях =)

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

> ну правильно, пакеты между городами проще на фурах возить, чем на бугаттях =)

да и прочие практичекие задачи лучше делать не на них, а буггати пусть в гараже постоит

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

> вон даже ЛОР-цы жалуются, что даже примитивный zlib из жопы:

Ой, да в вашем C++ нет даже приличной обёртки над libxml2, все через одно место (была одна приличная - xmlwrapp, но автор её бросил). ну ты понял ;)

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

одни только bindings наклепаны

Ой, да у вас самих стыд и срам: ядро и либц на сях написаны, а g++ - нашлёпка поверх них ;)

ну и даже без всего этого - ты сам писал, что сетевую часть на С++ удобней писать, а тут прямо бугатти ;)

Это заслуга библиотеки (asio), а не языка. К тому же, знал бы я тогда Эрланг... :)

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

> Ой, да в вашем C++ нет даже приличной обёртки над libxml2, все через одно место (была одна приличная - xmlwrapp, но автор её бросил). ну ты понял ;)

тут лисперы писали, что вот если чего нет в CL - то есть в другом лиспе, можешь, считать, что С++ - это такой С ;)

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

> Ой, да у вас самих стыд и срам: ядро и либц на сях написаны, а g++ - нашлёпка поверх них ;)

да С/С++ - лучшее что есть :)

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

>> Ой, да в вашем C++ нет даже приличной обёртки над libxml2, все через одно место (была одна приличная - xmlwrapp, но автор её бросил). ну ты понял ;)

тут лисперы писали, что вот если чего нет в CL - то есть в другом лиспе, можешь, считать, что С++ - это такой С ;)


А и то и другое (как, впрочем, и некоторые Лиспы) - это такой ассемблер ;)

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

> А и то и другое (как, впрочем, и некоторые Лиспы) - это такой ассемблер ;)

это плохо?

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

> C в связке с CL выглядит гораздо лучше :)

раз мы с тобой общаемся на linux.org.ru - покажи любой дистрибутив и расскажи где в нем CL на практике выглядит лучше

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

раз мы с тобой общаемся на linux.org.ru - покажи любой дистрибутив и расскажи где в нем CL на практике выглядит лучше

У меня.

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

> Делюсь. Через патчи и заметки :)

а почему у других после установки линукса и просмотра репозиториев( не самых маленьких ) - ничего нужного на лиспе нет?

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

а почему у других после установки линукса и просмотра репозиториев( не самых маленьких ) - ничего нужного на лиспе нет?

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

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

а также другим лисперам, очевидно, потому и пишут они в очередной раз обертку над zlib

Были другие cffi-обёртки над zlib?

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

умножив это на большое кол-во несовместимых между собой лиспов - получаестя совсем жалкая картина

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

все еще хуже? в лиспе куча вариантов и все нерабочие?

Кроме этой есть uffi-обёртка (uffi - плохо) и две чисто лисповые реализации. Одна не умеет расжимать, другая глючит. Про кучу вариантов и неработоспособность не надо говорить, про соурсфордж и 80% всем известно.

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

> про соурсфордж и 80% всем известно.

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

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

> а почему у других после установки линукса и просмотра репозиториев( не самых маленьких ) - ничего нужного на лиспе нет?

http://gentoo-portage.com/media-gfx/gimp
http://gentoo-portage.com/sci-mathematics/maxima
http://gentoo-portage.com/app-accessibility/festival

http://packages.ubuntu.com/karmic/gimp
http://packages.ubuntu.com/karmic/maxima
http://packages.ubuntu.com/karmic/festival

Что первое пришло в голову. Можно ещё поискать по зависимостям.

Или у Вас в репозитории гимпа нет?

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

gimp - не на lisp, festival - тянет только на поделку, maxima и emacs - можно было и не вспоминать, лисперы только их и упоминают, если что

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

Хм, в каком языке есть, например, мультиметоды, динамические переменные, рестарты?

Новые структуры управления в языке FORTH M.Л.Гaсaнeнкo 1992г

Перевод иностранных терминов

backtracking - 1. бэктрекинг (перебор с возвратом как метод); 
               2. бэктрекинг (перебор с возвратом как процесс); 
               3. бэктрекинг (как метод исполнения программы); 
               4. откат, бэктрекинг (возврат при переборе). 
backtrackable - трассирующийся ( в честь трассы, остающейся на стеке откатов ). 
success - успех. 
to succeed - вырабатывать успех (термин "успешное завершение" неудачен - вырабатывая успех, процедура откладывается, а не завершается). 
failure - неуспех (неудача). 
to fail - вырабатывать неуспех, завершаться неуспехом.
Расширение возможностей перебора с откатом (бэктрекинга) М.Л.Гасаненко 1997г

Считается? :-)

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

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

Реально много по факту неподдерживаемого мусора (в любом большом дистрибутиве).

С точки зрения разработчика всё ещё хуже. Причём, хуже даже не из-за используемого языка, а из-за того, как opensource функционирует. У меня был случай (с C++), когда умерла машина, и по своей наивности в svn держал только свои исходники, надеясь в случае краха скачать сторонние библиотеки с интернета. И вот, момент настал, и я с ужасом обнаружил, что автор нужной библиотеки кардинально её переделал, старые версии с сайта удалил, репозитория нет. Спас кэш Гугля.

За апстримом вообще в реальной жизни не угонишься, получается lock-in на версию используемого софта, а он со временем перестаёт поддерживаться, и ты остаёшься один на один с его багами и невозможностью использовать фичи нового софта, т.к. апгрейд принесёт больше проблем, чем профита.

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

> У меня был случай (с C++), когда умерла машина, и по своей наивности в svn держал только свои исходники, надеясь в случае краха скачать сторонние библиотеки с интернета. И вот, момент настал, и я с ужасом обнаружил, что автор нужной библиотеки кардинально её переделал, старые версии с сайта удалил, репозитория нет. Спас кэш Гугля.

название библиотеки конечно забыл?

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

название библиотеки конечно забыл?

shmem. Который потом boost::interprocesses стал.

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

> gimp - не на lisp

Гимп автоматизируется Лиспом.

festival - тянет только на поделку


Это лично Вы так постановили? Выдаваемая ей речь легко разбирается, а что ещё надо? Чтобы в изкоробочной Убунте значёк festival был в панели быстрого запуска?

maxima и emacs - можно было и не вспоминать, лисперы только их и упоминают, если что


Но Вы ведь не будете утверждать, что их не существует. Вот, например, на Ruby вообще ничего нет. ;)

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

> Гимп автоматизируется Лиспом.

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

Это лично Вы так постановили? Выдаваемая ей речь легко разбирается, а что ещё надо?


на уровне встроенной поделки же в win95

Но Вы ведь не будете утверждать, что их не существует


нет

Вот, например, на Ruby вообще ничего нет. ;)


это плохо для Ruby

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

В win95 никакой встроенной поделки не было. Бесплатный софт того времени, (который не был открытым) да и современный, требует серъёзного допиливания текста. Фактически обычный plain-text они синтезировать в голос не в состоянии. festival в этом плане приятно удивил. Качество оставляет желать лучшего, но ошибок не делает в отличие от закрытых конкурентов.

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

я о твоей непоследовательности, а не об том куда ты ткнул мышкой

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

> две чисто лисповые реализации. Одна не умеет расжимать, другая глючит

очень мило. это лиспу в «+» надо засчитать?

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

> Фактически обычный plain-text они синтезировать в голос не в состоянии.

я правильно понимаю, что речь идет о спич апи? в вянде он чертисколько есть и вполне сносно работает. жаль что не на лиспе...

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

Еще лисп от franz имеет библиотеку для работы с zip, lispworks, наверняка тоже что-то свое дают.

cvb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.