memory heap
343 subscribers
2.31K photos
471 videos
52 files
2.94K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
#projects #guile #guile_ics

Выпустил релиз Guile-ICS 0.6.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.6.0

Guile-ICS — это парсер форматов iCalendar (RFC 5545)/vCard (RFC 6350) для GNU Guile, написанный на чистом Scheme.

В комплекте с библиотекой поставляется консольная утилита ics, позволяющая получать информацию в различном виде о входных данных и конвертировать формат CSV в vCard записи (работает при наличии установленного Guile-DSV в системе.)

В новом релизе:
- Исправление ошибки в парсере. Стадарт RFC 6350 поддерживает указание для нескольких одинаковых параметров свойства объекта; в этом случае дополнительные значения повторяющегося параметра считаются частью списка для значения параметра. Guile-ICS же раньше считал повторение параметра ошибкой. Сейчас это исправлено. Ошибка была обнаружена Felix Lechner.
- Исправление скрипта удаления библиотеки — в Automake файлах фигурировала захардкоженная версия GNU Guile 3.0, что приводило к проблемам корректного удаления библиотеки на других версиях GNU Guile (скажем, на 2.2.) Теперь это исправлено.
- Скрипты сборки больше не полагаются на наличие в системе команды which.
- Исправление guix.scm — добавление во входные зависимости texlive, исправление кросс-компиляции.
- Обновление документации.
- Добавление/обновление тестов.
🔥3
Выпустил релиз 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 теперь выкидывается content-line-error.
- ics describe теперь печатает описание компонентов, в том числе, ссылку на соответствующий раздел RFC.
- Расширен набор тестов.

#projects #guile_ics #guile
2
#projects #guile_ics #guile #scheme

Несколько дней работал над улучшением 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.
🔥1