ForgeZero 1.9.0 (fz), oo ah qalab dhisa khadka taliska ee mashaariicda lagu qoray C, C++, iyo luqadaha isu-imaatinka (NASM, GAS, FASM), ayaa la sii daayay. Qalabku uma baahna Makefile ama faylal kale oo habayn ah si loogu isticmaalo aasaasiga ah. Koodhka mashruuca waxaa lagu qoray Go waxaana shati haysta shatiga MIT.
ForgeZero wuxuu ogaadaa nooca faylka wuxuuna si toos ah u doortaa dhabarka dambe ee ku habboon. Fayl kasta oo koodhka ah waxaa loo soo ururiyaa fayl shay ah, ka dibna waxaa la hubiyaa calaamado caalami ah oo nuqul ka ah dhammaan walxaha waxaana lagu xiraa hal fayl oo la fulin karo. Faylasha la soo ururiyay waa la kaydiyaa oo dib ayaa loo soo ururiyaa oo keliya ka dib marka isbeddel lagu sameeyo faylasha koodhka ee la xiriira. Ikhtiyaar ahaan, raadraaca isbeddelka nidaamka faylka iyo dib-u-ururinta ayaa suurtagal ah ka dib cusbooneysiinta faylka koodhka.
Qalabka isku-dubaridka ee la taageerayo waa GCC, Clang, G++, iyo Clang++; qalabka isku-dubaridka waa NASM, GAS, iyo FASM; qalabka isku-xidhka waa LD, GCC, iyo Clang; qalabka kaydka AR-na waa la taageeraa. Digniinaha qasabka ah ee C iyo C++ waa: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Nadiifiyeyaasha Cinwaanka iyo Hab-dhaqanka Aan La Defined Behavior Nadaafad-sameeyaha waxaa lagu hawlgeliyaa si caadi ah (waxaa lagu joojin karaa calanka -sanitize=been). Meelaha la taageerayo waa: Linux, macOS, Windows (WSL2 oo si tijaabo ah u dhashay).
Isbeddellada ugu waaweyn ee nooca 1.9.0:
- Waxaa lagu daray calanka "-target" , kaas oo suurtogal ka dhigaya isku-dubaridka qaab-dhismeedka kasta oo leh qalabka horgalaha ee ku habboon. fz si toos ah ayuu u go'aamiyaa magacyada isku-darka, isku-xirka, iyo kaydiyaha iyadoo lagu saleynayo aqoonsiga la cayimay (tusaale ahaan, "arm-linux-gnueabihf-gcc"). Dhammaan goobaha bartilmaameedka GNU ee caadiga ah waa la taageeraa, oo ay ku jiraan arm-linux-gnueabihf, aarch64-linux-gnu, iyo riscv64-linux-gnu.
- Taageerada Hab-maamuuska Adeegga Luqadda (LSP) ayaa la hirgeliyay. Calanka "-compile-commands" wuxuu soo saaraa faylka compile_commands.json (Compilation Database) ee ku jira asalka mashruuca. Faylka waxaa lagu akhriyaa luqad ahaan. adeegayaal clangd iyo ccls, iyagoo bixinaya dhammaystirka otomaatiga ah, hagitaanka koodhka, iyo ogaanshaha tifaftirayaasha taageera LSP (Neovim, VSCode, CLion, Emacs, iwm.).
- Amarka "-update" ee fz hadda wuxuu keydiyaa binary-ga hadda jira /usr/local/bin/fz.old ka hor inta uusan rakibin nooc cusub, taasoo kuu oggolaanaysa inaad dib ugu laabato noocii hore adigoon dib u rakibin.
- Waxaa la hagaajiyay cillad ku jirta mashaariicda badan ee buugga ku jira halkaas oo faylasha leh magacyo isku mid ah oo ka kala socda buug-hoosaadyo kala duwan ay midba midka kale ku qori lahaayeen faylasha walxaha. Magacyada faylka walxaha hadda waxaa lagu soo saaray iyadoo lagu saleynayo wadada buuxda ee qaraabada ah ee faylka isha.
- Waxaa la hirgeliyay qaab is-dhexgal ah "fz -shell" si loo dhiso faylal keli ah.
- Caymiska tijaabada ayaa lagu daray amarrada SplitCommand, CmdSet, iyo CmdBuild. Caymiska tijaabada ee xirmada isku xidhka ayaa ka kordhay 17% ilaa 60%, caymiska dhammaan xirmadana wuxuu dhaafay 40%.
- Waxaa lagu daray habka beddelka CheckTool si loogu tijaabiyo xaaladaha iyadoo la adeegsanayo qaybaha silsiladda qalabka maqan.
Isbeddellada laga sameeyay sii-deyntii hore:
- Nooca 1.8.0 wuxuu hirgeliyaa isu-imaatinka maktabadaha taagan (-type static / -lib), wuxuu hubiyaa midnimada magacyada faylka walxaha ee mashaariicda agaasimayaal badan, wuxuuna hagaajiyaa khaladaadka ku jira nidaamka hoose ee isu-imaatinka ee la xiriira marin-habaabinta wadada "..".
- Nooca 1.7.0 wuxuu ku darayaa isku-darka isbarbar socda (-j N, 0 - ogaanshaha otomaatiga ah ee tirada xudunta), taageerada qoraallada isku xidhka (-T) iyo cinwaanada barta gelitaanka (-Ttext), qaabka is-dhexgalka (fz -shell), xulashada cad ee qaabka wax soo saarka (elf32, elf64, bin), ururinta faylasha C++ (.cpp, .cc, .cxx) oo leh isla calaamadaha digniinta adag ee C.
- Nooca 1.6.0 wuxuu ku darayaa bilowga mashruuca (fz -init, wuxuu abuuraa .fz.yaml, .fzignore, README.md), taageerada qaabka bin (-format bin) ee loogu talagalay bootloaders-ka iyo firmware-ka, iyo goobaha qaabeynta libs, flags.cc, flags.asm, flags.ld.
- Nooca 1.5.0 wuxuu soo bandhigayaa buugaag badan oo isha ah (source_dirs), liisaska faylasha cad (source_files), ku dar/ka saar qaababka, goob libs ah oo loogu talagalay maktabadaha isku xirka, faylka .fzignore, iyo isku darka heerarka badan ee faylasha habaynta.
Source: opennet.ru
