An fitar da ForgeZero 1.9.0 (fz), wani kayan aiki na gina layin umarni don ayyukan da aka rubuta a cikin C, C++, da harsunan haɗaka (NASM, GAS, FASM). Kayan aikin baya buƙatar Makefile ko wasu fayilolin tsari don amfani na asali. An rubuta lambar aikin a cikin Go kuma an ba shi lasisi a ƙarƙashin lasisin MIT.
ForgeZero yana gano nau'in fayil ɗin kuma yana zaɓar ƙarshen baya da ya dace ta atomatik. Kowane fayil ɗin lamba ana tattara shi zuwa fayil ɗin abu, sannan a duba don ganin alamomin duniya guda biyu a duk abubuwan kuma a haɗa su cikin fayil guda ɗaya da za a iya aiwatarwa. Ana adana fayilolin da aka tattara kuma a sake tattara su ne kawai bayan an yi canje-canje ga fayilolin lambar da ke da alaƙa. A madadin haka, ana iya canza tsarin fayil ɗin bin diddigin fayil ɗin da sake tattarawa bayan sabunta fayil ɗin lambar.
Masu haɗa na'urorin da aka tallafa sune GCC, Clang, G++, da Clang++; masu haɗa na'urorin sune NASM, GAS, da FASM; masu haɗa na'urorin sune LD, GCC, da Clang; kuma ana tallafawa na'urar adana bayanai ta AR. Gargaɗin da ake buƙata don C da C++ sune: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Ana kunna masu tsaftace na'urorin da aka riga aka tsara na AddressSanitizer da UndefinedBehaviorSanitizer ta hanyar tsoho (ana iya kashe su da tutar -sanitize=false). Dandalin da aka tallafa sune: Linux, macOS, Windows (WSL2 kuma asalinsa na gwaji ne).
Babban canje-canje a cikin sigar 1.9.0:
- An ƙara tutar "-target" , wanda ke ba da damar haɗa kowane tsarin gini tare da kayan aikin prefix ɗin da suka dace. fz yana tantance sunayen mai tarawa, mai haɗin yanar gizo, da mai adana bayanai ta atomatik bisa ga takamaiman mai ganowa (misali, "arm-linux-gnueabihf-gcc"). Ana tallafawa duk dandamalin manufa na GNU na yau da kullun, gami da arm-linux-gnueabihf, aarch64-linux-gnu, da riscv64-linux-gnu.
- An aiwatar da tallafi ga Yarjejeniyar Sabar Harshe (LSP). Tutar "-compile-commands" tana samar da fayil ɗin compile_commands.json (Compilation Database) a cikin tushen aikin. Ana karanta fayil ɗin ta hanyar yare. sabobin clangd da ccls, suna samar da kammalawa ta atomatik, kewayawa lamba, da kuma bincike a cikin editocin da ke tallafawa LSP (Neovim, VSCode, CLion, Emacs, da sauransu).
- Umarnin fz "-update" yanzu yana adana binary na yanzu zuwa /usr/local/bin/fz.old kafin shigar da sabon sigar, wanda ke ba ku damar komawa ga sigar da ta gabata ba tare da sake sanyawa ba.
- An gyara wani kuskure a cikin ayyukan babban fayil da yawa inda fayiloli masu sunaye iri ɗaya daga ƙananan kundin adireshi daban-daban zasu sake rubuta fayilolin abu na juna. Ana samar da sunayen fayil ɗin abu bisa ga cikakken hanyar da aka bi zuwa fayil ɗin tushe.
- An aiwatar da yanayin hulɗa "fz -shell" don gina fayiloli guda ɗaya.
- An ƙara ɗaukar nauyin gwaji ga umarnin SplitCommand, CmdSet, da CmdBuild. Ƙarfin gwaji ga fakitin mahaɗin ya ƙaru daga 17% zuwa 60%, kuma ɗaukar nauyin duk fakitin ya wuce 40%.
- An ƙara tsarin maye gurbin CheckTool don gwada yanayin da ke tattare da abubuwan da suka ɓace na sarkar kayan aiki.
Canje-canje daga fitowar da ta gabata:
- Sigar 1.8.0 tana aiwatar da haɗa ɗakunan karatu masu tsauri (-type static / -lib), tana tabbatar da keɓancewar sunayen fayil ɗin abu a cikin ayyukan daraktoci da yawa, kuma tana gyara kurakurai a cikin tsarin tsarin taro da suka shafi ketare hanyar "..".
- Sigar 1.7.0 ta ƙara haɗakar bayanai a layi ɗaya (-j N, 0 - gano adadin tsakiya ta atomatik), tallafi ga rubutun mahaɗi (-T) da adiresoshin wurin shiga (-Ttext), yanayin hulɗa (fz -shell), zaɓin tsarin fitarwa a bayyane (elf32, elf64, bin), tattara fayilolin C++ (.cpp, .cc, .cxx) tare da tutocin gargaɗi iri ɗaya kamar na C.
- Sigar 1.6.0 tana ƙara fara aikin (fz -init, ƙirƙirar .fz.yaml, .fzignore, README.md), tallafin tsarin bin (-format bin) don bootloaders da firmware, da filayen daidaitawa libs, flags.cc, flags.asm, flags.ld.
- Sigar 1.5.0 tana gabatar da kundin adireshi da yawa (source_dirs), jerin fayiloli bayyanannu (source_files), tsarin haɗawa/ɓata, filin libs don ɗakunan karatu na linker, fayil ɗin .fzignore, da haɗa fayilolin tsari matakai da yawa.
source: budenet.ru
