Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Янв-2021 17:30

Состоялся первый значительный релиз goredo - реализации системы сборки redo, предложенной Дэниелем Бернштейном (DJB) в качестве замены утилите Make. Goredo написан на языке Go и распространяются под лицензией GPLv3.
Redo решает фундаментальные проблемы и устраняет недостатки Make, такие как:
  • отсутствие атомарной сборки целей из коробки;
  • практическая неработоспособность (как минимум, при распараллеливании сборок) при использовании рекурсивных вызовов Make (Recursive Make Considered Harmful (by Peter Miller)), из-за отсутствия блокировок или глобального состояния;
  • потенциальная неработоспособность определения устаревания зависимости при использовании технологий mmap, NFS, FUSE, VCS из-за использования mtime;
  • невозможность динамически задавать зависимости;
  • отсутствие автоматической зависимости от правила сборки, сложность создания зависимостей от переменных окружения;
  • невозможность иметь цели с пробелами в именах.
По сравнению с другими системами сборки, redo:
  • имеет минимальный порог вхождения: не требует изучения нового языка, синтаксиса или диалекта: для большинства проектов достаточно знать и использовать ровно одну дополнительную команду redo-ifchange. Полное описание redo может уместиться на одной странице экрана;
  • полностью независим от используемого языка программирования и языка описания целей: по умолчанию они пишутся на POSIX shell, но могут быть на чём угодно другом, включая бинарные исполняемые скомпилированные программы;
  • может задавать зависимости на несуществующие цели (redo-ifcreate);
  • очень прост в реализации: может быть реализован в 100 SLoC на POSIX shell или 1 kLoC на чистом C, с возможностью распараллеливания и продолжения сборок, включая полную реализацию хэша SHA256;
  • не требует установки каких-либо дополнительных программ (на BSD-системы бывает приходится ставить GNU Make) для конечного пользователя: реализация apenwarr/minimal/do на чистом POSIX shell занимает 1/3 размера лицензии GPLv3 и может быть просто включена внутрь архива программы.
Отличием goredo от других реализаций redo является:
  • различные user-friendly sanity/safety проверки некорректного поведения целей;
  • возможность записи stderr вывода целей на диск, с TAI64N временными штампами;
  • распараллеливание сборок, опционально без ограничения на количество задач;
  • дружелюбность к umask;
  • высокая скорость работы, особенно по сравнению с популярной реализацией apenwarr/redo;
  • состояние сборок сохраняется в человекочитаемых и удобных для машинной обработки recfile;
  • прохождение функциональных тестов из реализаций apenwarr/redo и redo.sh.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_goredo, #_redo, #_build
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 05-Окт 21:26
Часовой пояс: UTC + 5