Nadchodzi nowa wersja systemu kompilacji QBS 2.0

QbS

Qbs to oparty na społeczności, niezależny od języka system automatyzacji kompilacji. Jest szybki i oferuje łatwy do nauczenia się język oparty na QML.

Niedawno ogłoszono wydanie Qbs 2.0, darmowego i otwartego oprogramowania wieloplatformowego do zarządzania procesem tworzenia oprogramowania . Zostało ono zaprojektowane z myślą o obsłudze dużych i złożonych projektów napisanych w różnych językach programowania, głównie C/C++.

Nowa wersja 2.0 ma znaczący numer wersji, ponieważ wiąże się z implementacją nowego zaplecza JavaScript , które zastąpiło QtScript, przestarzały w Qt 6.

Dla tych, którzy nie znają Qbs, wyjaśniamy, że wykorzystuje on uproszczoną wersję języka QML do definiowania skryptów kompilacji projektu, umożliwiając dość elastyczne reguły kompilacji, które mogą łączyć zewnętrzne moduły, korzystać z funkcji JavaScript i tworzyć dowolne reguły kompilacji.

Qbs jest wyjątkowy, ponieważ nie posiada mechanizmu kompilacji wewnętrznych, co gwarantuje możliwość tworzenia wielu kompilacji z jednego drzewa źródłowego, w tym kompilacji z jednego wywołania polecenia i równolegle.

Jest to kluczowa funkcja, zapewniająca, że ​​pliki źródłowe pozostaną niezmienione po usunięciu katalogu kompilacji i że żadne artefakty wyjściowe nie zostaną zapisane w katalogu źródłowym. Qt jest wymagane jako zależność do kompilacji Qbs, chociaż sam Qbs został zaprojektowany do organizacji montażu dowolnego projektu.

Język skryptowy używany w Qbs jest dostosowany do automatyzacji generowania i analizowania skryptów kompilacji przez IDE. Co więcej, Qbs nie generuje plików makefile i bez pośredników, takich jak narzędzie make, kontroluje wydawanie 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 na efektywne zrównoleglenie wykonywania 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ć kilka razy lepsza niż make: przebudowa jest prawie natychmiastowa i nie marnuje czasu programisty na czekanie.

Główne nowości QBS 2.0

Jak wspomniano na początku, nowa wersja QBS 2.0 jest godna uwagi ze względu na nowy silnik JavaScript, który zastępuje QtScript, przestarzały w Qt 6. Uznano bowiem, że dalsze utrzymywanie wyłącznie QtScript będzie nierealne ze względu na złożone powiązania z JavaScriptCore.

Perspektywa zachowania QtScript z jego złożoną zależnością nie wydawała się szczególnie atrakcyjna. Jednak żaden z kandydatów nie zaoferował interfejsu API do przechwytywania dostępu do właściwości, co zdaniem programistów jest absolutnie potrzebne ze względu na wydajność.

Z punktu widzenia użytkownika nie powinno być zauważalnych zmian; w szczególności wydajność wydaje się być mniej więcej taka sama. Jednak QtScript był dość pobłażliwy w akceptowaniu niezdefiniowanych wartości w kontekstach, w których nie musiał, więc nowa implementacja może wykryć pewne błędy w twoich projektach.

Silnik jest zgodny ze specyfikacją ES2019 i znacząco przewyższa swoje dotychczasowe odpowiedniki (XS o 35%, DukTape o ponad dwa razy, JerryScript o trzy razy i MuJS o siedem razy). Z perspektywy tworzenia skryptów kompilacji, przejście na nowy silnik nie powinno przynieść żadnych zauważalnych zmian.

Wydajność również pozostanie niemal taka sama. Wśród różnic, nowy silnik ma bardziej rygorystyczne wymagania dotyczące używania wartości null, co może ujawnić problemy w istniejących projektach, które nie zostały zauważone podczas korzystania z QtScript.

Wspomniano również, że pliki projektu qmake zostały usunięte, co spowodowało ograniczenie prac konserwacyjnych dla programistów.

Na koniec wspomniano, że w wersji 2.1 zostanie przepisany kod, z którym programiści zakładają, że będą miały kilka nowych funkcji, a także ogólne ulepszenia wydajności.

Jeśli chcesz dowiedzieć się więcej, szczegóły znajdziesz pod poniższym linkiem.


Dodaj jako preferowane źródło w Google