Ho lokolloa ha ForgeZero 1.9.0, sesebelisoa sa kaho bakeng sa C le assembler

ForgeZero 1.9.0 (fz), sesebelisoa sa ho haha ​​​​mola oa taelo bakeng sa merero e ngotsoeng ka C, C++, le lipuo tsa kopano (NASM, GAS, FASM), se lokollotsoe. Sesebelisoa ha se hloke Makefile kapa lifaele tse ling tsa tlhophiso bakeng sa ts'ebeliso ea mantlha. Khoutu ea projeke e ngotsoe ho Go 'me e na le laesense tlas'a laesense ea MIT.

ForgeZero e lemoha mofuta oa faele ebe e khetha backend e loketseng ka bo eona. Faele e 'ngoe le e 'ngoe ea khoutu e bokelloa faeleng ea ntho, ebe e hlahlojoa bakeng sa matšoao a lefats'e a tšoanang linthong tsohle ebe e hokahanngoa faeleng e le 'ngoe e ka sebelisoang. Lifaele tse kopantsoeng li bolokoa le ho hlophisoa bocha feela ka mor'a hore ho etsoe liphetoho lifaeleng tsa khoutu tse amanang. Ka boikhethelo, ho latela le ho hlophisoa bocha ha sistimi ea faele hoa khoneha ka mor'a ntlafatso ea faele ea khoutu.

Di-compiler tse tshehetswang ke GCC, Clang, G++, le Clang++; di-assembler ke NASM, GAS, le FASM; di-linker ke LD, GCC, le Clang; mme archiver ya AR e tshehetswa. Ditemoso tse tlamang bakeng sa C le C++ ke: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Di-sanitizer tsa AddressSanitizer le UndefinedBehaviorSanitizer di nolofalletswa ka ho sa feleng (di ka tima ka -sanitize=false flag). Di-platform tse tshehetswang ke: Linux, macOS, Windows (WSL2 mme e hlahile ka teko).

Liphetoho tse kholo ho mofuta oa 1.9.0:

  • Folakha e ekelitsoeng ea "-target" , e nolofalletsang ho kopanya meralo efe kapa efe ka disebediswa tse loketseng tsa pelepele. fz e ikgethela mabitso a mohlophisi, sehokelo, le polokelo ya dibuka ka boiketsetso ho latela sesupo se boletsweng (mohlala, "arm-linux-gnueabihf-gcc"). Di-platform tsohle tse tloaelehileng tsa GNU tse rerilweng di a tshehetswa, ho kenyeletswa arm-linux-gnueabihf, aarch64-linux-gnu, le riscv64-linux-gnu.
  • Tšehetso bakeng sa Protocol ea Seva sa Puo (LSP) e kentsoe tšebetsong. Folakha ea "-compile-commands" e hlahisa faele ea compile_commands.json (Compilation Database) motsong oa projeke. Faele e baloa ka puo li-server clangd le ccls, tse fanang ka ho phethela ka boiketsetso, ho tsamaya ha khoutu, le ho hlahloba dikhoutu ho bahlophisi ba tshehetsang LSP (Neovim, VSCode, CLion, Emacs, jj.).
  • Taelo ea fz "-update" joale e boloka binary ea hajoale ho /usr/local/bin/fz.old pele e kenya mofuta o mocha, e u lumella ho khutlela phetolelong e fetileng ntle le ho e kenya hape.
  • Ho lokisitsoe phoso mererong ea li-directory tse ngata moo lifaele tse nang le mabitso a tšoanang a motheo ho tsoa li-subdirectories tse fapaneng li neng li tla ngola lifaele tsa ntho tsa e 'ngoe le e 'ngoe. Mabitso a lifaele tsa ntho joale a hlahisoa ho latela tsela e felletseng e amanang le faele ea mohloli.
  • Mokhoa oa tšebelisano-'moho o kentsoe tšebetsong "fz -shell" bakeng sa ho haha ​​lifaele tse le 'ngoe.
  • Kabo ea teko e ekelitsoe bakeng sa litaelo tsa SplitCommand, CmdSet, le CmdBuild. Kabo ea teko bakeng sa sephutheloana sa linker e eketsehile ho tloha ho 17% ho isa ho 60%, 'me kabo ea liphutheloana tsohle e fetile 40%.
  • E kentse mokhoa oa ho nkela sebaka oa CheckTool bakeng sa ho leka maemo a nang le likarolo tse sieo tsa chain ea lisebelisoa.

Liphetoho ho tsoa ho tokollo e fetileng:

  • Phetolelo ea 1.8.0 e kenya tšebetsong kopano ea lilaebrari tse sa fetoheng (-type static / -lib), e netefatsa ho ikhetha ha mabitso a lifaele tsa lintho mererong ea li-director tse ngata, 'me e lokisa liphoso tsamaisong e nyenyane ea kopano e amanang le ho feta ha tsela ea "..".
  • Phetolelo ea 1.7.0 e eketsa pokello e ts'oanang (-j N, 0 — ho lemoha ka boiketsetso palo ea li-cores), tšehetso ea li-script tsa linker (-T) le liaterese tsa lintlha tsa ho kena (-Ttext), mokhoa o sebelisanang (fz -shell), khetho e hlakileng ea sebopeho sa tlhahiso (elf32, elf64, bin), pokello ea lifaele tsa C++ (.cpp, .cc, .cxx) ka lifolakha tse tšoanang tsa temoso tse tiileng joalo ka tsa C.
  • Phetolelo ea 1.6.0 e eketsa qalo ea projeke (fz -init, e theha .fz.yaml, .fzignore, README.md), tšehetso ea fomate ea bin (-format bin) bakeng sa li-bootloader le firmware, le masimo a tlhophiso libs, flags.cc, flags.asm, flags.ld.
  • Phetolelo ea 1.5.0 e hlahisa li-directory tse ngata tsa mohloli (li-source_dirs), manane a lifaele tse hlakileng (li-source_files), e kenyelletsa/e qhelela ka thoko mekhoa, tšimo ea libs bakeng sa lilaebrari tsa linker, faele ea .fzignore, le kopanyo ea maemo a mangata ea lifaele tsa tlhophiso.

Source: opennet.ru

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster