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

ForgeZero 1.9.0 (fz), një mjet ndërtimi në linjë komandash për projekte të shkruara në C, C++ dhe gjuhë assembly (NASM, GAS, FASM), është publikuar. Mjeti nuk kërkon një Makefile ose skedarë të tjerë konfigurimi për përdorim bazë. Kodi i projektit është shkruar në Go dhe është i licencuar sipas licencës MIT.

ForgeZero zbulon llojin e skedarit dhe zgjedh automatikisht backend-in e duhur. Çdo skedar kodi kompilohet nĂ« njĂ« skedar objekti, pastaj kontrollohet pĂ«r simbole globale tĂ« dyfishta nĂ« tĂ« gjitha objektet dhe lidhet nĂ« njĂ« skedar tĂ« vetĂ«m ekzekutues. SkedarĂ«t e kompiluar ruhen nĂ« memorje dhe rikompilohen vetĂ«m pasi tĂ« bĂ«hen ndryshime nĂ« skedarĂ«t e kodit tĂ« shoqĂ«ruar. Opsionale, gjurmimi i ndryshimeve tĂ« sistemit tĂ« skedarĂ«ve dhe rikompilimi janĂ« tĂ« mundura pas pĂ«rditĂ«simeve tĂ« skedarĂ«ve tĂ« kodit.

Kompiluesit e mbështetur janë GCC, Clang, G++ dhe Clang++; asamblerët janë NASM, GAS dhe FASM; lidhësit janë LD, GCC dhe Clang; dhe arkivuesi AR mbështetet. Paralajmërimet e detyrueshme për C dhe C++ janë: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Sanitizuesit AddressSanitizer dhe UndefinedBehaviorSanitizer janë të aktivizuar si parazgjedhje (ato mund të çaktivizohen me flamurin -sanitize=false). Platformat e mbështetura janë: Linux, macOS, Windows (WSL2 dhe eksperimentalisht vendas).

Ndryshimet kryesore në versionin 1.9.0:

  • U shtua flamuri "-target" , i cili mundĂ«son pĂ«rpilimin e kryqĂ«zuar pĂ«r çdo arkitekturĂ« me mjetet e duhura tĂ« prefiksit. fz pĂ«rcakton automatikisht emrat e pĂ«rpiluesit, lidhĂ«sit dhe arkivuesit bazuar nĂ« identifikuesin e specifikuar (p.sh., "arm-linux-gnueabihf-gcc"). MbĂ«shteten tĂ« gjitha platformat standarde tĂ« synuara GNU, duke pĂ«rfshirĂ« arm-linux-gnueabihf, aarch64-linux-gnu dhe riscv64-linux-gnu.
  • ËshtĂ« zbatuar mbĂ«shtetje pĂ«r Protokollin e Serverit tĂ« GjuhĂ«s (LSP). Flamuri "-compile-commands" gjeneron njĂ« skedar compile_commands.json (Baza e tĂ« DhĂ«nave tĂ« Kompilimit) nĂ« rrĂ«njĂ«n e projektit. Skedari lexohet nga gjuha. serverat clangd dhe ccls, duke ofruar plotĂ«sim automatik, navigim kodi dhe diagnostikim nĂ« redaktorĂ« qĂ« mbĂ«shtesin LSP (Neovim, VSCode, CLion, Emacs, etj.).
  • Komanda fz "-update" tani e ruan skedarin binar aktual nĂ« /usr/local/bin/fz.old para instalimit tĂ« njĂ« versioni tĂ« ri, duke ju lejuar tĂ« riktheheni nĂ« versionin e mĂ«parshĂ«m pa e riinstaluar.
  • U rregullua njĂ« gabim nĂ« projektet me shumĂ« drejtori ku skedarĂ«t me emra bazĂ« identikĂ« nga nĂ«ndrejtori tĂ« ndryshme do tĂ« mbishkruanin skedarĂ«t e objekteve tĂ« njĂ«ri-tjetrit. Emrat e skedarĂ«ve tĂ« objekteve tani gjenerohen bazuar nĂ« rrugĂ«n e plotĂ« relative drejt skedarit burimor.
  • U implementua modaliteti interaktiv "fz -shell" pĂ«r ndĂ«rtimin e skedarĂ«ve tĂ« vetĂ«m.
  • Mbulimi i testimit Ă«shtĂ« shtuar pĂ«r komandat SplitCommand, CmdSet dhe CmdBuild. Mbulimi i testimit pĂ«r paketĂ«n lidhĂ«se Ă«shtĂ« rritur nga 17% nĂ« 60% dhe mbulimi pĂ«r tĂ« gjitha paketat ka tejkaluar 40%.
  • U shtua njĂ« mekanizĂ«m zĂ«vendĂ«simi i CheckTool pĂ«r testimin e skenarĂ«ve me komponentĂ« tĂ« munguar tĂ« zinxhirit tĂ« mjeteve.

Ndryshimet nga versionet e mëparshme:

  • Versioni 1.8.0 zbaton montimin e bibliotekave statike (-tipi statik / -lib), siguron unikalitetin e emrave tĂ« skedarĂ«ve tĂ« objekteve nĂ« projektet me shumĂ« drejtues dhe rregullon gabimet nĂ« nĂ«nsistemin e montimit qĂ« lidhen me pĂ«rshkimin e shtegut ".."
  • Versioni 1.7.0 shton kompilimin paralel (-j N, 0 — zbulim automatik i numrit tĂ« bĂ«rthamave), mbĂ«shtetje pĂ«r skriptet e lidhĂ«sve (-T) dhe adresat e pikave tĂ« hyrjes (-Ttext), modalitetin interaktiv (fz -shell), pĂ«rzgjedhjen e qartĂ« tĂ« formatit tĂ« daljes (elf32, elf64, bin), kompilimin e skedarĂ«ve C++ (.cpp, .cc, .cxx) me tĂ« njĂ«jtat flamuj paralajmĂ«rues tĂ« rreptĂ« si pĂ«r C.
  • Versioni 1.6.0 shton inicializimin e projektit (fz -init, krijon .fz.yaml, .fzignore, README.md), mbĂ«shtetje pĂ«r formatin bin (-format bin) pĂ«r ngarkuesit e nisjes dhe firmware-in, si dhe fushat e konfigurimit libs, flags.cc, flags.asm, flags.ld.
  • Versioni 1.5.0 prezanton drejtori tĂ« shumĂ«fishta burimore (source_dirs), lista tĂ« qarta skedarĂ«sh (source_files), modele pĂ«rfshirjeje/pĂ«rjashtimi, njĂ« fushĂ« libs pĂ«r libraritĂ« lidhĂ«se, skedarin .fzignore dhe bashkim shumĂ«nivelĂ«sh tĂ« skedarĂ«ve tĂ« konfigurimit.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster