Lëshimi i ForgeZero 1.9.0, një mjet ndërtimi për C dhe assembler

Lëshimi i ForgeZero 1.9.0 (fz), një mjet konsolë për ndërtimin e projekteve në C, C++ dhe assembler (NASM, GAS, FASM) është publik. Ky mjet nuk kërkon krijimin e një Makefile apo ndonjë skedari tjetër konfigurimi për përdorim bazë. Kodi i projektit është shkruar në Go dhe shpërndahet nën licencën MIT.

ForgeZero pĂ«rcakton llojin e skedarit dhe zgjidh automatikisht backend-in e nevojshĂ«m. Çdo skedar me kod grumbullohet nĂ« njĂ« skedar objekt, pas sĂ« cilĂ«s kryhet kontrolli i simboleve globale tĂ« dyfishta nĂ« tĂ« gjithĂ« objektet dhe bĂ«het lidhja nĂ« njĂ« skedar ekzekutiv tĂ« vetĂ«m. Skedaret e kompiluara ruhen nĂ« cache dhe ripĂ«rtĂ«rihen vetĂ«m pas ndryshimeve nĂ« skedarĂ«t pĂ«rkatĂ«s me kod. ËshtĂ« e mundur tĂ« ndiqet opsionalisht ndryshimi nĂ« sistemin e skedarĂ«ve dhe tĂ« ripĂ«rtĂ«rihen pas pĂ«rditĂ«simit tĂ« skedarĂ«ve me kod.

Përkrahja e kompilerëve GCC, Clang, G++, Clang++; assembler-ëve NASM, GAS, FASM; linkuesve LD, GCC, Clang; arkivuesit AR. Paralajmërimet e detyrueshme për C dhe C++: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Në mënyrë të paracaktuar janë aktivizuar sanitizatorët AddressSanitizer dhe UndefinedBehaviorSanitizer (çaktivizohen me flag-un -sanitize=false). Përkrahja e platformave Linux, macOS, Windows (WSL2 dhe eksperimentalisht në mënyrë natyrale).

Ndryshimet kryesore në versionin 1.9.0:

  • Shtuar flag-un "-target" , i cili lejon kryerjen e ndĂ«rtimit tĂ« kryqĂ«zuar pĂ«r arkitekturĂ«n e dĂ«shiruar, nĂ«se ka mjetet pĂ«rkatĂ«se tĂ« paraprakisĂ«. fz e pĂ«rcakton vetĂ« emrat e kompilerit, linkuesit dhe arkivuesit sipas identifikuesit tĂ« dhĂ«nĂ« (p.sh., "arm-linux-gnueabihf-gcc"). PĂ«rkrahja pĂ«r çdo platformĂ« standarde tĂ« target-it GNU, pĂ«rfshirĂ« arm-linux-gnueabihf, aarch64-linux-gnu dhe riscv64-linux-gnu.
  • Implementuar mbĂ«shtetje pĂ«r protokollin LSP (Language Server Protocol). Flag-u "-compile-commands" gjeneron skedarin compile_commands.json (Database e Kompilimit) nĂ« rrĂ«njĂ«n e projektit. Skedari lexohen nga gjuhĂ«t serverĂ« clangd dhe ccls, duke siguruar funksionimin e autokompelimit, navigimit nĂ« kod dhe diagnostikĂ«s nĂ« redaktorĂ«t qĂ« mbĂ«shtesin LSP (Neovim, VSCode, CLion, Emacs etj.).
  • Komanda fz "-update" para instalimit tĂ« versionit tĂ« ri tani ruan skedarin ekzistues binaries nĂ« /usr/local/bin/fz.old, duke lejuar kthimin pas nĂ« versionin e mĂ«parshĂ«m pa e ribĂ«rĂ« instalimin.
  • Korrigjimi i njĂ« gabimi nĂ« projektet me shumĂ« direktorĂ« ku skedarĂ«t me emra bazĂ« tĂ« njĂ«jtĂ« nga nĂ«n-drejtorĂ«t e ndryshĂ«m mbi-shkruanin skedarĂ«t objektiv tĂ« njĂ«ri-tjetrit. Emrat e skedarĂ«ve objektiv tani formohen nĂ« bazĂ« tĂ« rrugĂ«s relative tĂ« plotĂ« tĂ« skedarit burimor.
  • Implementimi i modit interaktiv «fz -shell» pĂ«r pĂ«rbĂ«rjen e skedarĂ«ve tĂ« vetĂ«m.
  • Shtuar mbulimi me teste pĂ«r komandat SplitCommand, CmdSet dhe CmdBuild. Mbulimi me teste i paketĂ«s sĂ« lidhĂ«sit Ă«shtĂ« rritur nga 17% nĂ« 60%, ndĂ«rsa mbulimi i tĂ« gjithĂ« paketave ka kaluar 40%.
  • Shtuar mekanizmi i zĂ«vendĂ«simit CheckTool pĂ«r testimin e skenarĂ«ve pa komponentĂ« tĂ« zinxhirĂ«ve tĂ« veglave.

Ndryshimet në versionet e mëparshme:

  • NĂ« versionin 1.8.0 Ă«shtĂ« implementuar ndĂ«rtimi i bibliotekave statike (-type static / -lib), Ă«shtĂ« siguruar unikiteti i emrave tĂ« skedarĂ«ve objektiv nĂ« projektet me shumĂ« direktorĂ«, janĂ« rregulluar gabimet nĂ« nĂ«n-sistemin e ndĂ«rtimit qĂ« lidhen me kalimin e rrugĂ«ve «..».
  • NĂ« versionin 1.7.0 Ă«shtĂ« shtuar kompilimi paralel (-j N, 0 — auto-shkenca e numrit tĂ« bĂ«rthameve), mbĂ«shtetje pĂ«r skriptet e lidhĂ«sit (-T) dhe adresat e pikĂ«s sĂ« hyrjes (-Ttext), moda interaktive (fz -shell), zgjedhje e qartĂ« e formatit tĂ« daljes (elf32, elf64, bin), kompiliimi i skedarĂ«ve C++ (.cpp, .cc, .cxx) me tĂ« njĂ«jtat flagje tĂ« rrepta paralajmĂ«rimi si pĂ«r C.
  • NĂ« versionin 1.6.0 janĂ« shtuar inicializimi i projektit (fz -init, krijon .fz.yaml, .fzignore, README.md), mbĂ«shtetje pĂ«r formatin bin (-format bin) pĂ«r ngarkuesit dhe firmware, fushat konfiguruese libs, flags.cc, flags.asm, flags.ld.
  • NĂ« versionin 1.5.0 janĂ« realizuar direktori tĂ« shumta burimesh (source_dirs), lista tĂ« qarta skedari (source_files), shabllone pĂ«r pĂ«rfshirje / pĂ«rjashtim, fusha libs pĂ«r bibliotekat e lidhĂ«sve, skedari .fzignore, bashkimi multi-niveli i skedarĂ«ve konfiguruese.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster