La konstrua ilaro de Qbs 2.0 estis publikigita. Qbs postulas Qt kiel dependecon, kvankam Qbs mem estas desegnita por pritrakti la konstruon de iu ajn projekto. Qbs uzas simpligitan version de la QML-lingvo por difini projektajn konstruajn skriptojn, permesante la difinon de flekseblaj konstrureguloj, kiuj povas inkluzivi eksterajn modulojn, uzi JavaScript-funkciojn kaj krei kutimajn konstruregulojn.
La skriptlingvo uzita en Qbs estas adaptita por aŭtomatigi la generacion kaj analizadon de konstruskriptoj de IDEoj. Krome, Qbs ne generas makefiles, kaj mem, sen perantoj kiel la make-utilo, kontrolas la lanĉon de kompililoj kaj ligiloj, optimumigante la konstruprocezon bazitan sur detala grafeo de ĉiuj dependecoj. La ĉeesto de komencaj datumoj pri la strukturo kaj dependecoj en la projekto permesas efike paraleligi la ekzekuton de operacioj en pluraj fadenoj. Por grandaj projektoj konsistantaj el granda nombro da dosieroj kaj subdosierujoj, la agado de rekonstruoj uzante Qbs povas plurfoje superi make - la rekonstruo estas preskaŭ tuja kaj ne igas la programiston pasigi tempon atendante.
Memoru, ke en 2018, la Kompanio Qt decidis ĉesi disvolvi Qbs. Qbs estis evoluigita kiel anstataŭaĵo por qmake, sed finfine estis decidite uzi CMake kiel la ĉefan konstrusistemon por Qt en la longa kuro. La evoluo de Qbs nun daŭris kiel sendependa projekto subtenata de komunumaj fortoj kaj interesitaj programistoj. La Qt Company-infrastrukturo daŭre estas uzita por evoluo.
La signifa ŝanĝo en la versinumero ŝuldiĝas al la efektivigo de nova JavaScript-interfaco, kiu anstataŭigas QtScript, kiu estis malrekomendita en Qt 6. Daŭrigi la internan bontenadon de QtScript pro ĝiaj kompleksaj JavaScriptCore-ligiloj estis konsiderata nerealisma. Tial, la nova interfaco baziĝas sur la memstara kaj kompakta QuickJS-JavaScript-motoro, kreita de Fabrice Bellard, la fondinto de QEMU kaj FFmpeg. Ĉi tiu motoro subtenas la specifon ES2019 kaj signife superas ekzistantajn konkurantojn laŭ rendimento (XS je 35%, DukTape je pli ol duoble, JerryScript je tri fojojn, kaj MuJS je sep fojojn).
Rilate al la disvolviĝo de konstruaj skriptoj, la transiro al la nova motoro ne devus rezultigi iujn ajn signifajn ŝanĝojn. La rendimento ankaŭ restos preskaŭ la sama. Unu rimarkinda diferenco estas la pli striktaj postuloj de la nova motoro pri uzado de nedifinitaj valoroj, kio povus malkaŝi problemojn en ekzistantaj projektoj, kiuj restis nerimarkitaj dum uzado de QtScript.
fonto: opennet.ru
