Mwepụta nke ForgeZero 1.9.0, ngwa ọrụ maka C na onye na-achịkọta ihe

E wepụtala ForgeZero 1.9.0 (fz), ngwa ọrụ iwu maka ọrụ ndị e dere na C, C++, na asụsụ mgbakọ (NASM, GAS, FASM). Ngwaọrụ a achọghị Makefile ma ọ bụ faịlụ nhazi ndị ọzọ maka ojiji nkịtị. Edere koodu ọrụ ahụ na Go ma nwee ikike n'okpuru ikike MIT.

ForgeZero na-achọpụta ụdị faịlụ ahụ ma na-ahọrọ azụ kwesịrị ekwesị na akpaghị aka. A na-achịkọta faịlụ koodu ọ bụla n'ime faịlụ ihe, wee lelee maka akara ngosi zuru ụwa ọnụ abụọ n'ofe ihe niile ma jikọọ ya na otu faịlụ a na-emezu. A na-echekwa ma na-achịkọta faịlụ ndị a chịkọtara naanị mgbe emechara mgbanwe na faịlụ koodu ndị metụtara ya. Nhọrọ, mgbanwe sistemụ faịlụ na nchịkọta ọzọ ga-ekwe omume mgbe emelitere faịlụ koodu.

Ndị na-eme ihe nhazi ndị a na-akwado bụ GCC, Clang, G++, na Clang++; ndị na-eme ihe nhazi bụ NASM, GAS, na FASM; ndị na-ejikọ bụ LD, GCC, na Clang; a na-akwadokwa AR archiver. Ịdọ aka ná ntị dị mkpa maka C na C++ bụ: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". A na-arụ ọrụ ndị na-ehicha ihe nhicha AddressSanitizer na UndefinedBehaviorSanitizer site na ndabara (enwere ike gbanyụọ ha site na -sanitize=false flag). Ngwugwu ndị a na-akwado bụ: Linux, macOS, Windows (WSL2 ma bụrụ nke e si na nnwale mee).

Isi mgbanwe na ụdị 1.9.0:

  • Agbakwunyere ọkọlọtọ "-target" , nke na-enye ohere ịhazi usoro nhazi ọ bụla site na iji ngwaọrụ prefix kwesịrị ekwesị. fz na-ekpebi aha nke onye na-eme ihe nchịkọta, onye na-ejikọ, na onye na-edebe ihe ndekọ na akpaghị aka dabere na njirimara akọwapụtara (dịka ọmụmaatụ, "arm-linux-gnueabihf-gcc"). A na-akwado ikpo okwu GNU niile a na-elekwasị anya, gụnyere arm-linux-gnueabihf, aarch64-linux-gnu, na riscv64-linux-gnu.
  • E tinyela nkwado maka Usoro Sava Asụsụ (LSP). Ọkọlọtọ "-compile-commands" na-emepụta faịlụ compile_commands.json (Compilation Database) na mgbọrọgwụ ọrụ ahụ. A na-agụ faịlụ ahụ site na asụsụ. sava clangd na ccls, na-enye mmecha akpaka, igodo koodu, na nchọpụta ọrịa na ndị nchịkọta akụkọ na-akwado LSP (Neovim, VSCode, CLion, Emacs, wdg.).
  • Iwu fz "-update" na-echekwa ọnụọgụ abụọ dị ugbu a na /usr/local/bin/fz.old tupu ịwụnye ụdị ọhụrụ, na-enye gị ohere ịlaghachi na ụdị gara aga na-enweghị itinyeghachi ya.
  • Edoziri njehie na ọrụ ndekọ ọtụtụ ebe faịlụ nwere aha ntọala otu site na obere ndekọ dị iche iche ga-edegharị faịlụ ihe nke ibe ha. A na-emepụta aha faịlụ ihe ugbu a dabere na ụzọ zuru oke maka faịlụ isi mmalite.
  • E tinyere usoro mmekọrịta "fz -shell" maka iwuli otu faịlụ.
  • Agbakwunyela mkpuchi nnwale maka iwu SplitCommand, CmdSet, na CmdBuild. Mkpuchi nnwale maka ngwugwu njikọ amụbaala site na 17% ruo 60%, mkpuchi maka ngwugwu niile agafeela 40%.
  • Agbakwunyere usoro nnọchi CheckTool maka ịnwale ọnọdụ nwere ihe ndị na-efu na ngwaọrụ.

Mgbanwe sitere na mwepụta ndị gara aga:

  • Ụdị 1.8.0 na-emejuputa mgbakọ nke ọbá akwụkwọ ndị na-anaghị agbanwe agbanwe (-type static / -lib), na-ahụ na aha faịlụ ihe dị iche na ọrụ ndị nduzi dị iche iche, ma na-edozi njehie na sistemụ mgbakọ metụtara ngafe nke ụzọ "..".
  • Ụdị 1.7.0 na-agbakwụnye nchịkọta yiri nke ahụ (-j N, 0 - nchọpụta onwe onye nke ọnụọgụ nke isi), nkwado maka edemede njikọ (-T) na adreesị ebe ntinye (-Ttext), ọnọdụ mmekọrịta (fz -shell), nhọrọ doro anya nke usoro mmepụta (elf32, elf64, bin), nchịkọta nke faịlụ C++ (.cpp, .cc, .cxx) yana otu ọkọlọtọ ịdọ aka ná ntị siri ike dịka maka C.
  • Ụdị 1.6.0 na-agbakwụnye mmalite ọrụ (fz -init, mepụta .fz.yaml, .fzignore, README.md), nkwado usoro bin (-format bin) maka bootloaders na firmware, yana mpaghara nhazi libs, flags.cc, flags.asm, flags.ld.
  • Ụdị 1.5.0 na-ewebata ọtụtụ ndekọ isi mmalite (source_dirs), ndepụta faịlụ doro anya (source_files), gụnyere/wepu ụkpụrụ, ubi libs maka ọbá akwụkwọ njikọ, faịlụ .fzignore, na njikọta ọtụtụ ọkwa nke faịlụ nhazi.

isi: opennet.ru

Zụta nnabata ntụkwasị obi maka saịtị nwere nchekwa DDoS, sava VPS VDS 🔥 Zụta ebe nrụọrụ weebụ a pụrụ ịtụkwasị obi na nchekwa DDoS, sava VPS VDS | ProHoster