ForgeZero 1.9.0 vÀljaanne, tööriist C ja assembleerimise kogumiseks

Avaldati ForgeZero 1.9.0 (fz) vÀljaanne, konsoolitööriist C, C++ ja assembleerimise (NASM, GAS, FASM) projektide kogumiseks. Tööriist ei vaja Makefile'i ega muid konfiguratsiooni faile pÔhikasutuse jaoks. Projekti kood on kirjutatud Go keeles ja see on litsentseeritud MIT litsentsi alusel.

ForgeZero mÀÀrab faili tĂŒĂŒbi ja valib automaatselt vajaliku tagaplaneeringu. Iga koodifail koostatakse objektifailiks, seejĂ€rel kontrollitakse kĂ”ikide objektide ĂŒle korduvate globaalsete sĂŒmbolite olemasolu ning komponeeritakse ĂŒhte tĂ€idetavasse faili. Kompileeritud faile vahelduvalt vahetatakse ja uuesti kompileeritakse ainult juhul, kui seotud koodifailidesse tehakse muudatusi. On vĂ”imalik valikuline muudatuste jĂ€lgimine FS-is ja faili uuendamise jĂ€rel uuesti kompileerimine.

Toetatakse GCC, Clang, G++, Clang++ kompilaatoreid; NASM, GAS, FASM assembleerijaid; LD, GCC, Clang linkereid; AR arhiivejaid. Kohustuslikud hoiatusteade C ja C++ jaoks: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Vaikesena on sisse lĂŒlitatud aadressi ja mÀÀramatuse kĂ€itumise sanitaatorid (saab vĂ€lja lĂŒlitada lipuga -sanitize=false). Toetatud on Linux, macOS, Windows (WSL2 ja eksperimentaalselt natiivne).

Peamised muudatused versioonis 1.9.0:

  • Lisatud lipp "-target" , mis vĂ”imaldab teostada ristkompileerimist mis tahes arhitektuuri jaoks, kui on olemas vastav eelnevalt mÀÀratud tööriistade komplekt. fz mÀÀrab ise kompilaatori, linkeri ja arhiivija nimed antud identifikaatori (nt "arm-linux-gnueabihf-gcc") jĂ€rgi. Toetatud on kĂ”ik standardsete GNU sihtplatvormid, sealhulgas arm-linux-gnueabihf, aarch64-linux-gnu ja riscv64-linux-gnu.
  • Rakendatud on keele serveri protokolli (LSP) tugi. Lipp "-compile-commands" genereerib faili compile_commands.json (Kompileerimise andmebaas) projekti juurkaustas. Faili loevad keele- serveritega clangd ja ccls, pakkudes automaatset tĂ€iendamist, koodis navigeerimist ja diagnostikat LSP-i toetavates redaktorites (Neovim, VSCode, CLion, Emacs jne).
  • fz kĂ€sk "-update" salvestab uue versiooni enne installimist praeguse binaarfaili kausta /usr/local/bin/fz.old, mis vĂ”imaldab tagasi pöörduda eelmise versiooni juurde ilma uuesti installimiseta.
  • Parandatud viga, kus mitme katalooge hĂ”lmavates projektides sama aluss nimega failid ĂŒle kirjutasid teineteise objektifailid. Objektifailide nimed genereeritakse nĂŒĂŒd lĂ€htudes algfaili tĂ€is suhtelisest teest.
  • Teostatud interaktiivne reĆŸiim „fz -shell“ ĂŒhe failide kompileerimiseks.
  • Lisatud testkatte erinevatele kĂ€skudele SplitCommand, CmdSet ja CmdBuild. Kompilaatori paketile tehtud testide katvus tĂ”usis 17% -lt 60% -ni ning kĂ”igi pakettide katvus ĂŒletas 40%.
  • Lisatud CheckTool'i asendamise mehhanism, et testida stsenaariume, kus puudu on tööriistade komplekti komponente.

Eelmiste vÀljaannete muudatused:

  • Versioonis 1.8.0 on rakendatud staatiliste teekide kompileerimine (-type static / -lib), tagatud unikaalsus objektifailide nimede osas mitme katalooge hĂ”lmavates projektides ning parandatud ĂŒlesehitusk subsystem'i vigu, mis olid seotud „..“ tee lĂ€bimisega.
  • Versioonis 1.7.0 on lisatud paralleelne kompileerimine (-j N, 0 - automaatne tuvastamine tuumade arvu), lingija skriptide (-T) ja sisenemiskoha aadresside (-Ttext) tugi, interaktiivne reĆŸiim (fz -shell), vĂ€ljundformaadi (elf32, elf64, bin) selge valik, C++ failide (.cpp, .cc, .cxx) kompileerimine sama range hoiatuste lipuga, mis C jaoks.
  • Versioonis 1.6.0 on lisatud projekti initsialiseerimine (fz -init, loob .fz.yaml, .fzignore, README.md), bin formaadi (-format bin) tugi laadijatele ja pĂŒsivara, konfiguratsiooni vĂ€ljad libs, flags.cc, flags.asm, flags.ld.
  • Versioonis 1.5.0 on rakendatud mitme allika kataloogide (source_dirs) tugi, selged failide nimekirjad (source_files), include/exclude mallid, teekide vĂ€ljad kompilatsiooniks, fail .fzignore, mitmeastmeline konfiguratsioonifailide ĂŒhendamine.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster