Открыть список
Как стать автором
Обновить

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

Разработка веб-сайтовСистемное администрированиеПрограммированиеСистемное программированиеСофт


Сотрудник компании 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 Джонс опубликовал в своём блоге.
Теги:программированиеmakemakefileутилитыred hat
Хабы: Разработка веб-сайтов Системное администрирование Программирование Системное программирование Софт
Всего голосов 8: ↑7 и ↓1 +6
Просмотры3.1K

Похожие публикации

Инженер-разработчик (С, POSIX)
от 100 000 до 250 000 ₽AurigaМожно удаленно
Senior system developer/ С++
от 170 000 ₽GETMOBITМосква
Reverse Engineer
от 3 500 до 4 000 $Hand2NoteМожно удаленно

Лучшие публикации за сутки