Qbs 2.0 montāžas instrumenta atbrīvošana

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

Qbs izmantotā skriptu valoda ir pielāgota, lai automatizētu IDE veidoto skriptu ģenerēšanu un parsēšanu. Turklāt Qbs neģenerē makefailus un pats bez starpniekiem, piemēram, make utilīta, kontrolē kompilatoru un saišu palaišanu, optimizējot veidošanas procesu, pamatojoties uz detalizētu visu atkarību grafiku. Sākotnējo datu klātbūtne par struktūru un atkarībām projektā ļauj efektīvi paralēli veikt operācijas vairākos pavedienos. Lieliem projektiem, kas sastāv no liela skaita failu un apakšdirektoriju, atjaunošanas veiktspēja, izmantojot Qbs, var vairākas reizes pārspēt veiktspēju - pārbūve notiek gandrīz acumirklī un neliek izstrādātājam tērēt laiku gaidīšanai.

Atgādiniet, ka 2018. gadā uzņēmums Qt nolēma pārtraukt Qbs izstrādi. Qbs tika izstrādāts kā qmake aizstājējs, taču galu galā tika nolemts izmantot CMake kā galveno Qt veidošanas sistēmu ilgtermiņā. Qbs izstrāde tagad ir turpinājusies kā neatkarīgs projekts, ko atbalsta kopienas spēki un ieinteresētie izstrādātāji. Attīstībai turpina izmantot Qt Company infrastruktūru.

Значительное изменение номера версии связано с реализацией нового JavaScript-бэкенда, который пришёл на смену QtScript, объявленному устаревшим в Qt 6. Продолжать сопровождение QtScript своими силами из-за сложных привязок к JavaScriptCore признано нереалистичным, поэтому в качестве основы для нового бэкенда выбран самодостаточный и компактный JavaScript-движок QuickJS, созданный Фабрисом Белларом (Fabrice Bellard), основавшим в своё время проекты QEMU и FFmpeg. Движок поддерживает спецификацию ES2019 и по производительности заметно превосходит имеющиеся аналоги (XS на 35%, DukTape более чем в два раза, JerryScript в три раза, а MuJS в семь раз).

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

Avots: opennet.ru

Pievieno komentāru