memory heap
366 subscribers
2.51K photos
511 videos
52 files
3.09K 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
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
🔥2
Lulu Cathrinus Grimalkin, "The evolution of a Scheme programmer":
https://erkin.party/blog/200715/evolution/

#scheme #lisp #humor
#guix_patches #scheme

Приняли мой патч, добавляющий в GNU Guix реализацию стандарта языка программирования Scheme R7RS под названием tr7.

Спасибо Nicolas Goaziou за ревью и мёрж.
6
Выпустил релиз Guile-SSH v0.17.0:
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
1🎃1
Исправил ошибку в Guile-DSV, из-за которой фильтрация столбцов не работала, если в итоговой таблице оказывался только один столбец. Также ошибка проявлялась для таблиц, у которых был всего один столбец.

#guile #guile_dsv #projects #scheme
Сделал форк 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
🔥11
Выпустил релиз Guile-DSV 0.7.2:
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
2👾1
Наконец-то появилась штука наподобие Doxygen для Scheme, которая парсит комментарии и docstrings из кода в формате Texinfo и создаёт на базе этого документацию по API проекта:
https://luis-felipe.gitlab.io/guile-documenta/

Автор Luis Felipe.

#guile #scheme #tools
3
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
🎃4
Я аделлс ,агммопрру акоортя адеелт викооррсту бвку в .авлосх

#!/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. Изменён интерфейс модуля (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
🔥5
memory heap
А вот кстати вылезла новая проблема: фигура не центрирована внутри изображения.
Переписал алгоритм отрисовки шестигранника, используя вот этот пример. Теперь кстати можно в целом многогранники реализовать, и сделать просто шестигранник частным случаем.

Красными точками отмечена стартовая точка.

#guile_png #scheme