The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Разработчик языка XL опубликовал новую сборочную систему build

27.06.2017 09:21

Christophe de Dinechin, автор языка программирования XL, участник разработки спецификаций C++, создатель системы виртуализации для HP-UX и разработчик ряда известных компьютерных игр, в настоящее время работающий в компании Red Hat над технологией удалённого рабочего стола SPICE, опубликовал новую сборочную систему "build". Сборочная система ранее была задействована для сборки кодовой базы проектов ELFE и XL, а теперь может применяться в качестве универсального продукта, не привязанного к конкретным системам. Код открыт под лицензией GPLv3.

Build представляет собой серию надстроек над утилитой make для упрощения сборки проектов на С/С++, которая оформлена в виде набора make-сценариев. Ключевой особенностью Build является предоставление встроенных средств для автоматической настройки сборочного окружения, которые в отличие от Automake не требуют запуска отдельной фазы генерации сборочных файлов. Build также поддерживает ведение сборочного лога, подсветку вывода, обработку стадий тестирования и установки приложения. Отмечается, что Build не так богат возможностями как Autoconf, но вполне подходит для несложных проектов. При этом Build очень прост в использовании и не требует написания длинных make-файлов или определения правил для automake и cmake.

Особенности Build:

  • Очень короткие и хорошо читаемые сборочные сценарии, предоставляющие все наиболее полезные возможности сборочной системы;
  • Компактный размер: для типовой сборки достаточно поставки кода makefile, размером около 500 строк;
  • Высокая скорость работы, так как короткие makefile с небольшим числом правил разбираются очень быстро;
  • Автоматическая инкрементальная конфигурация проекта, генерация файла config.h;
  • Автоматическое ведение лога с деталями процесса сборки;
  • Автоматическая однопроходная генерация зависимостей для заголовочных файлов;
  • Поддержка команд "make test" и "make install";
  • Компактный отчёт о ходе сборки с подсветкой важных элементов;
  • Вывод после завершения сборки сводного отчёта об ошибках и предупреждениях;
  • Подсветка ошибок и предупреждений в выводе;
  • Правила для сборки в различных режимах (оптимизация, отладка, формирование релиза, профилирование);
  • Наличие правил-модификаторов для типовых сборочных опций, таких как v-debug для подробной отладки;
  • Возможность определения персональных настроек через переменные окружения;
  • Встроенная система подсказки ("make help");
  • Полная поддержка стандартного синтаксиса Makefile и всех возможностей утилиты make;
  • Поддержка распараллеливания процесса сборки на несколько потоков;
  • Возможность разделения библиотек для ускорения сборки (библиотеки собираются только при первой сборке или при инициировании глубокой сборки);
  • Хорошая переносимость. Система протестирована в Linux, macOS и Windows.

Пример сборочного сценария:


    BUILD=./
    SOURCES=hello.cpp
    PRODUCTS=hello.exe
    CONFIG= <stdio.h> <iostream> clearenv libm
    TESTS=product
    include $(BUILD)rules.mk 


  1. Главная ссылка к новости (https://tech.slashdot.org/stor...)
  2. OpenNews: Первый публичный выпуск сборочного инструментария build2
  3. OpenNews: Компания Google представила первый выпуск открытой системы сборки Bazel
  4. OpenNews: Twitter представил первый значительный выпуск системы сборки Pants
  5. OpenNews: Выпуск сборочного инструментария qbs 1.8, развиваемого проектом Qt
  6. OpenNews: Для GNOME-приложений представлена новая экспериментальная система сборки BuilDj
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46767-build
Ключевые слова: build, make
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:24, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Dinechin - это типа Деникин, потомок белых мигрантов?

    Матёрый мужик, чем-то похож на Fabrice Bellard, тоже куча разноплановых интересов и везде шедевры на выходе.

     
     
  • 2.2, Аноним (-), 09:28, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно как и у Lennart Poettering...
     
     
  • 3.3, Аноним (-), 09:35, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Poettering любитель комбайнов и усложнений, а здесь наоборот предельное упрощение и ясность. Poettering также мастер собрать вкруг себя команду сторонников и хейтеров, а Bellard и Dinechin - одиночки.

     
  • 2.4, Аноним (-), 09:37, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +11 +/
    >>Dinechin
    >Деникин

    Ты буквы через одну читаешь, хрустя франузской булкой?

     
     
  • 3.5, Led (ok), 09:50, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не булкой, а пальмезаном.
     
     
  • 4.19, user (??), 13:43, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Им не хрустят, а хлюпают.
     
  • 3.7, Аноним (-), 09:55, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    По французски читается как Динишан, что не исключает, что это переиначенный Деникин.

     
     
  • 4.11, A.Stahl (ok), 10:41, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И не исключено что это англичанин/американец 300 лет назад оконфузившийся на обеде и засунувший подбородок в салат.
     
  • 2.28, ОМДЗТ (?), 19:25, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Dinechin - это типа Деникин//
    Это типа Дениска...Попов. Сделал Инструментарий Попова с хорошими, годными, понятными и нескучными скриптами
     

  • 1.6, Аноним (-), 09:52, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >  Код открыт под лицензией
    > https://github.com/c3d/build/blob/master/LICENSE

    А как вообще на гитхабе указывать "GPL3 and above" вместо "==GPL3" ?

     
     
  • 2.12, Andrey Mitrofanov (?), 10:50, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А как вообще на гитхабе указывать "GPL3 and above" вместо "==GPL3" ?

    Как и везде, https://www.gnu.org/licenses/gpl-howto.html

    Например, https://github.com/lhmouse/nano-win/commit/d0035b4ab28c061c6ecabfd2945e05d55d6

     

  • 1.8, Аноним (-), 10:01, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    >Build представляет собой серию надстроек над утилитой make

    Что, опять?

     
  • 1.9, Аноним (-), 10:11, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > новую сборочную систему "build"

    УРААА, здорово!!! Мне как раз не хватало ещё одной. Теперь заживу!

     
     
  • 2.10, Девелопер (?), 10:24, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Мужик сделал для себя и решил поделиться с народом, в чем проблема?
     
     
  • 3.18, Аноним (-), 12:53, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Половина гитхаба забита такими "для себя", а новость только об этом.
     
  • 2.13, Аноним (-), 11:57, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все существующие системы сборки - <так себе>, и как раз еще одной остро не хватает. Вот только сабж - явно не то, что нужно. Не понимаю, зачем публиковать такие поделки.
     

  • 1.14, Аноним (-), 12:05, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >встроенных средств для автоматической настройки сборочного окружения, которые в отличие от Automake не требуют запуска отдельной фазы генерации сборочных файлов

    И как отлаживать проблемы на этапе настройки?

     
  • 1.15, Аноним (-), 12:07, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    >build

    Это чтобы было проще гуглить?

     
     
  • 2.17, gaga (ok), 12:41, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ага, язык XL с системой build. И так никто и не узнал о новом революционном языке.
     

  • 1.22, lucentcode (ok), 14:52, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну, ещё одна система сборки явно не помещает. Посмотрим, что из этого проекта выйдет со временем. Время всё расставляет на свои места. А конкретной в этой новости меня больше заинтересовало упоминание ЯП XL. Никогда о нём не слышал. Но судя по описанию, выглядит очень интересно.
     
     
  • 2.24, Аноним (-), 15:56, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только...
    Stable release
    0.1 / February 2010; 7 years ago
     
     
  • 3.27, Andrey Mitrofanov (?), 18:04, 27/06/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вот только...
    > Stable release
    > 0.1 / February 2010; 7 years ago

    Commits on May 10, 2017
    https://github.com/c3d/XL-programming-language/commits/master

    ...
    https://github.com/c3d/ смотрит на тебя... ну, как ги-хаб на сорс-форж.

     

  • 1.25, Аноним (-), 16:01, 27/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Раз уж упомянули игры, сказали бы, что этот Де Динешен -- автор игры Alpha Waves (Continuum), с которой началось Alone in the Dark и остальное 3D от третьего лица. https://sourceforge.net/projects/alpha-waves/
     
  • 1.29, nobody (??), 17:45, 29/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Хорошая переносимость. Система протестирована в Linux, macOS и Windows.

    Эхххх... Прям как "кроссплатформенная разработка" у M$:
    Работает аж под Windows Client, Windows Server, Windows 32bit, Windows 64bit...

     
  • 1.30, annual slayer (?), 19:16, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    немного напоминает ebuild или PKGBUILD

    это хорошо

     
     
  • 2.31, Аноним (-), 07:35, 17/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Мне qmake напомнило.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру