Сотрудник Red Hat представил сборочную систему Goals

в 12:39, , рубрики: make, makefile, red hat, Программирование, Разработка веб-сайтов, системное администрирование, системное программирование, Софт

Сотрудник Red Hat представил сборочную систему Goals - 1

Сотрудник компании Red Hat Ричард Джонс, создатель библиотеки libguestfs, представил инструмент Goals, цель которого — устранить недостатки в утилите make, разработанной Стюартом Фельдманом в 1976 году и предназначенной для автоматизации преобразования файлов из одной формы в другую.

При запуске эта программа читает Makefile с описанием проекта, интерпретирует его содержимое и в зависимости от него предпринимает нужные действия. Основу Makefile составляют правила (rules), которые описывают, каким образом можно преобразовать файл. Правила состоят из целей и зависимостей, где цель — желаемый результат, а зависимость — некие исходные данные (имя файла или имя действия), необходимые для достижения цели.

Как объясняет портал opennet, сейчас в работе make есть несколько недостатков. Например, утилита поддерживает только одну тактику решения зависимостей. Goals позволяет реализовать несколько тактик, включая проверку наличия URL, сравнение времени изменения с любым файлом, оценку сборки пакета в Koji, сравнение контрольных сумм, запуск тестовых наборов с выборочным пропуском тестов.

Также make не разделяет файлы и имена правил, что может привести к ошибке: если правило test, запускающее скрипты с тестами, уже есть, и при его наличии случайно будет создан файл с именем test, то тесты перестанут вызываться. Goals разделяет файлы и имена правил. Также Goals позволяет использовать сразу несколько параметров.

«Если использование одного параметра может быть полезным, то можно использовать и два, и больше параметров», — поясняет Джонс.

Goals решает также проблему взаимодействия с интерпретатором командной строки, или shell-интерпретатором — программой, которая принимает команды от пользователя и исполняет их. До выпуска Goals, как поясняет opennet, пользователю приходилось запускать отдельный shell-интерпретатор для каждой команды. Также существенной проблемой make была двойная трактовка символа $. В Goals вместо символа $ используется % ($ остаётся только для shell).

Также Goals делает возможной поддержку задания произвольных имён и параметров, позволяет запускать make в разных режимах. В будущем автор планирует добавить возможность определения значений параметров по умолчанию и поддержка анонимных функций.

Подробное описание особенностей Goals Джонс опубликовал в своём блоге.

Автор: AnnieBronson

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js