C සහ එකලස් කරන්නා සඳහා ගොඩනැගීමේ මෙවලමක් වන ForgeZero 1.9.0 නිකුතුව

C, C++ සහ එකලස් කිරීමේ භාෂාවලින් (NASM, GAS, FASM) ලියා ඇති ව්‍යාපෘති සඳහා විධාන රේඛා ගොඩනැගීමේ මෙවලමක් වන ForgeZero 1.9.0 (fz) නිකුත් කර ඇත. මූලික භාවිතය සඳහා මෙවලමට Makefile හෝ වෙනත් වින්‍යාස ගොනු අවශ්‍ය නොවේ. ව්‍යාපෘති කේතය Go භාෂාවෙන් ලියා ඇති අතර MIT බලපත්‍රය යටතේ බලපත්‍ර ලබා ඇත.

ForgeZero ගොනු වර්ගය හඳුනාගෙන ස්වයංක්‍රීයව සුදුසු පසුබිම තෝරා ගනී. සෑම කේත ගොනුවක්ම වස්තු ගොනුවකට සම්පාදනය කර, පසුව සියලු වස්තූන් හරහා අනුපිටපත් ගෝලීය සංකේත සඳහා පරීක්ෂා කර තනි ක්‍රියාත්මක කළ හැකි ගොනුවකට සම්බන්ධ කර ඇත. සම්පාදනය කරන ලද ගොනු හැඹිලිගත කර නැවත සම්පාදනය කරනු ලබන්නේ අදාළ කේත ගොනුවලට වෙනස්කම් සිදු කිරීමෙන් පසුව පමණි. විකල්පයක් ලෙස, කේත ගොනු යාවත්කාලීන කිරීමෙන් පසු ගොනු පද්ධති වෙනස්වීම් නිරීක්ෂණය සහ නැවත සම්පාදනය කළ හැකිය.

සහාය දක්වන සම්පාදක වන්නේ GCC, Clang, G++, සහ Clang++; එකලස් කරන්නන් වන්නේ NASM, GAS, සහ FASM; සම්බන්ධක වන්නේ LD, GCC, සහ Clang; සහ AR ලේඛනාගාරය සහය දක්වයි. C සහ C++ සඳහා අනිවාර්ය අනතුරු ඇඟවීම් වන්නේ: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". AddressSanitizer සහ UndefinedBehaviorSanitizer සනීපාරක්ෂක පෙරනිමියෙන් සක්‍රීය කර ඇත (ඒවා -sanitize=false ධජය සමඟ අක්‍රිය කළ හැක). සහාය දක්වන වේදිකා වන්නේ: Linux, macOS, Windows (WSL2 සහ පර්යේෂණාත්මකව ස්වදේශීය).

1.9.0 අනුවාදයේ ප්රධාන වෙනස්කම්:

  • "-target" ධජය එක් කරන ලදී , එය සුදුසු උපසර්ග මෙවලම් සමඟ ඕනෑම ගෘහ නිර්මාණ ශිල්පයක් සඳහා හරස්-සම්පාදනය සක්‍රීය කරයි. fz නිශ්චිත හඳුනාගැනීම මත පදනම්ව සම්පාදක, සම්බන්ධක සහ ලේඛනාගාරයේ නම් ස්වයංක්‍රීයව තීරණය කරයි (උදා: "arm-linux-gnueabihf-gcc"). arm-linux-gnueabihf, aarch64-linux-gnu, සහ riscv64-linux-gnu ඇතුළුව සියලුම සම්මත GNU ඉලක්ක වේදිකා සඳහා සහය දක්වයි.
  • භාෂා සේවාදායක ප්‍රොටෝකෝලය (LSP) සඳහා සහය ක්‍රියාත්මක කර ඇත. "-compile-commands" ධජය ව්‍යාපෘති මූලයේ compile_commands.json (සම්පාදන දත්ත සමුදාය) ගොනුවක් ජනනය කරයි. ගොනුව භාෂාව අනුව කියවනු ලැබේ. සේවාදායක clangd සහ ccls, LSP (Neovim, VSCode, CLion, Emacs, ආදිය) සඳහා සහය දක්වන සංස්කාරකවල ස්වයං සම්පූර්ණ කිරීම, කේත සංචාලනය සහ රෝග විනිශ්චය සපයයි.
  • fz "-update" විධානය දැන් නව අනුවාදයක් ස්ථාපනය කිරීමට පෙර වත්මන් ද්විමය /usr/local/bin/fz.old වෙත සුරකින අතර, නැවත ස්ථාපනය නොකර පෙර අනුවාදයට පෙරළීමට ඔබට ඉඩ සලසයි.
  • බහු-නාමාවලි ව්‍යාපෘතිවල දෝෂයක් නිරාකරණය කරන ලදී, එහිදී විවිධ උප නාමාවලි වලින් සමාන මූලික නම් සහිත ගොනු එකිනෙකාගේ වස්තු ගොනු උඩින් ලියනු ඇත. වස්තු ගොනු නාම දැන් ජනනය වන්නේ මූලාශ්‍ර ගොනුවට සම්පූර්ණ සාපේක්ෂ මාර්ගය මත පදනම්වය.
  • තනි ගොනු ගොඩනැගීම සඳහා අන්තර්ක්‍රියාකාරී මාදිලිය "fz -shell" ක්‍රියාත්මක කරන ලදී.
  • SplitCommand, CmdSet සහ CmdBuild විධාන සඳහා පරීක්ෂණ ආවරණය එකතු කර ඇත. සබැඳි පැකේජය සඳහා පරීක්ෂණ ආවරණය 17% සිට 60% දක්වා වැඩි වී ඇති අතර සියලුම පැකේජ සඳහා ආවරණය 40% ඉක්මවා ඇත.
  • මෙවලම් දාම සංරචක නොමැති අවස්ථා පරීක්ෂා කිරීම සඳහා CheckTool ප්‍රතිස්ථාපන යාන්ත්‍රණයක් එක් කරන ලදී.

පෙර නිකුතු වලින් වෙනස්කම්:

  • 1.8.0 අනුවාදය ස්ථිතික පුස්තකාල එකලස් කිරීම ක්‍රියාත්මක කරයි (-type static / -lib), බහු-අධ්‍යක්ෂක ව්‍යාපෘතිවල වස්තු ගොනු නාමවල සුවිශේෂත්වය සහතික කරයි, සහ ".." මාර්ගය හරහා ගමන් කිරීමට අදාළ එකලස් කිරීමේ උප පද්ධතියේ දෝෂ නිවැරදි කරයි.
  • 1.7.0 අනුවාදය සමාන්තර සම්පාදනය (-j N, 0 — මධ්‍ය ගණන ස්වයංක්‍රීයව හඳුනාගැනීම), සම්බන්ධක ස්ක්‍රිප්ට් (-T) සහ ප්‍රවේශ ලක්ෂ්‍ය ලිපින (-Ttext) සඳහා සහාය, අන්තර්ක්‍රියාකාරී මාදිලිය (fz -shell), ප්‍රතිදාන ආකෘතියේ පැහැදිලි තේරීම (elf32, elf64, bin), C සඳහා ඇති දැඩි අනතුරු ඇඟවීමේ ධජ සහිත C++ ගොනු (.cpp, .cc, .cxx) සම්පාදනය කරයි.
  • 1.6.0 අනුවාදය ව්‍යාපෘති ආරම්භ කිරීම (fz -init, .fz.yaml, .fzignore, README.md නිර්මාණය කරයි), bootloaders සහ firmware සඳහා bin ආකෘති සහාය (-format bin), සහ libs, flags.cc, flags.asm, flags.ld යන වින්‍යාස ක්ෂේත්‍ර එක් කරයි.
  • 1.5.0 අනුවාදය මඟින් බහු මූලාශ්‍ර නාමාවලි (source_dirs), පැහැදිලි ගොනු ලැයිස්තු (source_files), රටා ඇතුළත්/බැහැර කිරීම, සම්බන්ධක පුස්තකාල සඳහා libs ක්ෂේත්‍රයක්, .fzignore ගොනුව සහ වින්‍යාස ගොනු බහු-මට්ටමේ ඒකාබද්ධ කිරීම හඳුන්වා දෙයි.

මූලාශ්රය: opennet.ru

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster