Christine Lemmer-Webber, "Spritely, Guile, Guix: a unified vision for user security":
https://fosdem.org/2024/schedule/event/fosdem-2024-2331-spritely-guile-guix-a-unified-vision-for-user-security/
Scheme в браузере через WASM! И другие классные штуки.
#scheme #guix #guile #wasm #lisp
https://fosdem.org/2024/schedule/event/fosdem-2024-2331-spritely-guile-guix-a-unified-vision-for-user-security/
Scheme в браузере через WASM! И другие классные штуки.
#scheme #guix #guile #wasm #lisp
fosdem.org
FOSDEM 2024 - Spritely, Guile, Guix: a unified vision for user security
🔥2
Lulu Cathrinus Grimalkin, "The evolution of a Scheme programmer":
https://erkin.party/blog/200715/evolution/
#scheme #lisp #humor
https://erkin.party/blog/200715/evolution/
#scheme #lisp #humor
erkin.party
Post title
#guix_patches #scheme
Приняли мой патч, добавляющий в GNU Guix реализацию стандарта языка программирования Scheme R7RS под названием tr7.
Спасибо Nicolas Goaziou за ревью и мёрж.
Приняли мой патч, добавляющий в GNU Guix реализацию стандарта языка программирования Scheme R7RS под названием tr7.
Спасибо Nicolas Goaziou за ревью и мёрж.
GitLab
josé bollo / tr7 · GitLab
Tiny R7RS small Scheme interpreter for embedding in C programs HOME/DOC LATEST NEWS: version 2 available
⚡6
Выпустил релиз Guile-SSH v0.17.0:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.17.0
В новой версии:
- Исправлена ошибка с порядком загрузки конфигурационного файла SSH: теперь опции, которые задаются явно при вызове
- Процедура
- Обновлении документации.
- Обновление тестов.
#guile #guile_ssh #projects #scheme
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.17.0
В новой версии:
- Исправлена ошибка с порядком загрузки конфигурационного файла SSH: теперь опции, которые задаются явно при вызове
make-session
, имеют больший приоритет, нежели чем из конфигурационного файла. Таким образом, явно заданные опции перезаписывают опции из конфигурационного файла, который загружается первым.- Процедура
session-set!
теперь позволяет задать опцию rsa-min-size
.- Обновлении документации.
- Обновление тестов.
#guile #guile_ssh #projects #scheme
GitHub
Release v0.17.0 · artyom-poptsov/guile-ssh
Table of Contents
Changes in version 0.17.0 (2024-05-01)
make-session now loads config file before setting options
session-set! now allows to set rsa-min-size
Add new tests.
Update the documentat...
Changes in version 0.17.0 (2024-05-01)
make-session now loads config file before setting options
session-set! now allows to set rsa-min-size
Add new tests.
Update the documentat...
⚡1🎃1
All about Guix: chat with Ludovic Courtès project founder:
https://youtu.be/339dRDf4c6E
Запись встречи с Людовиком Кортесом, которая проходила 16 мая 2024 года.
#gnu #guix
https://youtu.be/339dRDf4c6E
Запись встречи с Людовиком Кортесом, которая проходила 16 мая 2024 года.
#gnu #guix
YouTube
All about Guix: chat with Ludovic Courtès project founder
Recording (edited) of the Guix London Meetup chat with Ludovic Courtès. Ludo is a long-term #FreeSoftware hacker, interested in #lisp, #scheme and #guile. He is excited by the #nix deployment model, and created #guix.
We chat about what got him started…
We chat about what got him started…
🔥2
Исправил ошибку в Guile-DSV, из-за которой фильтрация столбцов не работала, если в итоговой таблице оказывался только один столбец. Также ошибка проявлялась для таблиц, у которых был всего один столбец.
#guile #guile_dsv #projects #scheme
#guile #guile_dsv #projects #scheme
GitHub
modules/dsv/table (smooth): Bugfix · artyom-poptsov/guile-dsv@64f9416
* modules/dsv/table.scm (smooth): Bugfix: Handle empty lists and lists with
only one element properly.
* tests/table.scm ("smooth: zero elements in a list")
("smooth: one...
only one element properly.
* tests/table.scm ("smooth: zero elements in a list")
("smooth: one...
Сделал форк
Добавляю постепенно тесты на SRFI-64, обновляю/дополняю документацию. Сейчас делаю MITM-proxy для GNU Guile, чтобы можно было в Guile-WebDriver-NG подменять заголовки запроса от браузера.
Вот так могу теперь:
Как только всё будет работать с приемлемым качеством, сделаю релиз.
#guile #scheme #projects
guile-web-driver
, назвал guile-web-driver-ng (не слишком оригинально, да) наладил сборку через GNU Autotools, добавил манифест guix.scm
для сборки через GNU Guix.Добавляю постепенно тесты на SRFI-64, обновляю/дополняю документацию. Сейчас делаю MITM-proxy для GNU Guile, чтобы можно было в Guile-WebDriver-NG подменять заголовки запроса от браузера.
Вот так могу теперь:
#!/usr/bin/env -S guile -L . -e main
!#
(use-modules (web proxy)
(web proxy interceptor)
(oop goops))
(define (main args)
(let* ((interceptor
(make <proxy-interceptor>
#:chain '((request headers dump stderr)
(request headers replace
((host "ru.example.com" . #f)
(user-agent . "curl/8.5.0")
(accept (*/*)))))))
(proxy (make <proxy>
#:port 8081
#:interceptor interceptor)))
(proxy-start! proxy)
(while #t (sleep 5))))
Как только всё будет работать с приемлемым качеством, сделаю релиз.
#guile #scheme #projects
GitHub
GitHub - artyom-poptsov/guile-web-driver-ng: web driver (selenium) client for guile
web driver (selenium) client for guile. Contribute to artyom-poptsov/guile-web-driver-ng development by creating an account on GitHub.
🔥11
memory heap
Сделал форк guile-web-driver, назвал guile-web-driver-ng (не слишком оригинально, да) наладил сборку через GNU Autotools, добавил манифест guix.scm для сборки через GNU Guix. Добавляю постепенно тесты на SRFI-64, обновляю/дополняю документацию. Сейчас делаю…
#projects #guile #scheme
Взял и написал документацию в Texinfo для проекта, на базе довольно обширного
https://github.com/artyom-poptsov/guile-web-driver-ng/tree/master/doc
Взял и написал документацию в Texinfo для проекта, на базе довольно обширного
README
, доставшегося от исходного проекта:https://github.com/artyom-poptsov/guile-web-driver-ng/tree/master/doc
GitHub
guile-web-driver-ng/doc at master · artyom-poptsov/guile-web-driver-ng
web driver (selenium) client for guile. Contribute to artyom-poptsov/guile-web-driver-ng development by creating an account on GitHub.
🔥2
Выпустил релиз Guile-DSV 0.7.2:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2
В новой версии:
- Исправлена ошибка обработки таблиц с неравномерным количеством столбцов в строках. Теперь Guile-DSV предоставляет возможность проверять корректность таблиц на этапе парсинга и перед выводом, и выдавать ошибку на более ранних этапах. Также ошибки теперь более понятные и указывают на проблемное место в исходных данных. Это поведение включено по-умолчанию для CLI. Для API же это по-умолчанию выключено, т.к. это во-первых сохраняет совместимость со старым поведением, и во-вторых позволяет пользователю самостоятельно решить, нужно ли выдавать ошибку при чтении проблемных данных, или же обработать это другим способом, уже после чтения.
- Исправлена ошибка с форматированием таблиц: теперь оно корректно работает для таблиц, чей размер меньше двух столбцов.
- Исправлен
- Добавлены новые файлы в репозиторий:
#guile #guile_dsv #parser #projects #scheme
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2
В новой версии:
- Исправлена ошибка обработки таблиц с неравномерным количеством столбцов в строках. Теперь Guile-DSV предоставляет возможность проверять корректность таблиц на этапе парсинга и перед выводом, и выдавать ошибку на более ранних этапах. Также ошибки теперь более понятные и указывают на проблемное место в исходных данных. Это поведение включено по-умолчанию для CLI. Для API же это по-умолчанию выключено, т.к. это во-первых сохраняет совместимость со старым поведением, и во-вторых позволяет пользователю самостоятельно решить, нужно ли выдавать ошибку при чтении проблемных данных, или же обработать это другим способом, уже после чтения.
- Исправлена ошибка с форматированием таблиц: теперь оно корректно работает для таблиц, чей размер меньше двух столбцов.
- Исправлен
make distcheck
— теперь оно корректно завершается.- Добавлены новые файлы в репозиторий:
ARCHITECTURE.org
описывает архитектуру проекта (как предложено здесь); CODE_OF_CONDUCT.org
описывает правила для сообщества разработчиков и контрибьюторов, как предложено здесь.#guile #guile_dsv #parser #projects #scheme
GitHub
Release v0.7.2 · artyom-poptsov/guile-dsv
Table of Contents
Changes in version 0.7.2 (2024-08-04)
Bugfixes
Parsers now can check if the table rows have consistent lengths
Table formatter now handles tables with less than 2 columns
Fix m...
Changes in version 0.7.2 (2024-08-04)
Bugfixes
Parsers now can check if the table rows have consistent lengths
Table formatter now handles tables with less than 2 columns
Fix m...
⚡2👾1
Наконец-то появилась штука наподобие Doxygen для Scheme, которая парсит комментарии и docstrings из кода в формате Texinfo и создаёт на базе этого документацию по API проекта:
https://luis-felipe.gitlab.io/guile-documenta/
Автор Luis Felipe.
#guile #scheme #tools
https://luis-felipe.gitlab.io/guile-documenta/
Автор Luis Felipe.
#guile #scheme #tools
luis-felipe.gitlab.io
Guile Documentá
Generate API documentation for GNU Guile Scheme projects.
⚡3
👀3🔥2🕊1
memory heap
Another Guile-PNG generative art: https://gist.github.com/artyom-poptsov/72fe27b7441f984262c99ee2b27082a8 #generative_art #art #guile_png #scheme
Экспериментальным способом получено изображение с повышенной шакальностью.
#generative_art #guile_png #scheme
#generative_art #guile_png #scheme
🎃4
Я аделлс ,агммопрру акоортя адеелт викооррсту бвку в .авлосх
#scheme
#!/usr/bin/env -S guile -L modules -e main -s
!#
(define (main args)
(let ((lst (string-split (cadr args) #\space)))
(for-each (lambda (word)
(display
(apply string
(sort (string->list word)
char<?)))
(display " "))
lst))
(newline))
#scheme
👾4
Выпустил релиз Guile-SSH 0.18.0:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.18.0
В новой версии:
1. Убрана поддержка libssh версий старше 0.8.0 (например, libssh 0.7)
2. Изменён интерфейс модуля
Зарепорчено пользователем graywolf в #39.
3.
Зарепорчено пользователем graywolf в #38.
4. Исправление ошибки компиляции из-за использования ключевого слова
Зарепорчено и исправлено пользователем Peter Tillemans в #43.
5. Исправлена сборка с libssh < 0.8.3. Также добавлены новые тесты в GitHub CI, проверяющие работу Guile-SSH на старых версиях.
6. Проект получил новое лого, более минималистичное и лаконичное! Спасибо дизайнеру, художнику и моему другу (в одном лице) Darya Sev. за ценные советы по поводу дизайна нового логотипа.
7. Обновлена и дополнена документация.
8. Обновлены и исправлены тесты.
9. Добавлен файл
#projects #guile_ssh #guile #scheme
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.18.0
В новой версии:
1. Убрана поддержка libssh версий старше 0.8.0 (например, libssh 0.7)
2. Изменён интерфейс модуля
(ssh popen)
: процедуры open-remote-pipe*
, open-remote-input-pipe*
и open-remote-output-pipe*
теперь работают также, как и open-pipe*
. Также это делает их поведение соответствующим тому, что описано в документации Guile-SSH. Зарепорчено пользователем graywolf в #39.
3.
make-session
теперь правильно обрабатывает параметр #:config
со значением #f
. Теперь выставление данного параметра в #f
(false) выключает чтение стандартных конфигурационных файлов SSH (как и должно было быть по документации Guile-SSH). При использовании старых версий libssh (до 0.9) выставление параметра #:config
в #f
приводит к тому, что используется файл /dev/null
в качестве конфигурационного (таким образом, предотвращая чтение стандартных конфигурационных файлов.)Зарепорчено пользователем graywolf в #38.
4. Исправление ошибки компиляции из-за использования ключевого слова
bool
в качестве имени переменной.Зарепорчено и исправлено пользователем Peter Tillemans в #43.
5. Исправлена сборка с libssh < 0.8.3. Также добавлены новые тесты в GitHub CI, проверяющие работу Guile-SSH на старых версиях.
6. Проект получил новое лого, более минималистичное и лаконичное! Спасибо дизайнеру, художнику и моему другу (в одном лице) Darya Sev. за ценные советы по поводу дизайна нового логотипа.
7. Обновлена и дополнена документация.
8. Обновлены и исправлены тесты.
9. Добавлен файл
CODE_OF_CONDUCT.org
в репозиторий.#projects #guile_ssh #guile #scheme
GitHub
Release v0.18.0 · artyom-poptsov/guile-ssh
Table of Contents
Changes in version 0.18.0 (2024-11-10)
Change (ssh popen) procedures behavior:API_CHANGE:
make-session now handles #:config set to #f properly
session-func.c: Fix compile error ...
Changes in version 0.18.0 (2024-11-10)
Change (ssh popen) procedures behavior:API_CHANGE:
make-session now handles #:config set to #f properly
session-func.c: Fix compile error ...
🔥5
memory heap
А вот кстати вылезла новая проблема: фигура не центрирована внутри изображения.
Переписал алгоритм отрисовки шестигранника, используя вот этот пример. Теперь кстати можно в целом многогранники реализовать, и сделать просто шестигранник частным случаем.
Красными точками отмечена стартовая точка.
#guile_png #scheme
Красными точками отмечена стартовая точка.
#guile_png #scheme
Преисполнился (ice-9 match) :
#lisp #scheme
(use-modules (ice-9 match) (srfi srfi-1))
(define (in-range? value ranges)
(and (number? value)
(match ranges
(((? number?) . (? number?))
(and (>= value (car ranges)) (<= value (cdr ranges))))
((((? number?) . (? number?)) ...)
(fold (lambda (range prev)
(or prev
(and (>= value (car range))
(<= value (cdr range)))))
#f
ranges)))))
(in-range? -1 '((1 . 10) (-2 . -1)))
=> #t
(in-range? -10 '((1 . 10) (-2 . -1)))
=> #f
(in-range? 10 '(1 . 10))
=> #t
#lisp #scheme
www.gnu.org
Pattern Matching (Guile Reference Manual)
Next: Readline Support, Previous: R7RS Support, Up: Guile Modules [Contents][Index]
⚡1🔥1
#projects #guile_ics #guile #scheme
Несколько дней работал над улучшением Guile-ICS (мне тут недавно написали issue на GitHub с просьбой реализовать нормальную поддержку
Теперь поддержка есть, только нехватает ещё вспомогательных процедур для работы с повторяющимися событиями.
Вот, как пример, вывод консольной утилиты для работы с форматом iCalendar, базирующейся на API библиотеки и поставляющейся вместе с ней. Здесь можно видеть разобранный и затем склеянный обратно (для красивого вывода) параметр
Значения параметров повторения теперь не только парсятся, но и проверяются на корректность. Библиотека не только бросается ошибками при некорректных значениях, но ещё и выдаёт справку по использованию данных параметров — по сути, куски RFC.
Несколько дней работал над улучшением Guile-ICS (мне тут недавно написали issue на GitHub с просьбой реализовать нормальную поддержку
RRULE
— параметров повторяемости событий календаря.)Теперь поддержка есть, только нехватает ещё вспомогательных процедур для работы с повторяющимися событиями.
Вот, как пример, вывод консольной утилиты для работы с форматом iCalendar, базирующейся на API библиотеки и поставляющейся вместе с ней. Здесь можно видеть разобранный и затем склеянный обратно (для красивого вывода) параметр
RRULE
:$ ./pre-inst-env ./utils/ics rrule.ics
BEGIN: VCALENDAR
BEGIN: VEVENT
RRULE (RECUR): FREQ=YEARLY; INTERVAL=2; BYMINUTE=30; BYHOUR=8,9,10; BYDAY=SU; BYMONTH=1
END: VEVENT
END: VCALENDAR
Значения параметров повторения теперь не только парсятся, но и проверяются на корректность. Библиотека не только бросается ошибками при некорректных значениях, но ещё и выдаёт справку по использованию данных параметров — по сути, куски RFC.
GitHub
GitHub - artyom-poptsov/guile-ics: iCalendar/vCard parser for GNU Guile.
iCalendar/vCard parser for GNU Guile. Contribute to artyom-poptsov/guile-ics development by creating an account on GitHub.
🔥1
David Thompson, "Optimizing Guile Scheme":
https://dthompson.us/posts/optimizing-guile-scheme.html
Интересная статья про оптимизацию программ на моём любимом языке программирования.
#guile #scheme #programming
https://dthompson.us/posts/optimizing-guile-scheme.html
Интересная статья про оптимизацию программ на моём любимом языке программирования.
#guile #scheme #programming
🔥2
Выпустил Guile-SMC 0.6.4 с исправлением ошибок:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.4
Основное исправление — Make больше не запускает генерацию целевого файла
#projects #guile #guile_smc #scheme
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.4
Основное исправление — Make больше не запускает генерацию целевого файла
puml-fsm.scm
из исходгого puml.puml
, когда исходный поменялся. Вместо этого генерация запускается только тогда, когда puml-fsm.scm
удалён. Это позволяет избежать иногда возникающих ситуаций, когда система сборки пытается сгенерировать puml-fsm.scm
из puml.puml
без наличия установленного Guile-SMC в системе, что приводило к ошибке (так как для этого нужен Guile-SMC.)#projects #guile #guile_smc #scheme
GitHub
Release Version 0.6.4 (2025-07-21) · artyom-poptsov/guile-smc
Table of Contents
Version 0.6.4 (2025-07-21)
Fix compilation of puml-fsm.scm from puml.puml
README.org: Improve the description of the manual installation process
Modernize guix.scm
Add a new tes...
Version 0.6.4 (2025-07-21)
Fix compilation of puml-fsm.scm from puml.puml
README.org: Improve the description of the manual installation process
Modernize guix.scm
Add a new tes...
Наконец-то добрался до своих FOSS-проектов. Замёржил в Guile-DSV патч от Denis 'GNUtoo' Carikli, добавляющий возможность указывать собсвтенную процедуру для нарезки строк при форматировании таблицы.
Попутно внёс ещё несколько небольших улучшений.
#guile #scheme #projects #guile_dsv
Попутно внёс ещё несколько небольших улучшений.
#guile #scheme #projects #guile_dsv
GitHub
modules/dsv/table: add 'string-slice" option by GNUtoo · Pull Request #12 · artyom-poptsov/guile-dsv
modules/dsv/table.scm (format-table, table-wrap, table-wrap-row):
Add "string-slice" option.
Signed-off-by: Denis 'GNUtoo' Carikli GNUtoo@cyberdimension.org
Add "string-slice" option.
Signed-off-by: Denis 'GNUtoo' Carikli GNUtoo@cyberdimension.org