Приветствую.
Хотелось бы обсудить текущее состояние alterator,
а конкретно, уровня модели.

Имеющееся ныне решение является по существу фильтром,
построенным на регулярных выражениях c возможностью
распараллеливать/объединять команды.

Такое решение, как показала практика, не является
сколько-нибудь востребованным, большинство модулей
на этом уровне не представлено никак, оставшиеся
используют его лишь как место для валидации
параметров.

Что бы хотелось иметь:
- прежде всего, модель должна иметь состояние:
это позволило бы вынести всю логику из не предназначенного
для неё места -- напр. пресловутый alterator-packages
по этой причине серьёзно перегружен.

- модель должна иметь возможность обмениваться данными с соседями:
напр. было бы весьма полезно обладать информацией о доступном
месте на диске при выборе пакетов либо наоборот, проводить
разбивку дискового пространства, имея в своём распоряжении
информацию о заказанных к установке пакетах.

Для построения моделей предлагается использовать технику,
известную как constraint programming. (1), (2)
В вольном изложении ограничение (constraint) --
сущность, связывающая некоторым отношением несколько переменных,
принципиальным является тот факт, что _направление_ вычислений с
использованием такой техники не является фиксированным.
Модель же представляет собой сеть таких ограничений.

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

- возможность объединять модели в одну, полностью описывающую
процесс инсталляции;

- гибкая схема параметризации: ряд или все неизвестные
наперёд переменные мугут быть заданы в т.н. профиле
установки, внешнем по отношению к собственно модели (коду);

- возможно разделение стадий создания проекта установки
и его осуществления.

Мнения ?

Ссылки:

(1) http://www.math.unipd.it/~frossi/cp-school/CPschool05notes.pdf
(2) http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.5 

-- 
_______________________________________________
Devel-conf mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/devel-conf

Ответить