From: Michael Shigorin <mike@altlinux.org>
To: community@lists.altlinux.org
Subject: Re: [Comm] Отладочное логирование модулей alterator
Date: Tue, 23 Sep 2025 14:51:05 +0300
Message-ID: <20250923115104.GL19218@imap.altlinux.org> (raw)
In-Reply-To: <3e6a9e45-0790-4e3d-b7a8-04035f7643c0@yandex.ru>
On Tue, Sep 23, 2025 at 11:18:11AM +0300, Alexander Lubyagin wrote:
> Вопрос немного в сторону. А почему для определения обработчиков
> событий (<module>/ui/<name>/ajax.scm) выбрано задание списочной
> структуры на Scheme (Guile)?
Scheme выбрали как встраиваемый вариант LISP, поскольку
изначально альтератор был проектом на C++ со скриптовыми
привязками -- насколько помню, как раз из-за того, что на
лиспе единообразны код и базовые структуры данных, то есть
сериализация и метапрограммирование естественны для языка
(с этим, правда, вылезли и неожиданные побочные эффекты,
когда sbolshakov@ перебирал движок через глушитель,
пока нужные ему правки добиралсь в очередной выпуск;
в итоге inger@ запретил обычные присваивания и сделал
API с геттерами/сеттерами).
> Ведь древовидную структуру можно определить на любом скриптовом
> языке, поддерживающем ООП (к примеру). Да и просто в текстовом
> файле. А бэкенд нынче модно писать на Python.
Ну вон модные и пишут -- на python с dbus. Не понимая и того,
что отдельная шина управления -- это тоже фича, а не бага
(сравнивать тут стоит с IPMI, причём dedicated).
> Правда, я не знаю, насколько он безопаснее Scheme, т.к. под
> трассировщиком "сыплет" много лишнего мусора при вызове своих
> библиотек. Возможно, Scheme в этом смысле "чище" работает.
За всё это время в альтераторе при стороннем аудите
была найдена ровно одна уязвимость (алгоритмическая);
тогда же исправлена (уже очень давно).
> А вместо Питона для бэкенда (если выбирать его) я бы брал
> какую-то его минимализированную версию, из которой выкинуты
> "опасные" функции. Основная кодовая база, как я вижу,
> компилируется в бинарники
> /usr/lib/alterator/interfaces/guile/*.go
Да; с портированием байткодовой машинки в виде guile 1.8
на эльбрус возникли нетривиальные проблемы в 2017 году,
но с тех пор и сам guile переехал на libgc, и апстрим
libgc принял поддержку e2k (более того, заинтересовался).
> Рассуждая таким образом, я пришёл к мысли, что Scheme как раз
> не позволяет делать "опасные" вещи типа os.system(), а
> обращается "с миром" только через прописанные в interfaces/
> интерфейсы. Из книжек по нему я нашёл:
Гляньте http://altlinux.org/scheme :)
> - SICP (1996);
Есть и на русском:
http://r-5.org/files/books/computers/languages/lisp/Harold_Abelson_Gerald_Sussman_Julie_Sussman-SICP-RU.pdf
> P. S.
> Было бы также интересно поглядеть на версии alterator <= 1.0.1, на
> которые ссылается alterator/changelog.old
> Хорошо, что есть alterator/doc/internals/*.html (там есть даже todo.html
> и evolution.html)
Это надо смотреть альтовые дистрибутивы ~2001 года,
хотя если мне не изменяет склероз -- то из них
первая итерация альтератора входила в ИВК Кольчугу
и имела весьма ограниченное хождение.
--
Michael Shigorin
http://altlinux.org/elbrus
next prev parent reply other threads:[~2025-09-23 11:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-22 17:34 Alexander Lubyagin
2025-09-23 6:06 ` Michael Shigorin
2025-09-23 6:27 ` [Comm] " Sergey V Turchin
2025-09-23 8:18 ` [Comm] " Alexander Lubyagin
2025-09-23 8:29 ` [Comm] " Sergey V Turchin
2025-09-23 11:51 ` Michael Shigorin [this message]
2025-09-23 11:32 ` [Comm] " Michael Shigorin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250923115104.GL19218@imap.altlinux.org \
--to=mike@altlinux.org \
--cc=community@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git