ALT Linux Community general discussions
 help / color / mirror / Atom feed
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


  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