SlÀpp av ForgeZero 1.9.0, ett byggverktyg för C och assembler

ForgeZero 1.9.0 (fz), ett kommandoradsverktyg för projekt skrivna i C, C++ och assemblersprÄk (NASM, GAS, FASM), har slÀppts. Verktyget krÀver inte en Makefile eller andra konfigurationsfiler för grundlÀggande anvÀndning. Projektkoden Àr skriven i Go och licensierad under MIT-licensen.

ForgeZero identifierar filtypen och vÀljer automatiskt lÀmplig backend. Varje kodfil kompileras till en objektfil, kontrolleras sedan för dubbletter av globala symboler i alla objekt och lÀnkas till en enda körbar fil. Kompilerade filer cachas och kompileras om endast efter att Àndringar har gjorts i de associerade kodfilerna. Alternativt Àr spÄrning av filsystemÀndringar och omkompilering möjlig efter kodfiluppdateringar.

De kompilatorer som stöds Àr GCC, Clang, G++ och Clang++; assemblers Àr NASM, GAS och FASM; lÀnkare Àr LD, GCC och Clang; och AR-arkiveraren stöds. Obligatoriska varningar för C och C++ Àr: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Saneringsverktygen AddressSanitizer och UndefinedBehaviorSanitizer Àr aktiverade som standard (de kan inaktiveras med flaggan -sanitize=false). De plattformar som stöds Àr: Linux, macOS, Windows (WSL2 och experimentellt nativt).

HuvudÀndringar i version 1.9.0:

  • Lade till flaggan "-target" , vilket möjliggör korskompilering för vilken arkitektur som helst med lĂ€mpliga prefixverktyg. fz bestĂ€mmer automatiskt namnen pĂ„ kompilatorn, lĂ€nkaren och arkiveraren baserat pĂ„ den angivna identifieraren (t.ex. "arm-linux-gnueabihf-gcc"). Alla standard GNU-mĂ„lplattformar stöds, inklusive arm-linux-gnueabihf, aarch64-linux-gnu och riscv64-linux-gnu.
  • Stöd för Language Server Protocol (LSP) har implementerats. Flaggan "-compile-commands" genererar en compile_commands.json-fil (kompileringsdatabas) i projektets rot. Filen lĂ€ses av sprĂ„ket. servrar clangd och ccls, som tillhandahĂ„ller autokomplettering, kodnavigering och diagnostik i editorer som stöder LSP (Neovim, VSCode, CLion, Emacs, etc.).
  • Kommandot fz "-update" sparar nu den aktuella binĂ€rfilen till /usr/local/bin/fz.old innan en ny version installeras, vilket gör att du kan Ă„terstĂ€lla till den tidigare versionen utan att installera om den.
  • ÅtgĂ€rdade ett fel i projekt med flera kataloger dĂ€r filer med identiska basnamn frĂ„n olika underkataloger skrev över varandras objektfiler. Objektfilnamn genereras nu baserat pĂ„ den fullstĂ€ndiga relativa sökvĂ€gen till kĂ€llfilen.
  • Implementerade interaktivt lĂ€ge "fz -shell" för att bygga enskilda filer.
  • TesttĂ€ckning har lagts till för kommandona SplitCommand, CmdSet och CmdBuild. TesttĂ€ckningen för lĂ€nkarpaketet har ökat frĂ„n 17 % till 60 %, och tĂ€ckningen för alla paket har överstigit 40 %.
  • Lade till en CheckTool-ersĂ€ttningsmekanism för testscenarier med saknade verktygskedjekomponenter.

Ändringar frĂ„n tidigare utgĂ„vor:

  • Version 1.8.0 implementerar assemblering av statiska bibliotek (-type static / -lib), sĂ€kerstĂ€ller unikheten hos objektfilnamn i projekt med flera direktörer och Ă„tgĂ€rdar fel i assemblersystemet relaterade till genomkörningen av sökvĂ€gen "..".
  • Version 1.7.0 lĂ€gger till parallell kompilering (-j N, 0 — automatisk detektering av antalet kĂ€rnor), stöd för lĂ€nkskript (-T) och startpunktsadresser (-Ttext), interaktivt lĂ€ge (fz -shell), explicit val av utdataformat (elf32, elf64, bin), kompilering av C++-filer (.cpp, .cc, .cxx) med samma strikta varningsflaggor som för C.
  • Version 1.6.0 lĂ€gger till projektinitialisering (fz -init, skapar .fz.yaml, .fzignore, README.md), stöd för bin-format (-format bin) för bootloaders och firmware, och konfigurationsfĂ€lt libs, flags.cc, flags.asm, flags.ld.
  • Version 1.5.0 introducerar flera kĂ€llkataloger (source_dirs), explicita fillistor (source_files), inkluderings-/exkluderingsmönster, ett libs-fĂ€lt för lĂ€nkarbibliotek, .fzignore-filen och flernivĂ„sammanslagning av konfigurationsfiler.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster