Den nye version af QBS 2.0 kompileringssystemet ankommer

QbS

Qbs er et samfundsdrevet, sprogagnostisk byggeautomatiseringssystem. Det er hurtigt og tilbyder et sprog, der er nemt at lære, baseret på QML.

Udgivelsen af ​​Qbs 2.0, en gratis og open source, cross-platform software til styring af softwareudviklingsprocessen, blev for nylig annonceret . Den var designet til at understøtte store og komplekse projekter skrevet i forskellige programmeringssprog, primært C/C++.

Den nye version 2.0 er betydelig i sit versionsnummer, da den er forbundet med implementeringen af ​​en ny JavaScript-backend , som erstattede QtScript, som blev forældet i Qt 6.

For dem der ikke er bekendt med Qbs, bruger det en forenklet version af QML-sproget til at definere projektbyggeskripter, hvilket giver mulighed for forholdsvis fleksible byggeregler, der kan forbinde eksterne moduler, bruge JavaScript-funktioner og oprette vilkårlige byggeregler.

Qbs er unik, idet den ikke har nogen mekanisme til interne builds, hvilket garanterer muligheden for at oprette flere builds fra et enkelt kildetræ, inklusive at bygge fra en enkelt kommandokald og parallelt.

Dette er en nøglefunktion, der sikrer, at kildefiler forbliver upåvirkede, hvis en byggemappe slettes , og at der ikke skrives outputartefakter til kildemappen. Qt er påkrævet som en afhængighed for at bygge Qbs, selvom Qbs i sig selv er designet til at organisere assemblyen af ​​ethvert projekt.

Det scriptsprog, der bruges i Qbs, er skræddersyet til at automatisere generering og parsing af build-scripts af IDE'er. Ydermere genererer Qbs ikke make-filer, og uden mellemled som make-værktøjet kontrollerer frigivelsen af ​​compilere og linkere, hvilket optimerer byggeprocessen baseret på en detaljeret graf over alle afhængigheder.

Tilstedeværelsen af ​​indledende data om strukturen og afhængighederne i projektet giver dig mulighed for effektivt at parallelisere udførelsen af ​​operationer i flere tråde. For store projekter, der består af et stort antal filer og undermapper, kan ydeevnen af ​​genopbygninger ved hjælp af Qbs være flere gange bedre end make: Genopbygningen er næsten øjeblikkelig og spilder ikke udviklertid på at vente.

Vigtigste nyheder i QBS 2.0

Denne nye udgivelse af QBS 2.0 er bemærkelsesværdig, som nævnt i begyndelsen, på grund af den nye JavaScript-motor, der erstatter QtScript, som blev forældet for Qt 6, da det blev anset for urealistisk at fortsætte med at vedligeholde QtScript alene på grund af komplekse bindinger til JavaScriptCore.

Udsigten til at beholde QtScript med dens komplekse afhængighed virkede ikke særlig tiltalende. Ingen af ​​kandidaterne tilbød dog en API til at opsnappe ejendomsadgange, noget udviklerne siger, at de absolut har brug for af præstationsmæssige årsager.

Fra brugerens synspunkt bør der ikke være nogen mærkbare ændringer; især forestillingen ser ud til at være omtrent den samme. QtScript var dog ret skånsom med at acceptere udefinerede værdier i sammenhænge, ​​hvor det ikke var nødvendigt, så den nye implementering kan muligvis afsløre nogle fejl i dine projekter.

Motoren overholder ES2019-specifikationen og overgår betydeligt sine eksisterende modstykker (XS med 35 %, DukTape med mere end dobbelt så meget, JerryScript med tre gange så meget og MuJS med syv gange så meget). Fra et udviklingsperspektiv for byggescripts burde overgangen til en ny motor ikke resultere i nogen mærkbare ændringer.

Ydeevnen vil også forblive næsten den samme. Blandt forskellene er den nye motors strengere krav til brugen af ​​nullværdier, hvilket kan afsløre problemer i eksisterende projekter, der ikke blev bemærket ved brug af QtScript.

Derudover nævnes det også, at qmake-projektfiler blev fjernet, hvilket resulterede i en reduktion af vedligeholdelsesarbejdet for udviklerne.

Til sidst nævnes det, at version 2.1 vil se en omskrivning af koden, hvormed udviklerne antager, at de vil have flere nye funktioner, samt generelle præstationsforbedringer.

Hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.


Tilføj som foretrukken kilde i Google