Приветствую. Хотелось бы обсудить текущее состояние 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
