Ukukhishwa kwe-ForgeZero 1.9.0, ithuluzi lokwakha le-C kanye ne-assembler

I-ForgeZero 1.9.0 (fz), ithuluzi lokwakha umugqa womyalo wamaphrojekthi abhalwe ngo-C, C++, kanye nezilimi zokuhlanganisa (NASM, GAS, FASM), selikhishwe. Leli thuluzi alidingi i-Makefile noma amanye amafayela okucushwa ukuze lisetshenziswe ngokuyisisekelo. Ikhodi yephrojekthi ibhalwe ku-Go futhi inelayisensi ngaphansi kwelayisensi ye-MIT.

I-ForgeZero ithola uhlobo lwefayela bese ikhetha ngokuzenzakalelayo i-backend efanele. Ifayela ngalinye lekhodi lihlanganiswa libe yifayela lezinto, bese lihlolwa izimpawu zomhlaba eziphindaphindwayo kuzo zonke izinto bese lixhunyaniswa nefayela elilodwa elisebenzisekayo. Amafayela ahlanganisiwe ayagcinwa futhi ahlanganiswe kabusha kuphela ngemva kokwenziwa kwezinguquko kumafayela ekhodi ahlobene. Ngokuzithandela, ukulandelwa koshintsho lwesistimu yefayela kanye nokuhlanganiswa kabusha kungenzeka ngemva kokubuyekezwa kwefayela lekhodi.

Ama-compilers asekelwayo yi-GCC, i-Clang, i-G++, kanye ne-Clang++; ama-assembler yi-NASM, i-GAS, kanye ne-FASM; ama-linkers yi-LD, i-GCC, kanye ne-Clang; kanti i-AR archiver iyasekelwa. Izixwayiso eziphoqelekile ze-C kanye ne-C++ yilezi: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Ama-sanitizer e-AddressSanitizer kanye ne-UndefinedBehaviorSanitizer anikwe amandla ngokuzenzakalelayo (angakhutshazwa nge--sanitize=false flag). Amapulatifomu asekelwayo yilezi: Linux, macOS, Windows (I-WSL2 futhi itholakala ngokuhlola).

Izinguquko eziyinhloko kunguqulo 1.9.0:

  • Kwengezwe ifulegi elithi "-target" , okuvumela ukuhlanganiswa okuhlanganisiwe kwanoma yiluphi ulwakhiwo ngamathuluzi okuqala afanele. i-fz inquma ngokuzenzakalelayo amagama e-compiler, i-linker, kanye ne-archive ngokusekelwe kusihlonzi esichaziwe (isb., "arm-linux-gnueabihf-gcc"). Zonke izinkundla ezijwayelekile ze-GNU ziyasekelwa, kufaka phakathi i-arm-linux-gnueabihf, i-aarch64-linux-gnu, kanye ne-riscv64-linux-gnu.
  • Реализована поддержка поддержка протокола LSP (Language Server Protocol). Флаг «-compile-commands» генерирует файл compile_commands.json (Compilation Database) в корне проекта. Файл считывается языковыми amaseva clangd и ccls, обеспечивая работу автодополнения, навигации по коду и диагностики в редакторах с поддержкой LSP (Neovim, VSCode, CLion, Emacs и др.).
  • Umyalo we-fz "-update" manje ulondoloza i-binary yamanje ku-/usr/local/bin/fz.old ngaphambi kokufaka inguqulo entsha, okukuvumela ukuthi ubuyele emuva enguqulweni yangaphambilini ngaphandle kokufaka kabusha.
  • Kulungiswe iphutha kumaphrojekthi ezincwadi eziningi lapho amafayela anamagama ayisisekelo afanayo avela kuma-subdirectory ahlukene ayezobhala phezu kwamafayela ezinto zomunye nomunye. Amagama efayela lezinto manje akhiqizwa ngokusekelwe endleleni ephelele ehlobene nefayela lomthombo.
  • Kusetshenziswe imodi yokusebenzisana ethi "fz -shell" yokwakha amafayela angawodwa.
  • Ukuhlolwa kwengezwe kwemiyalo ye-SplitCommand, CmdSet, kanye ne-CmdBuild. Ukuhlolwa kwephakheji yesixhumanisi kukhuphuke kusuka ku-17% kuya ku-60%, kanti ukubhekwa kwawo wonke amaphakheji kudlule u-40%.
  • Kungezwe indlela yokufaka esikhundleni i-CheckTool yokuhlola izimo ezinezingxenye ze-toolchain ezingekho.

Izinguquko ezivela ekukhishweni kwangaphambilini:

  • Inguqulo 1.8.0 isebenzisa ukuhlanganiswa kwamalayibrari angaguquki (-type static / -lib), iqinisekisa ukuhluka kwamagama amafayela ezinto kumaphrojekthi anama-director amaningi, futhi ilungisa amaphutha ohlelweni olungaphansi lokuhlanganiswa oluhlobene nokudlula kwendlela ethi "..".
  • Inguqulo 1.7.0 ingeza ukuhlanganiswa okuhambisanayo (-j N, 0 — ukutholwa ngokuzenzakalela kwenani lama-core), ukwesekwa kwezikripthi zezixhumanisi (-T) kanye namakheli ephuzu lokungena (-Ttext), imodi yokusebenzisana (fz -shell), ukukhethwa okucacile kwefomethi yokukhipha (elf32, elf64, bin), ukuhlanganiswa kwamafayela e-C++ (.cpp, .cc, .cxx) ngamafulegi esixwayiso afanayo naka-C.
  • Inguqulo 1.6.0 yengeza ukuqaliswa kwephrojekthi (fz -init, idala i-.fz.yaml, .fzignore, README.md), ukwesekwa kwefomethi yebhini (ibhini yefomethi) yama-bootloader kanye ne-firmware, kanye nezinkambu zokucushwa i-libs, flags.cc, flags.asm, flags.ld.
  • Inguqulo 1.5.0 yethula iziqondisi eziningi zemithombo (ama-source_dirs), uhlu lwamafayela acacile (amafayela_omthombo), kufaka/ukukhipha amaphethini, insimu yama-libs yamalayibrari ezixhumanisi, ifayela le-.fzignore, kanye nokuhlanganiswa kwamafayela okucushwa kwamazinga amaningi.

Source: opennet.ru

Thenga ukusingathwa okuthembekile kwamasayithi anokuvikelwa kwe-DDoS, amaseva e-VPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekile ngokuvikelwa kwe-DDoS, amaseva e-VPS VDS | ProHoster