Dumating ang bagong bersyon ng QBS 2.0 compilation system

QbS

Ang Qbs ay isang community driven, language agnostic build automation system. Ito ay mabilis at nag-aalok ng madaling matutunang wika batay sa QML.

Kamakailan lamang ay inanunsyo ang paglabas ng Qbs 2.0, isang libre at open-source, cross-platform software para sa pamamahala ng proseso ng pagbuo ng software . Ito ay dinisenyo upang suportahan ang malalaki at kumplikadong mga proyekto na nakasulat sa iba't ibang mga wika ng programming, pangunahin na ang C/C++.

Mahalaga ang numero ng bersyon ng bagong bersyon 2.0, dahil nauugnay ito sa pagpapatupad ng isang bagong JavaScript backend , na pumalit sa QtScript, na naging lipas na sa Qt 6.

Para sa mga hindi pamilyar sa Qbs, gumagamit ito ng pinasimpleng bersyon ng wikang QML upang tukuyin ang mga script ng pagbuo ng proyekto, na nagbibigay-daan para sa medyo nababaluktot na mga panuntunan sa pagbuo na maaaring magkonekta ng mga panlabas na module, gumamit ng mga function ng JavaScript, at lumikha ng mga arbitraryong panuntunan sa pagbuo.

Natatangi ang Qbs dahil wala itong mekanismo para sa mga internal build, na ginagarantiyahan ang kakayahang lumikha ng maraming build mula sa iisang source tree, kabilang ang pagbuo mula sa iisang command invocation at nang magkasabay.

Ito ay isang mahalagang tampok, tinitiyak na ang mga source file ay mananatiling hindi maaapektuhan kung ang isang build directory ay mabubura at walang output artifacts na isusulat sa source directory. Kinakailangan ang Qt bilang isang dependency upang bumuo ng mga Qbs, bagama't ang Qbs mismo ay idinisenyo upang ayusin ang pag-assemble ng anumang proyekto.

Ang scripting language na ginagamit sa Qbs ay iniakma upang i-automate ang pagbuo at pag-parse ng mga build script ng mga IDE. Higit pa rito, ang Qbs ay hindi bumubuo ng mga makefile at, nang walang mga tagapamagitan tulad ng make utility, kinokontrol ang pagpapalabas ng mga compiler at linker, na nag-o-optimize sa proseso ng pagbuo batay sa isang detalyadong graph ng lahat ng dependencies.

Ang pagkakaroon ng paunang data sa istraktura at mga dependency sa proyekto ay nagbibigay-daan sa iyo upang epektibong iparallelize ang pagpapatupad ng mga operasyon sa ilang mga thread. Para sa malalaking proyekto na binubuo ng malaking bilang ng mga file at subdirectory, ang pagganap ng mga muling pagtatayo gamit ang Qbs ay maaaring ilang beses na mas mahusay kaysa gawin: ang muling pagtatayo ay halos madalian at hindi nag-aaksaya ng oras ng developer sa paghihintay.

Mga pangunahing bagong bagay ng QBS 2.0

Kapansin-pansin ang bagong paglabas na ito ng QBS 2.0, gaya ng nabanggit sa simula, dahil sa bagong JavaScript engine na pumalit sa QtScript, na naging lipas na para sa Qt 6, dahil itinuturing na hindi makatotohanang ipagpatuloy ang pagpapanatili ng QtScript nang mag-isa dahil sa mga kumplikadong pag-uugnay sa JavaScriptCore.

Ang pag-asam na panatilihin ang QtScript sa kumplikadong dependency nito ay hindi mukhang partikular na nakakaakit. Gayunpaman, walang sinumang kandidato ang nag-alok ng API para harangin ang mga pag-access sa ari-arian, isang bagay na sinasabi ng mga developer na talagang kailangan nila para sa mga dahilan ng pagganap.

Mula sa pananaw ng gumagamit, dapat walang kapansin-pansing pagbabago; sa partikular, ang pagganap ay tila halos pareho. Gayunpaman, ang QtScript ay medyo maluwag sa pagtanggap ng mga hindi natukoy na halaga sa mga konteksto kung saan hindi nito kailangan, kaya maaaring matuklasan ng bagong pagpapatupad ang ilang mga bug sa iyong mga proyekto.

Ang makina ay sumusunod sa ispesipikasyon ng ES2019 at makabuluhang nahihigitan ang mga kasalukuyang katapat nito (XS ng 35%, DukTape ng mahigit dalawang beses, JerryScript ng tatlong beses, at MuJS ng pitong beses). Mula sa perspektibo ng pagbuo ng build script, ang paglipat sa isang bagong makina ay hindi dapat magresulta sa anumang kapansin-pansing pagbabago.

Halos pareho rin ang performance. Sa mga pagkakaiba, ang bagong engine ay may mas mahigpit na mga kinakailangan para sa paggamit ng mga null value, na maaaring magbunyag ng mga isyu sa mga kasalukuyang proyekto na hindi napansin noong ginagamit ang QtScript.

Bukod pa rito, nabanggit din na inalis ang mga qmake project file, na nagresulta sa pagbawas ng maintenance work para sa mga developer.

Sa wakas ay nabanggit na ang bersyon 2.1 ay makakakita ng muling pagsulat ng code kung saan ipinapalagay ng mga developer na magkakaroon sila ng ilang mga bagong tampok, pati na rin ang mga pangkalahatang pagpapahusay sa pagganap.

Kung interesado kang matuto nang higit pa, makikita mo ang mga detalye sa sumusunod na link.


Idagdag bilang ginustong mapagkukunan sa Google