Next: , Previous: , Up: Articles  


Преимущества и недостатки redo

Обновлено: 2020-01-12.

redo это предложенная DJB альтернатива Make системе сборки. Своё видение такой системы он просто описал тремя небольшими страницами. Никакого кода не опубликовал. Alan Grosskurth написал работу в институте на эту тему. А десятки других людей позже написали свои реализации этой системы сборки на самых разных языках. Очень хорошее пояснение и введение с примерами есть в документации к apenwarr/redo. Ещё одно хорошее введение.

Программ/реализаций Make – десятки. Систем сборки несовместимых с Make – с полсотни минимум. Десяток систем генерирующих Makefile-ы. Несовместимых между собой диалектов Make-ов тоже десятки (например GNU Make и BSD Make). Так чем же примечательна ещё одна система? Почему нельзя использовать POSIX Make подмножество, которое, по идее, должно поддерживаться и одинаково работать на широком круге Make реализаций? Чуть ли не каждый заявляет что он лучше Make или как минимум удобнее.

Начну с единственного, что можно причислить к недостатку: redo из коробки не часто стоит в ОС. Впрочем, как и почти все системы сборки, кроме какого-то одного из Make, часто вас всё равно не удовлетворяющего (сколько вам приходится дополнительно ставить GNU Make в вашу систему чтобы хоть как-то собиралась масса софта)?

Преимущества:

Как же пользоваться этой системой сборки? Приведу её полное описание с точки зрения пользователя. Для конкретных примеров советую ссылки в начале этой статьи.

Многие реализации дополнительно предлагают ещё такую команду как redo-always: всегда пересобирать указанные зависимости. Некоторые реализации используют ctime для понимания изменился ли файл, а некоторые – множество различных атрибутов файлов (mtime, size, inode number, file mode, UID/GID, и т.д.). Некоторые просто считают криптографический хэш от файла – плюсом этого решения является уменьшение false-positive сборок.

Проверенные мной работающие реализации:


Next: Мультимедиа форматы, Previous: Почему современный Web для меня недоступен и мёртв?, Up: Articles