Выпустил релиз Guile-ICS 0.7.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.7.0
Основные изменения:
- Guile-ICS теперь корректно читает объекты с более, чем двумя уровнями вложенности. Проблема была зарепорчена Sören Tempel.
- Также теперь парсер позволяет читать неизвестные компоненты объектов.
- Парсер теперь корректно обрабатывает EOF ("End Of File" — символ конца файла) внутри контент-строк. Вместо общей ошибки от Guile теперь выкидывается
-
- Расширен набор тестов.
#projects #guile_ics #guile
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.7.0
Основные изменения:
- Guile-ICS теперь корректно читает объекты с более, чем двумя уровнями вложенности. Проблема была зарепорчена Sören Tempel.
- Также теперь парсер позволяет читать неизвестные компоненты объектов.
- Парсер теперь корректно обрабатывает EOF ("End Of File" — символ конца файла) внутри контент-строк. Вместо общей ошибки от Guile теперь выкидывается
content-line-error.-
ics describe теперь печатает описание компонентов, в том числе, ссылку на соответствующий раздел RFC.- Расширен набор тестов.
#projects #guile_ics #guile
GitHub
Release v0.7.0 · artyom-poptsov/guile-ics
Table of Contents
Changes in version 0.7.0 (2025-03-02)
Allow to read ICS objects with arbitrary level of nesting:BUGFIX:API_CHANGE:
Properly handle EOFs in content lines
Expand the test suite
ic...
Changes in version 0.7.0 (2025-03-02)
Allow to read ICS objects with arbitrary level of nesting:BUGFIX:API_CHANGE:
Properly handle EOFs in content lines
Expand the test suite
ic...
⚡2
Реализовал в Guile-PNG консольную утилиту, позволяющую получать описание содержимого PNG-файлов.
#projects #guile_png
#projects #guile_png
⚡3🔥2
Выпустил релиз Guile-PNG 0.8.0:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.8.0
Основные изменения в новой версии:
- Реализована утилита для вывода человеко-читаемой информации в формате org-mode об PNG изображении. Утилита снабжена man-страницей.
- Новый тип
- Новый модуль
#projects #guile #guile_png
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.8.0
Основные изменения в новой версии:
- Реализована утилита для вывода человеко-читаемой информации в формате org-mode об PNG изображении. Утилита снабжена man-страницей.
- Новый тип
<square> в модуле (png graphics rectangle).- Новый модуль
(png version), который содержит процедуры для получения информации о текущей версии Guile-PNG.#projects #guile #guile_png
GitHub
Release v0.8.0 · artyom-poptsov/guile-png
Table of Contents
Changes in version 0.8.0 (2025-03-29)
Implement a CLI tool for printing PNG data
New CODE_OF_CONDUCT.org file
(png version): New module
Changes in (png graphics rectangle)
<...
Changes in version 0.8.0 (2025-03-29)
Implement a CLI tool for printing PNG data
New CODE_OF_CONDUCT.org file
(png version): New module
Changes in (png graphics rectangle)
<...
🔥2
Выявил проблему с реализацией алгоритма Брезенхэма в Guile-PNG — в пятом октанте по ошибке выполнялось вычитание вместо деления, из-за этого угол линии был ~32 градуса вместо необходимых 30.
На скриншоте показано, как я в GIMP смотрел, где появляется ошибка в тестовом примере.
Исправил, теперь могу рисовать шестигранники-соты.
#guile #projects #guile_png
На скриншоте показано, как я в GIMP смотрел, где появляется ошибка в тестовом примере.
Исправил, теперь могу рисовать шестигранники-соты.
#guile #projects #guile_png
memory heap
А вот кстати вылезла новая проблема: фигура не центрирована внутри изображения.
Переписал алгоритм отрисовки шестигранника, используя вот этот пример. Теперь кстати можно в целом многогранники реализовать, и сделать просто шестигранник частным случаем.
Красными точками отмечена стартовая точка.
#guile_png #scheme
Красными точками отмечена стартовая точка.
#guile_png #scheme
#generative_art #guile_png
Научил Guile-PNG рисовать правильные многоугольники с произвольным количеством сторон.
Научил Guile-PNG рисовать правильные многоугольники с произвольным количеством сторон.
#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 v0.6.4 · 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 [email protected]
Add "string-slice" option.
Signed-off-by: Denis 'GNUtoo' Carikli [email protected]