Wydanie narzędzia montażowego Qbs 2.0

Wprowadzono wersję narzędzia do kompilacji Qbs 2.0. Do zbudowania Qbs wymagana jest zależność Qt, chociaż samo Qbs zostało zaprojektowane do organizowania montażu dowolnych projektów. Qbs wykorzystuje uproszczoną wersję języka QML do definiowania skryptów budowania projektów, co pozwala na zdefiniowanie dość elastycznych reguł budowania, w których można podłączyć zewnętrzne moduły, można używać funkcji JavaScript i tworzyć dowolne reguły budowania.

Język skryptowy używany w Qbs jest przystosowany do automatyzacji generowania i analizowania skryptów kompilacji przez IDE. Dodatkowo Qbs nie generuje plików makefile, a sam, bez pośredników takich jak narzędzie make, kontroluje uruchamianie kompilatorów i linkerów, optymalizując proces kompilacji w oparciu o szczegółowy wykres wszystkich zależności. Obecność początkowych danych o strukturze i zależnościach w projekcie pozwala efektywnie zrównoleglić wykonywanie operacji w kilku wątkach. W przypadku dużych projektów składających się z dużej liczby plików i podkatalogów, wydajność przebudowy przy użyciu Qbs może być kilkukrotnie większa niż make - przebudowa jest niemal natychmiastowa i nie powoduje, że programista traci czas na czekanie.

Przypomnijmy, że w 2018 roku firma Qt podjęła decyzję o zaprzestaniu rozwoju Qbs. Qbs został opracowany jako zamiennik qmake, ale ostatecznie zdecydowano się na użycie CMake jako głównego systemu kompilacji Qt w dłuższej perspektywie. Rozwój Qbs jest obecnie kontynuowany jako niezależny projekt wspierany przez siły społeczne i zainteresowanych programistów. Infrastruktura Qt Company jest w dalszym ciągu wykorzystywana do rozwoju.

Istotna zmiana numeru wersji związana jest z wdrożeniem nowego backendu JavaScript, który zastąpił QtScript, który był przestarzały w Qt 6. Dalsze utrzymywanie QtScriptu na własną rękę uznano za nierealne ze względu na skomplikowane powiązania z JavaScriptCore, więc -wystarczający i kompaktowy został wybrany jako podstawa nowego backendowego silnika JavaScript QuickJS stworzonego przez Fabrice'a Bellarda, założyciela projektów QEMU i FFmpeg. Silnik obsługuje specyfikację ES2019 i znacznie przewyższa wydajnością istniejące analogi (XS o 35%, DukTape ponad dwukrotnie, JerryScript trzykrotnie i MuJS siedmiokrotnie).

Z punktu widzenia rozwoju skryptów budujących przejście na nowy silnik nie powinno prowadzić do zauważalnych zmian. Wydajność również pozostanie mniej więcej taka sama. Spośród różnic w nowym silniku obowiązują bardziej rygorystyczne wymagania dotyczące stosowania wartości null, co może ujawnić problemy w istniejących projektach, które pozostały niezauważone podczas korzystania z QtScript.

Źródło: opennet.ru

Dodaj komentarz