Pelepasan ForgeZero 1.9.0, alat pangwangun pikeun C sareng assembler

ForgeZero 1.9.0 (fz), alat ngawangun baris paréntah pikeun proyék anu ditulis dina C, C++, sareng basa assembly (NASM, GAS, FASM), parantos dirilis. Alat ieu henteu meryogikeun Makefile atanapi file konfigurasi sanés pikeun panggunaan dasar. Kode proyék ditulis dina Go sareng dilisensikeun dina lisénsi MIT.

ForgeZero ngadeteksi jinis file sareng sacara otomatis milih backend anu pas. Unggal file kode dikompilasi kana file objék, teras dipariksa pikeun simbol global duplikat di sakumna objék sareng dihubungkeun kana hiji file anu tiasa dieksekusi. File anu dikompilasi disimpen dina cache sareng dikompilasi ulang ngan saatos parobihan dilakukeun kana file kode anu aya hubunganana. Sacara opsional, pelacakan parobahan sistem file sareng kompilasi ulang tiasa dilakukeun saatos apdet file kode.

Kompiler anu dirojong nyaéta GCC, Clang, G++, sareng Clang++; assembler nyaéta NASM, GAS, sareng FASM; linker nyaéta LD, GCC, sareng Clang; sareng pangarsipan AR dirojong. Peringatan wajib pikeun C sareng C++ nyaéta: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Sanitizer AddressSanitizer sareng UndefinedBehaviorSanitizer diaktipkeun sacara standar (aranjeunna tiasa dinonaktipkeun nganggo tanda -sanitize=false). Platform anu dirojong nyaéta: Linux, macOS, Windows (WSL2 sareng asli sacara ékspériméntal).

Parobahan utama dina versi 1.9.0:

  • Ditambahkeun bendera "-target" , anu ngamungkinkeun kompilasi silang pikeun arsitéktur naon waé nganggo alat awalan anu pas. fz sacara otomatis nangtukeun nami kompiler, pangiket, sareng pangarsipan dumasar kana idéntifikasi anu ditangtukeun (contona, "arm-linux-gnueabihf-gcc"). Sadaya platform target GNU standar dirojong, kalebet arm-linux-gnueabihf, aarch64-linux-gnu, sareng riscv64-linux-gnu.
  • Pangrojong pikeun Protokol Server Basa (LSP) parantos diimplementasikeun. Bendera "-compile-commands" ngahasilkeun file compile_commands.json (Database Kompilasi) dina root proyék. File ieu dibaca ku basa. server clangd sareng ccls, nyayogikeun autocompletion, navigasi kode, sareng diagnostik dina éditor anu ngadukung LSP (Neovim, VSCode, CLion, Emacs, jsb.).
  • Paréntah fz "-update" ayeuna nyimpen binér ayeuna ka /usr/local/bin/fz.old sateuacan masang vérsi anyar, ngamungkinkeun anjeun pikeun mulang deui ka vérsi sateuacana tanpa kedah masang deui.
  • Bug dina proyék multi-diréktori parantos dibenerkeun dimana file kalayan nami dasar anu sami ti subdiréktori anu béda bakal silih nimpa file objék anu sanés. Nami file objék ayeuna dihasilkeun dumasar kana jalur relatif lengkep ka file sumber.
  • Modeu interaktif "fz -shell" parantos diimplementasikeun pikeun ngawangun file tunggal.
  • Jangkauan tés parantos ditambahkeun pikeun paréntah SplitCommand, CmdSet, sareng CmdBuild. Jangkauan tés pikeun pakét linker parantos ningkat ti 17% janten 60%, sareng jangkauan pikeun sadaya pakét parantos ngaleuwihan 40%.
  • Nambahkeun mékanisme panggantian CheckTool pikeun nguji skénario kalayan komponén toolchain anu leungit.

Parobahan tina rilis sateuacanna:

  • Versi 1.8.0 ngalaksanakeun perakitan pustaka statis (tipe-statik / -lib), mastikeun kaunikan nami file objék dina proyék multi-diréktur, sareng ngalereskeun kasalahan dina subsistem perakitan anu aya hubunganana sareng traversal jalur "..".
  • Versi 1.7.0 nambihan kompilasi paralel (-j N, 0 — deteksi otomatis jumlah inti), dukungan pikeun skrip linker (-T) sareng alamat titik éntri (-Ttext), modeu interaktif (fz -shell), pilihan format kaluaran anu éksplisit (elf32, elf64, bin), kompilasi file C++ (.cpp, .cc, .cxx) kalayan umbul-umbul peringatan anu sami sareng pikeun C.
  • Versi 1.6.0 nambihan inisialisasi proyék (fz -init, nyiptakeun .fz.yaml, .fzignore, README.md), dukungan format bin (-format bin) pikeun bootloader sareng firmware, sareng widang konfigurasi libs, flags.cc, flags.asm, flags.ld.
  • Versi 1.5.0 ngenalkeun sababaraha diréktori sumber (source_dirs), daptar file eksplisit (source_files), pola include/exclude, widang libs pikeun perpustakaan linker, file .fzignore, sareng panggabungan file konfigurasi multi-level.

sumber: opennet.ru

Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster