Navoaka ny ForgeZero 1.9.0 (fz), fitaovana fanamboarana baiko ho an'ny tetikasa nosoratana tamin'ny C, C++, ary fiteny fivoriambe (NASM, GAS, FASM). Tsy mila Makefile na rakitra fikirakirana hafa ity fitaovana ity amin'ny fampiasana fototra. Voasoratra amin'ny Go ny kaody tetikasa ary nahazo alalana avy amin'ny MIT.
Mahita ny karazana rakitra ny ForgeZero ary mifantina ho azy ny backend mety. Angonina ao anaty rakitra zavatra ny rakitra kaody tsirairay, avy eo dia jerena raha misy marika manerantany miverimberina amin'ny zavatra rehetra ary ampifandraisina ao anaty rakitra azo ampiasaina tokana. Tehirizina ao amin'ny cache sy averina angonina ireo rakitra nangonina rehefa avy misy fanovana natao tamin'ireo rakitra kaody mifandraika amin'izany. Raha azo atao, azo atao ny manara-maso ny fiovan'ny rafitry ny rakitra sy ny fanangonana indray aorian'ny fanavaozana ny rakitra kaody.
Ireo "compiler" tohana dia GCC, Clang, G++, ary Clang++; ireo "assembler" dia NASM, GAS, ary FASM; ireo "linkers" dia LD, GCC, ary Clang; ary tohana ny "AR archiver". Ireo fampitandremana tsy maintsy atao ho an'ny C sy C++ dia: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Ireo "sanitizer" AddressSanitizer sy UndefinedBehaviorSanitizer dia alefa amin'ny alàlan'ny default (azo vonoina amin'ny alàlan'ny -sanitize=false flag) izy ireo). Ireto ireo sehatra tohana: Linux, macOS, Windows (WSL2 ary teratany andrana).
Fiovana lehibe amin'ny version 1.9.0:
- Nampiana saina "-target" , izay ahafahana manao "cross-compilation" ho an'ny maritrano rehetra miaraka amin'ireo fitaovana prefix mety. Ny fz dia mamaritra ho azy ny anaran'ny "compiler", "linker", ary "archiver" mifototra amin'ny famantarana voafaritra (oh: "arm-linux-gnueabihf-gcc"). Tohanana avokoa ny sehatra GNU mahazatra rehetra, anisan'izany ny arm-linux-gnueabihf, aarch64-linux-gnu, ary riscv64-linux-gnu.
- Nampiharina ny fanohanana ny Language Server Protocol (LSP). Ny marika "-compile-commands" dia mamorona rakitra compile_commands.json (Compilation Database) ao amin'ny fototry ny tetikasa. Vakiana araka ny fiteny ny rakitra. LOHAMILINA clangd sy ccls, izay manome autocompletion, code navigation, ary diagnostics ao amin'ny editors izay manohana ny LSP (Neovim, VSCode, CLion, Emacs, sns.).
- Ny baiko fz "-update" dia mitahiry ny binary ankehitriny ao amin'ny /usr/local/bin/fz.old alohan'ny hametrahana dikan-teny vaovao, ahafahanao miverina amin'ny dikan-teny teo aloha tsy mila mametraka indray.
- Nanamboatra bibikely tao amin'ny tetikasa "multi-directory" izay ahafahan'ny rakitra mitovy anarana avy amin'ny "subdirectories" samihafa manoratra ny rakitra "object"-n'ny tsirairay. Ny anaran'ny rakitra "object" dia foronina mifototra amin'ny lalana feno mankany amin'ny rakitra loharano.
- Nampiharina ny fomba fiasa "fz -shell" ifandrimbonana ho an'ny fananganana rakitra tokana.
- Nampiana fandrakofana fitsapana ho an'ny baiko SplitCommand, CmdSet, ary CmdBuild. Nitombo avy amin'ny 17% ka hatramin'ny 60% ny fandrakofana fitsapana ho an'ny fonosana rohy, ary nihoatra ny 40% ny fandrakofana ho an'ny fonosana rehetra.
- Nanampy rafitra fanoloana CheckTool ho an'ny fitsapana toe-javatra misy singa toolchain tsy hita.
Fiovana avy amin'ny famoahana teo aloha:
- Ny Version 1.8.0 dia mampihatra ny fanangonana tranomboky statika (-type static / -lib), miantoka ny maha-tokana ny anaran'ny rakitra zavatra ao amin'ny tetikasa multi-director, ary manamboatra ny lesoka ao amin'ny subsystem fanangonana mifandraika amin'ny fandehanana amin'ny lalana "..".
- Ny Version 1.7.0 dia manampy fanangonana parallèle (-j N, 0 — famantarana mandeha ho azy ny isan'ny cores), fanohanana ny script linker (-T) sy ny adiresy fidirana (-Ttext), fomba interactive (fz -shell), fisafidianana mazava ny endrika famoahana (elf32, elf64, bin), fanangonana rakitra C++ (.cpp, .cc, .cxx) miaraka amin'ny saina fampitandremana henjana mitovy amin'ny an'ny C.
- Ny Version 1.6.0 dia manampy ny fanombohana tetikasa (fz -init, mamorona .fz.yaml, .fzignore, README.md), fanohanana ny endrika bin (-format bin) ho an'ny bootloaders sy firmware, ary saha fikirakirana libs, flags.cc, flags.asm, flags.ld.
- Ny Version 1.5.0 dia mampiditra lahatahiry loharano maromaro (source_dirs), lisitry ny rakitra mazava (source_files), lamina include/exclude, saha libs ho an'ny tranomboky linker, ny rakitra .fzignore, ary fampivondronana rakitra fikirakirana amin'ny ambaratonga maro.
Source: opennet.ru
