Izlaists ForgeZero 1.9.0, rīks C un assemblera kodēšanai

Publicēta ForgeZero 1.9.0 (fz) versija, konsoles rīks projektu izveidei, kas izstrādāti valodās C, C++ un assemblerī (NASM, GAS, FASM). Rīks neprasa Makefile vai citus konfigurācijas failus pamata lietošanai. Projekta kods ir rakstīts valodā Go un tiek izplatīts saskaņā ar MIT licenci.

ForgeZero nosaka faila tipu un automātiski izvēlas nepieciešamo aizmuguri. Katrs koda fails tiek kompilēts objektfailā, pēc tam tiek veikta globālo simbolu dublēšanās pārbaude visos objektos un izveidošana vienā izpildāmajā failā. Kompilētie faili tiek kešoti un atkārtoti kompilēti tikai pēc izmaiņām ar tiem saistītajos koda failos. Iespējama opcijā izmaiņu uzraudzība FS un atkārtota kompilēšana pēc failu atjauninājuma.

Atbalstīti kompilatori GCC, Clang, G++, Clang++; assembleri NASM, GAS, FASM; saistītāji LD, GCC, Clang; arhivētājs AR. Obligātie brīdinājumi C un C++: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Pa noklusējumu ir ieslēgti sanitāri AddressSanitizer un UndefinedBehaviorSanitizer (atspējojami ar flagu -sanitize=false). Atbalstītas platformas Linux, macOS, Windows (WSL2 un eksperimentāli natively).

Galvenās izmaiņas versijā 1.9.0:

  • Pievienots flags "-target" <triple>, kas ļauj veikt krustkompilāciju jebkurai arhitektūrai, ja ir pieejams atbilstošs prefiksu rīku komplekts. fz patstāvīgi nosaka kompilatora, saistītāja un arhivētāja nosaukumus pēc norādītā identifikatora (piemēram, "arm-linux-gnueabihf-gcc"). Atbalstītas jebkuras standarta GNU mērķplatformas, tostarp arm-linux-gnueabihf, aarch64-linux-gnu un riscv64-linux-gnu.
  • Ieviesta atbalsta protokola LSP (Language Server Protocol) īstenošana. Flag "-compile-commands" ģenerē failu compile_commands.json (Compilācijas datu bāze) projekta saknē. Failu lasa valodas serveriem clangd un ccls, nodrošinot automātiskās pabeigšanas, koda navigācijas un diagnostikas darbību redaktoros ar LSP atbalstu (Neovim, VSCode, CLion, Emacs u.c.).
  • Komanda fz "-update" pirms jaunas versijas instalēšanas tagad saglabā pašreizējo bitu failu /usr/local/bin/fz.old, ļaujot atgriezties pie iepriekšējās versijas bez pārlādēšanas.
  • Novērsta kļūda, kurā multi-direktoriju projektos faili ar vienādām pamatnosaukumiem no dažādām apakšmapēm pārrakstīja objektu failus viens otru. Objektu failu nosaukumi tagad tiek ģenerēti, pamatojoties uz pilno relatīvo ceļu uz avota failu.
  • Ieviesta interaktīvā režīma „fz -shell” vienkāršo failu apkopojumam.
  • Pievienota testēšanas pārklājuma palielināšana komandām SplitCommand, CmdSet un CmdBuild. Testu pārklājums kompilatora paketē palielināts no 17% līdz 60%, un visu pakotņu pārklājums pārsniedza 40%.
  • Pievienots CheckTool aizstāšanas mehānisms scenāriju testēšanai ar trūkstošiem rīku ķēdes komponentiem.

Iepriekšējo laidienu izmaiņas:

  • Versijā 1.8.0 ieviesta statisko bibliotēku kompilācija (-type static / -lib), nodrošināta objektu failu nosaukumu unikālitāte multi-direktoriju projektos, novērstas kļūdas kompilēšanas apakšnodaļā, kas saistītas ar ceļu apietšanu „..”.
  • Versijā 1.7.0 pievienota paralēlā kompilācija (-j N, 0 — automātiska kodu skaitu noteikšana), atbalsts linker skriptiem (-T) un ieejas punkta adrese (-Ttext), interaktīvais režīms (fz -shell), skaidra izejas formāta izvēle (elf32, elf64, bin), C++ failu (.cpp, .cc, .cxx) kompilācija ar tiem pašiem stingrajiem brīdinājumu karogiem, ko izmanto C.
  • Versijā 1.6.0 pievienota projekta inicializācija (fz -init, izveido .fz.yaml, .fzignore, README.md), bin formāta atbalsts (-format bin) ielādētājiem un firmām, konfigurācijas lauki libs, flags.cc, flags.asm, flags.ld.
  • Versijā 1.5.0 ieviestas vairāku avotu direktorijas (source_dirs), skaidri failu saraksti (source_files), iekļaušanas/izslēgšanas veidnes, libs lauks kompilatoram, .fzignore fails, daudzlīmeņu konfigurācijas failu apvienošana.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster