Keluaran ForgeZero 1.9.0, alat binaan untuk C dan assembler

ForgeZero 1.9.0 (fz), alat binaan baris arahan untuk projek yang ditulis dalam C, C++ dan bahasa pemasangan (NASM, GAS, FASM), telah dikeluarkan. Alat ini tidak memerlukan Makefile atau fail konfigurasi lain untuk kegunaan asas. Kod projek ditulis dalam Go dan dilesenkan di bawah lesen MIT.

ForgeZero mengesan jenis fail dan memilih backend yang sesuai secara automatik. Setiap fail kod dikompilasi ke dalam fail objek, kemudian diperiksa untuk simbol global pendua merentasi semua objek dan dipautkan ke dalam fail boleh laku tunggal. Fail yang dikompilasi disimpan dalam cache dan dikompilasi semula hanya selepas perubahan dibuat pada fail kod yang berkaitan. Secara pilihan, penjejakan dan penyusunan semula perubahan sistem fail boleh dilakukan selepas kemas kini fail kod.

Pengkompil yang disokong ialah GCC, Clang, G++ dan Clang++; penghimpun ialah NASM, GAS dan FASM; penghubung ialah LD, GCC dan Clang; dan pengarkib AR disokong. Amaran mandatori untuk C dan C++ ialah: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Pembersih AddressSanitizer dan UndefinedBehaviorSanitizer diaktifkan secara lalai (ia boleh dinyahdayakan dengan bendera -sanitize=false). Platform yang disokong ialah: Linux, macOS, Windows (WSL2 dan asli secara eksperimen).

Основные изменения версии 1.9.0:

  • Menambah bendera "-target" , yang membolehkan penyusunan silang untuk sebarang seni bina dengan alat awalan yang sesuai. fz secara automatik menentukan nama pengkompil, penghubung dan pengarkib berdasarkan pengecam yang ditentukan (cth., "arm-linux-gnueabihf-gcc"). Semua platform sasaran GNU standard disokong, termasuk arm-linux-gnueabihf, aarch64-linux-gnu dan riscv64-linux-gnu.
  • Sokongan untuk Protokol Pelayan Bahasa (LSP) telah dilaksanakan. Bendera "-compile-commands" menjana fail compile_commands.json (Pangkalan Data Penyusunan) dalam root projek. Fail dibaca mengikut bahasa pelayan clangd dan ccls, menyediakan pelengkapan automatik, navigasi kod dan diagnostik dalam editor yang menyokong LSP (Neovim, VSCode, CLion, Emacs, dll.).
  • Arahan "-update" fz kini menyimpan binari semasa ke /usr/local/bin/fz.old sebelum memasang versi baharu, membolehkan anda kembali ke versi sebelumnya tanpa memasang semula.
  • Telah membetulkan pepijat dalam projek berbilang direktori di mana fail dengan nama asas yang sama daripada subdirektori yang berbeza akan menulis ganti fail objek antara satu sama lain. Nama fail objek kini dijana berdasarkan laluan relatif penuh ke fail sumber.
  • Mod interaktif "fz -shell" yang dilaksanakan untuk membina fail tunggal.
  • Liputan ujian telah ditambah untuk arahan SplitCommand, CmdSet dan CmdBuild. Liputan ujian untuk pakej penghubung telah meningkat daripada 17% kepada 60% dan liputan untuk semua pakej telah melebihi 40%.
  • Menambah mekanisme penggantian CheckTool untuk menguji senario dengan komponen rantai alat yang hilang.

Perubahan daripada keluaran terdahulu:

  • Versi 1.8.0 melaksanakan pemasangan pustaka statik (jenis-statik / -lib), memastikan keunikan nama fail objek dalam projek berbilang pengarah dan membetulkan ralat dalam subsistem pemasangan yang berkaitan dengan perjalanan laluan "..".
  • Versi 1.7.0 menambah kompilasi selari (-j N, 0 — pengesanan automatik bilangan teras), sokongan untuk skrip penghubung (-T) dan alamat titik masuk (-Ttext), mod interaktif (fz -shell), pemilihan format output yang eksplisit (elf32, elf64, bin), kompilasi fail C++ (.cpp, .cc, .cxx) dengan bendera amaran ketat yang sama seperti untuk C.
  • Versi 1.6.0 menambah permulaan projek (fz -init, mencipta .fz.yaml, .fzignore, README.md), sokongan format bin (-format bin) untuk pemuat but dan firmware, dan medan konfigurasi libs, flags.cc, flags.asm, flags.ld.
  • Versi 1.5.0 memperkenalkan berbilang direktori sumber (source_dirs), senarai fail eksplisit (source_files), corak sertakan/kecualikan, medan libs untuk pustaka penghubung, fail .fzignore dan penggabungan fail konfigurasi berbilang peringkat.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster