Rilis ForgeZero 1.9.0, piranti pambangunan kanggo C lan assembler

ForgeZero 1.9.0 (fz), piranti lunak mbangun baris perintah kanggo proyek sing ditulis nganggo C, C++, lan basa rakitan (NASM, GAS, FASM), wis dirilis. Piranti iki ora mbutuhake Makefile utawa file konfigurasi liyane kanggo panggunaan dhasar. Kode proyek ditulis nganggo Go lan dilisensi miturut lisensi MIT.

ForgeZero ndeteksi jinis file lan kanthi otomatis milih backend sing cocog. Saben file kode dikompilasi dadi file objek, banjur dicenthang simbol global duplikat ing kabeh objek lan disambungake menyang file sing bisa dieksekusi siji. File sing dikompilasi disimpen ing cache lan dikompilasi maneh mung sawise pangowahan digawe ing file kode sing gegandhengan. Opsional, pelacakan pangowahan sistem file lan kompilasi maneh bisa ditindakake sawise nganyari file kode.

Kompiler sing didhukung yaiku GCC, Clang, G++, lan Clang++; assembler yaiku NASM, GAS, lan FASM; linker yaiku LD, GCC, lan Clang; lan pengarsipan AR didhukung. Peringatan wajib kanggo C lan C++ yaiku: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Sanitizer AddressSanitizer lan UndefinedBehaviorSanitizer diaktifake kanthi standar (bisa dipateni nganggo tandha -sanitize=false). Platform sing didhukung yaiku: Linux, macOS, Windows (WSL2 lan asli sacara eksperimental).

Owah-owahan utama ing versi 1.9.0:

  • Gendéra "-target" ditambahake , sing ngaktifake kompilasi silang kanggo arsitektur apa wae nganggo alat prefiks sing cocog. fz kanthi otomatis nemtokake jeneng kompiler, penghubung, lan pengarsip adhedhasar pengenal sing ditemtokake (contone, "arm-linux-gnueabihf-gcc"). Kabeh platform target GNU standar didhukung, kalebu arm-linux-gnueabihf, aarch64-linux-gnu, lan riscv64-linux-gnu.
  • Dhukungan kanggo Protokol Server Basa (LSP) wis dileksanakake. Tandha "-compile-commands" ngasilake file compile_commands.json (Basis Data Kompilasi) ing root proyek. File kasebut diwaca miturut basa. server clangd lan ccls, nyedhiyakake autocompletion, navigasi kode, lan diagnostik ing editor sing ndhukung LSP (Neovim, VSCode, CLion, Emacs, lan liya-liyane).
  • Perintah "-update" fz saiki nyimpen binar saiki menyang /usr/local/bin/fz.old sadurunge nginstal versi anyar, saengga sampeyan bisa bali menyang versi sadurunge tanpa nginstal maneh.
  • Ndandani bug ing proyèk multi-direktori ing ngendi file kanthi jeneng dhasar sing padha saka subdirektori sing béda bakal nimpa file obyek siji lan sijiné. Jeneng file obyek saiki digawe adhedhasar path relatif lengkap menyang file sumber.
  • Mode interaktif "fz -shell" wis diimplementasikake kanggo mbangun file tunggal.
  • Jangkoan tes wis ditambahake kanggo printah SplitCommand, CmdSet, lan CmdBuild. Jangkoan tes kanggo paket linker wis tambah saka 17% dadi 60%, lan jangkoan kanggo kabeh paket wis ngluwihi 40%.
  • Nambahake mekanisme panggantos CheckTool kanggo nguji skenario karo komponen toolchain sing ilang.

Owah-owahan saka rilis sadurunge:

  • Versi 1.8.0 ngleksanakake perakitan pustaka statis (tipe-static / -lib), njamin keunikan jeneng file objek ing proyek multi-direktur, lan ndandani kesalahan ing subsistem perakitan sing ana gandhengane karo traversal jalur "..".
  • Versi 1.7.0 nambahake kompilasi paralel (-j N, 0 — deteksi otomatis jumlah inti), dhukungan kanggo skrip linker (-T) lan alamat titik entri (-Ttext), mode interaktif (fz -shell), pilihan format output sing eksplisit (elf32, elf64, bin), kompilasi file C++ (.cpp, .cc, .cxx) kanthi tandha peringatan sing padha karo C.
  • Versi 1.6.0 nambahake inisialisasi proyèk (fz -init, nggawé .fz.yaml, .fzignore, README.md), dhukungan format bin (-format bin) kanggo bootloader lan firmware, lan kolom konfigurasi libs, flags.cc, flags.asm, flags.ld.
  • Versi 1.5.0 ngenalake pirang-pirang direktori sumber (source_dirs), dhaptar file eksplisit (source_files), pola kalebu/ora kalebu, kolom libs kanggo perpustakaan linker, file .fzignore, lan penggabungan file konfigurasi multi-level.

Source: opennet.ru

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster