Uvoľnenie montážneho nástroja Qbs 2.0

Bolo oznámené vydanie zostavy Qbs 2.0. Na zostavenie Qbs sa medzi závislosťami vyžaduje Qt, hoci samotný Qbs je navrhnutý tak, aby organizoval zostavenie akýchkoľvek projektov. Qbs používa na definovanie skriptov zostavovania projektu zjednodušenú verziu jazyka QML, čo vám umožňuje definovať pomerne flexibilné pravidlá zostavovania, ktoré môžu spájať externé moduly, používať funkcie JavaScriptu a vytvárať vlastné pravidlá zostavovania.

Skriptovací jazyk používaný v Qbs je prispôsobený na automatizáciu generovania a analýzy zostavovacích skriptov integrovanými vývojovými prostrediami. Okrem toho Qbs negeneruje makefile, ale sám bez sprostredkovateľov, ako je utilita make, riadi spúšťanie kompilátorov a linkerov, čím optimalizuje proces zostavovania na základe podrobného grafu všetkých závislostí. Prítomnosť počiatočných údajov o štruktúre a závislostiach v projekte vám umožňuje efektívne paralelizovať vykonávanie operácií vo viacerých vláknach. Pri veľkých projektoch pozostávajúcich z veľkého množstva súborov a podadresárov môže byť výkon prestavby pomocou Qbs niekoľkonásobne rýchlejší ako make - prestavba sa vykonáva takmer okamžite a nenúti vývojára strácať čas čakaním.

Pripomeňme, že v roku 2018 sa spoločnosť Qt rozhodla ukončiť vývoj Qbs. Qbs bol vyvinutý ako náhrada za qmake, ale nakoniec sa rozhodlo použiť CMake ako hlavný zostavovací systém pre Qt z dlhodobého hľadiska. Vývoj Qbs teraz pokračuje ako nezávislý projekt podporovaný komunitou a zainteresovanými vývojármi. Na vývoj sa naďalej používa infraštruktúra spoločnosti Qt.

Významná zmena v čísle verzie je spojená s implementáciou nového backendu JavaScript, ktorý nahradil QtScript, ktorý bol v Qt 6 vyhlásený za zastaraný. Pokračovať v udržiavaní QtScriptu vlastnými silami sa považovalo za nereálne z dôvodu zložitých väzieb na JavaScriptCore, takže sebestačný a kompaktný bol vybraný ako základ pre nový backend. JavaScriptový engine QuickJS vytvoril Fabrice Bellard, ktorý založil projekty QEMU a FFmpeg. Motor podporuje špecifikáciu ES2019 a má výrazne lepší výkon ako existujúce analógy (XS o 35 %, DukTape viac ako dvakrát, JerryScript trikrát a MuJS sedemkrát).

Z pohľadu vývoja montážnych skriptov by prechod na nový engine nemal viesť k výrazným zmenám. Na približne rovnakej úrovni zostane aj produktivita. Medzi rozdiely patria prísnejšie požiadavky v novom engine na používanie null, čo môže odhaliť problémy v existujúcich projektoch, ktoré zostali nepovšimnuté pri používaní QtScriptu.

Zdroj: opennet.ru

Pridať komentár