Qbs 2.0 korpustööriista väljaanne on esitatud. Qbs kokkupanemiseks on vajalik Qt, kuigi Qbs-i on loodud mistahes projektide kokkupanemise korraldamiseks. Qbs kasutab projekti kokkupanemise skriptide määratlemiseks lihtsustatud QML keelt, mis võimaldab luua piisavalt paindlikke kokkupanemisreegleid, milles saab kasutada väliseid mooduleid, JavaScripti funktsioone ja luua kohandatud kokkupanemisreegleid.
Qbs-i skriptikeel on kohandatud automaatseks genereerimiseks ja töötluseks integreeritud arenduskeskkondades. Lisaks sellele ei genereeri Qbs make-failide, vaid kontrollib otse, ilma vahekohtadeta, nagu make utiliit, kompilaatorite ja linkijate käivitamist, optimeerides build-protsessi kõigi sõltuvuste detailse graafi alusel. Projekti struktuuri ja sõltuvuste originaalandmete olemasolu võimaldab tõhusalt jaotada toimingute täitmist mitme lõime vahel. Suurte projektide puhul, mis koosnevad paljusid faile ja alamkaustu, võib Qbs-i kasutamisega toimunud uuesti buildimise efektiivsus ületada make'i oma mitu korda — uuesti buildimine toimub peaaegu hetkega ning ei sunni arendajat aega raiskama ootamisele.
Tuletame meelde, et 2018. aastal tegi Qt Company otsuse Qbs arendamise lõpetamise kohta. Qbs arenes välja qmake'i asendajana, kuid lõpuks otsustati kasutada CMake'i pikaajalise ehitusüsteemina Qt jaoks. Qbs-i arendamine on nüüd jätkuvalt iseseisva projektina, mida toetavad kogukonna ja huvitatud arendajate jõud. Arendamiseks kasutatakse endiselt Qt Company infrastruktuuri.
Oluline versioonimuutus on tingitud uue JavaScripti taustsüsteemi rakendamisest, mis asendab QtScript'i, mis kuulutati Qt 6-s vananenuks. QtScript'i jätkusuutlikkuse tagamine oma jõududega, vaadates keerulisi sidemeid JavaScriptCore'iga, on osutunud ebatõeliseks, mistõttu uue taustsüsteemi aluseks valiti iseseisev ja kompaktne JavaScripti mootor QuickJS, mille lõi Fabrice Bellard, kes on kunagi asutanud projektid QEMU ja FFmpeg. Mootor toetab ES2019 spetsifikatsiooni ja on jõudluselt oluliselt parem kui olemasolevad analoogid (XS rohkem kui 35%, DukTape enam kui kaks korda, JerryScript kolm korda ja MuJS seitse korda).
Kokkuvõttes ei tohiks uuele mootori üleminek arendusprotsessis tuua märkimisväärseid muudatusi. Jõudlus püsib ligikaudu samal tasemel. Erinevustena märgitakse ära uue mootori rangemad nõuded määramata väärtuste kasutamisel, mis võib avaldada probleeme olemasolevates projektides, mis on jäänud märkamata QtScripti kasutamise ajal.
Allikas: opennet.ru
