memory heap
341 subscribers
2.23K photos
465 videos
52 files
2.86K 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
TOO LATE.

#lisp
🔥3
memory heap
Добавил в этот список Scheme (GNU Guile) через pull request: https://github.com/sobolevn/awesome-cryptography #scheme #lisp
Список awesome-cryptography пополнился ещё несколькими библиотеками для других реализаций Scheme — в том числе, для Chicken Scheme:
https://github.com/sobolevn/awesome-cryptography#scheme

Спасибо Никите Соболеву, который принял мой pull request даже в предновогодний день.

#scheme #lisp
🔥1
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
Yukari Hafner:
folks will be like "lisp is hard to read" and then write shit like this


Мой перевод:
Чуваки такие говорят "Лисп тяжело читать", но при этом пишут дерьмо наподобие этого.


К слову, это код на C++, судя по всему.

[source]

#lisp
🔥2👀1
Выпустил релиз Guile-PNG 0.7.3:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.7.3

В новой версии добавлены процедуры для поворота изображений на 90 градусов по часовой и против часовой стрелки, процедура поворота на 180 градусов, процедуры отражения изображения по вертикали и горизонтали.

Также добавлен новый высокоуровневый интерфейс для операций над пикселями изображения.

Новые процедуры в модуле (png image-processing):
- png-image-rotate-90/cw — поворот на 90 градусов по часовой стрелке.
- png-image-rotate-90/ccw — поворот на 90 градусов против часовой стрелки.
- png-image-rotate-180 — поворот на 180 градусов.
- png-image-flip-vertical — вертикальное отражение изображения.
- png-image-flip-horizontal — горизонтальное отражение изображения.

В модуле (png graphics pixel):
- png-image-pixel-for-each — процедура, применяющая указанную процедуру для каждого пикселя изображения.
- png-image-pixel-map — применение указанной процедуры к каждому пикселю копии изображения, заменяя его результатом работы переданной процедуры. Исходное изображение не модифицируется.
- png-image-pixel-fold — применение указанной процедуры к каждому пикселю изображения, разультат вызова процедуры аккумулируется и возвращается, как результат вызова.

#projects #guile #guile_png #lisp
🔥3
Lulu Cathrinus Grimalkin, "The evolution of a Scheme programmer":
https://erkin.party/blog/200715/evolution/

#scheme #lisp #humor
#lisp #guile #dev

Artyom Bologov, "Guile Optimization Gotchas: There Is No Free Beer, Only Cheap":
https://aartaka.me/guile-optimization-gotchas

Интересная статья про работу с профилировщиком GNU Guile и оптимизации.
🔥4
Преисполнился (ice-9 match) :

(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
1🔥1
Fulton’s ramblings, "Why we need lisp machines":
https://fultonsramblings.substack.com/p/why-we-need-lisp-machines

Достаточно интересно + ссылки на источники. Вообще думаю, что GNU/Linux сейчас в очень хорошем состоянии, и круто, что мы имеем всё больше качественного FOSS и совместимого железа. Тем не менее, идея Lisp-машины звучит интересно, и круто было бы иметь альтернативы, пусть даже не в таком развитом состоянии, как GNU/Linux. Хорошие идеи всё равно имеют свойства переносится из одной системы в другую (вспомнить хотя бы Plan 9.)

Самое близкое и реалистичное, что вижу сейчас на пути к практически применимой Lisp-машине в современных реалиях — это GNU Guix.

#lisp
2