|
11 / 11 / 0
Регистрация: 03.11.2020
Сообщений: 23
|
|
Common Lisp Сторонние библиотеки в Lisp02.05.2021, 22:18. Показов 6430. Ответов 9
Метки нет (Все метки)
Подскажите как установить сторонние библиотеки в Lisp? Пользуюсь SBCL и CLisp на Linux, IDE Emacs и Geany.
Дело в том что я не особо хорошо могу программировать и хочу сделать прогу с гуем и хочу поковыряться в ГТК и Cairo https://github.com/rpav/cl-cairo2, в рамках практики и вообще как работать с библиотеками. И всё что я нашел это слишком туманные объяснения, которые слишком круты для меня как для новичка. Если можно, то конкретно для новичка как установить библиотеку по шагам и наверное так чтобы можно было на ответ ссылаться если у кого бы то ни было возникнет подобный вопрос. quicklisp устанавливал по этой инструкции http://lisper.ru/articles/quicklisp пытался разобраться в этом http://lisper.ru/wiki/cookbook:asdf но это для меня слишком круто для GTK нужны библиотеки отсюда https://www.cliki.net/GTK пытался установить через quicklisp сообщение не найдена библиотека Я уже в отчаянии. Lisp мне очень нравится и не очень хочется уходить с него, но я не пойму структуру языка. А изучение синтаксиса это не совсем изучение языка, так как в любом языке есть ещё как минимум компилятор-интерпретатор и структура файлов и их взаимодействие.
2
|
|
| 02.05.2021, 22:18 | |
|
Ответы с готовыми решениями:
9
Сторонние библиотеки |
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||||||||||||||||||
| 02.05.2021, 23:45 | ||||||||||||||||||||||
Сообщение было отмечено Catstail как решение
Решение
Как говорится, GUI в CL - это Emacs.
Тут два аспекта. С одной стороны, с GUI традиционно было туго. Но с другой - наличие Emacs-а во многом решает проблему интерфейса. Можно сосредоточиться на том, что программа делает, а не на взаимодействии с пользователем.В принципе, установка и загрузка библиотеки производится в одно действие:
Свой код вы тоже однажды захотите организовать в виде библиотеки. Создать простую ASDF библиотеку несложно. Однако для начала достаточно писать код в одном файле и загружать его функцией load. Некоторое время назад я экспериментировал с cl-cffi-gtk, не понравилось. Когда эта библиотека грузится, инициализируется что-то сишное; при разработке возникали ошибки, в результате которых работа с библиотекой рушилась, и повторно инициализировать её не получалось. Приходилось перегружать лисп. Это примерно так же нелепо, как перегружать комп. Если что, эта библиотека загружалась с помощью
Добавлено через 58 минут
3
|
||||||||||||||||||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 03.05.2021, 18:18 | ||
|
Кстати, насчёт создания простой библиотеки. Для этого можно воспользоваться библиотекой quickproject. Функция quickproject:make-project создаст проект с файлом для кода, файлом package.lisp, в котором описываются пакеты библиотеки, и файлом ASDF-системы. В последнем можно добавлять зависимости по мере того, как они появляются и перечислять файлы проекта по мере того, как они отпочковываются.
Но это не первостепенная необходимость. Чтобы людям не стыдно было показать. Несколько тысяч строк кода можно написать и без ASDF-системы. В лиспе удобно переходить сразу к мясу.
3
|
||
|
11 / 11 / 0
Регистрация: 03.11.2020
Сообщений: 23
|
||
| 12.07.2021, 00:23 [ТС] | ||
|
Спасибо большое за ответ, и прошу прощение за долгий ответ с моей стороны, я всё еще не могу заставить работать asdf-систему.
Я пытаюсь написать программу которая без ГУЯ вряд-ли будет работать... дело в том, что я как раз занимаюсь нейросетями и я хочу видеть их работу точнее распределение весов, я не использую многослойные сети я использую вариации марковских цепей, я вижу это приложение примерно так: в центре гуя расположить круг зная центр и радиус круга мы можем расположить нейроны расположены по кругу зная координаты одного и другого нейрона как отклонение на заданный угол кидаем линию цвет означает её значение от -1 до 1 или от 0 до 1 здесь и требуется cairo векторная графика особенно для линий не требует много памяти, будет быстрой и легкой получится что то типа этого пример и куча практики в clisp и ГУЕ Я не думаю что это приложение можно сделать в терминале или еще как и желательно хочу чтобы было в реальном времени знаю задача большая, но мне очень надо видеть как распределяются веса по мере работы сети, графики не сильно помогают ЗЫ: тоже поработал с cl-cffi-gtk чуть что падает, думал это из-за того что нормально не работает asdf, в кукбук пытаюсь реализовать 3 вариант чтобы работало не заметно от меня
1
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|||
| 12.07.2021, 01:34 | |||
|
Поэтому мне идеологически нравится LTK. Графическая часть живёт сама по себе. LTK не пойдёт?
1
|
|||
|
11 / 11 / 0
Регистрация: 03.11.2020
Сообщений: 23
|
|
| 12.07.2021, 09:23 [ТС] | |
|
В принципе я думаю можно, а по поводу сохранения изображений наверное и такой вариант сойдёт
Я пробовал LTK довольно стабильно работает покрайней мере лучше ГТК. Мне ещё понравился нуслеар, но сыроват Я здесь учусь https://lispcookbook.github.io... k/gui.html
1
|
|
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|||
| 13.07.2021, 10:09 | |||
|
Добавлено через 11 минут Соттветственно может будет смысл посмотреть лисповые бибилиотеки для них
0
|
|||
| 16.07.2021, 12:38 | |
|
подтверждаю, cl-cffi-gtk - ПАДАЕТ! падает она когда в окно поступает сообщение от мыши, с сообщением деление на ноль. в чем дело пока понять не могу. я использовал самую последнюю версию 20201220, возможно у меня просто старый gtk.
Добавлено через 8 минут в принципе при использовании quicklisp, конфигурирования asdf не требуется. Но иногда возникает необходимость. например я пытаясь войти в суть вашей проблемы попытался загрузить систему: (asdf:load-system :cl-cffi-gtk-demo-gdk) на что получил ответ что такой системы нет! поэтому добавил путь к этой системе так: конфигурирование asdf для поиска систем, есть простой современный способ: надо создать файл: source-registry.conf в директории ~/.config/common-lisp и в нем прописал: (:source-registry (:directory (:home "quicklisp/dists/quicklisp/software/cl-cffi-gtk-20201220-git/demo/gdk-demo")) ;; w :inherit-configuration) вместо directory можно указывать tree, тогда для поиска систем будут сканироваться поддиректории. Добавлено через 1 час 56 минут да вот здесь написано, (https://github.com/crategus/cl... ues/85)что данная проблема только при использовании SLIME. Я попробовал запускать примеры через обычный repl - все работает. со slime там идет какая то несовместимость в потоках. тяжело там разбираться да и лень, если repl работает, то и ладно. можно пользоваться им напрямую. хотя конечно не так удобно как через emacs.
1
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 16.07.2021, 16:07 | |
|
Вроде там написано, что проблема из-за компилирования в Slime. А если загружать в слаймовом же репле, должно, наверно, быть нормально.
Это только у меня впечатление, что проще написать GUI на другом языке и использовать IPC? В принципе, ltk или браузерный интерфейс можно рассматривать как частные случаи этого подхода. Кстати, онтопик: а браузерный интерфейс не пойдёт?
0
|
|
| 16.07.2021, 21:09 | |||||||||||
|
Поковырялся я еще с библиотекой gtk. заметил "странную" особенность. в repl окно создается(из демонстрационных примеров) и все работает, как только пишу скрипт(люблю делать маленькие простые программки, запускающиеся с
командной строки), ни окна, ничего нет. Проблема оказалась в том, что gtk библиотека много потоковая, и для своей работы она использует не основной поток, создает отдельный поток обработки сообщений. Поэтому мои функции нормально инициализировались, но окно создаться не успевало, т.к. основной поток завершался, а вместе с ним и вся программа. Выход простой. в одном ответе на подобную проблему я нашел совет создать бесконечный цикл:
в самом cl-cffi-gtk, там есть функция ожидания завершения нити работы gtk таким образом минимальный каркас приложения gtk вот такое:
0
|
|||||||||||
| 16.07.2021, 21:09 | |
|
Помогаю со студенческими работами здесь
10
Сторонние библиотеки QT и сторонние библиотеки Сторонние библиотеки Java Сторонние библиотеки/фреймворки Java: Сторонние библиотеки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|