Приходит новая версия системы компиляции QBS 2.0

QbS

Qbs — управляемая сообществом система автоматизации сборки, не зависящая от языка. Это быстро и предлагает простой для изучения язык на основе QML.

Недавно анонсирован выход новой версии Qbs 2.0, это бесплатное кроссплатформенное программное обеспечение с открытым исходным кодом для управления процессом создания программного обеспечения. Он был разработан для поддержки больших и сложных проектов, написанных на различных языках программирования, в основном C/C++.

Новая версия 2.0 имеет большое значение в номере версии, так как он связан с реализацией нового бэкенда JavaScript., который заменил QtScript, объявленный устаревшим в Qt 6.



Для тех, кто не знает Qbs, они должны знать, что это использует упрощенную версию языка QML для определения сценариев сборки проекта, что позволяет вам определять довольно гибкие правила сборки, в которые можно подключать внешние модули, использовать функции JavaScript и создавать произвольные правила сборки.



Qbs уникален тем, что онe не имеет никакого механизма для внутренних компиляций, обеспечение возможности создания нескольких сборок из одного исходного дерева, включая сборку из одного вызова команды и параллельно.

Это ключевая особенность, которая гарантирует, что исходные файлы не будут затронуты, если каталог сборки будет удален и что никакие выходные артефакты не записываются в исходный каталог. Для сборки Qbs требуется Qt как зависимость, хотя сам Qbs предназначен для организации сборки любого проекта.



Язык сценариев, используемый в Qbs, специально предназначен для автоматизации создания и анализа сценариев сборки с помощью IDE. Кроме того, Qbs не генерирует make-файлы и без посредников вроде утилиты make контролирует выпуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе подробного графа всех зависимостей.

Наличие исходных данных о структуре и зависимостях в проекте позволяет эффективно распараллелить выполнение операций в несколько потоков. Для больших проектов, состоящих из большого количества файлов и подкаталогов, производительность пересборки с помощью Qbs может быть в разы лучше, чем make: пересборка происходит практически мгновенно и не отнимает у разработчика время ожидания.

Основные новинки QBS 2.0

Этот новый выпуск QBS 2.0 примечателен, как упоминалось в начале, из-за новый движок JavaScript, который приходит на смену QtScript который устарел для Qt 6, поскольку считалось нереальным продолжать поддерживать QtScript самостоятельно из-за сложных привязок к JavaScriptCore.



Перспектива сохранения QtScript с его сложной зависимостью не казалась особенно привлекательной. Однако ни один из кандидатов не предлагал API для перехвата доступа к свойствам, что, по словам разработчиков, абсолютно необходимо для повышения производительности.

С точки зрения пользователя заметных изменений быть не должно; в частности, производительность кажется примерно одинаковой. Однако QtScript довольно снисходительно принимал неопределенные значения в контекстах, где это не нужно, поэтому новая реализация может выявить некоторые ошибки в ваших проектах.

Двигатель соответствует спецификации ES2019. и значительно превосходит существующие аналоги по производительности (XS на 35%, DukTape более чем в два раза, JerryScript в три раза, MuJS в семь раз). С точки зрения разработки сценария сборки переход на новый движок не должен привести к заметным изменениям.



Производительность также останется примерно на том же уровне. Из отличий в новом движке более строгие требования к использованию нулевых значений, что может выявить проблемы в существующих проектах, оставшиеся незамеченными при использовании QtScript.

В дополнение к этому упоминается также, что удалены файлы проекта qmake, что привело к сокращению объема работ по обслуживанию для разработчиков.

Наконец, упоминается, что в версии 2.1 будет переписан код, с помощью которого разработчики предполагают, что у них будет несколько новых функций, а также общие улучшения производительности.

Если вы хотите узнать больше об этом, вы можете ознакомиться с деталями По следующей ссылке.




2023-04-25T20:45:47
приложений