የፎርጅዜሮ 1.9.0 መልቀቅ፣ ለሲ እና ለሰብሳቢ የግንባታ መሳሪያ

በC፣ C++ እና በአሰባሳቢ ቋንቋዎች (NASM፣ GAS፣ FASM) የተጻፉ ፕሮጀክቶችን ለማካሄድ የሚያገለግል የትእዛዝ መስመር ግንባታ መሳሪያ የሆነው ፎርጅዜሮ 1.9.0 (fz) ተለቋል። መሳሪያው ለመሠረታዊ አገልግሎት የMakefile ወይም ሌሎች የውቅር ፋይሎች አያስፈልገውም። የፕሮጀክቱ ኮድ በGo የተጻፈ ሲሆን በMIT ፈቃድ መሠረት ፈቃድ ተሰጥቶታል።

ፎርጅዜሮ የፋይል አይነትን ያገኛል እና ተገቢውን የኋላ ክፍል በራስ-ሰር ይመርጣል። እያንዳንዱ የኮድ ፋይል ወደ አንድ የነገር ፋይል ይዋሃዳል፣ ከዚያም በሁሉም ነገሮች ላይ የተባዙ ዓለም አቀፍ ምልክቶችን ይፈትሹ እና ወደ አንድ ሊተገበር የሚችል ፋይል ይገናኛሉ። የተጠናቀሩ ፋይሎች የሚሸጎጡት እና የሚጠናቀሩት በተያያዙት የኮድ ፋይሎች ላይ ለውጦች ከተደረጉ በኋላ ብቻ ነው። እንደ አማራጭ፣ የፋይል ስርዓት ለውጥ መከታተል እና እንደገና ማጠናቀር የኮድ ፋይል ዝመናዎች ከተደረጉ በኋላ ይቻላል።

የሚደገፉት ኮምፓይለሮች GCC፣ Clang፣ G++ እና Clang++ ናቸው፤ አሰባሳቢዎች NASM፣ GAS እና FASM ናቸው፤ አገናኞች LD፣ GCC እና Clang ናቸው፤ እና የ AR ማህደር ይደገፋል። ለC እና C++ የግዴታ ማስጠንቀቂያዎች የሚከተሉት ናቸው፡ "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion"። የአድራሻ ሳኒታይዘር እና የማይታወቅ ባህሪ ሳኒታይዘር በነባሪነት ይነቃሉ (በ-sanitize=false flag ሊሰናከሉ ይችላሉ)። የሚደገፉት መድረኮች የሚከተሉት ናቸው፡ Linux, macOS, Windows (WSL2 እና በሙከራ የተወለዱ)።

በስሪት 1.9.0 ውስጥ ዋና ለውጦች:

  • "-ታርጌት" ባንዲራ ታክሏል , ይህም ተገቢውን የቅድመ-ቅጥያ መሳሪያዎች በመጠቀም ለማንኛውም አርክቴክቸር የመስቀል-ማጠናቀር ያስችላል። fz በተጠቀሰው መለያ (ለምሳሌ "arm-linux-gnueabihf-gcc") ላይ በመመስረት የኮምፓዩተሩን፣ የአገናኝ መስመሩን እና የማህደር ስሙን በራስ-ሰር ይወስናል። ሁሉም መደበኛ የጂኤንዩ ኢላማ መድረኮች ይደገፋሉ፣ arm-linux-gnueabihf፣ aarch64-linux-gnu እና riscv64-linux-gnuን ጨምሮ።
  • የቋንቋ አገልጋይ ፕሮቶኮል (LSP) ድጋፍ ተተግብሯል። የ"-compile-commands" ባንዲራ በፕሮጀክቱ ስር ውስጥ የcompile_commands.json (Compilation Database) ፋይል ያመነጫል። ፋይሉ በቋንቋ ይነበባል አገልጋዮች ክላንግድ እና 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++ ፋይሎችን (.cpp፣ .cc፣ .cxx) ማጠናቀርን እንደ C ተመሳሳይ ጥብቅ የማስጠንቀቂያ ባንዲራዎች ያክላል።
  • ስሪት 1.6.0 የፕሮጀክት ጅምር (fz -init፣ .fz.yaml፣ .fzignore፣ README.md)፣ ለቡት ጫኚዎች እና ፈርምዌር የቢን ቅርጸት ድጋፍ (-format bin) እና የውቅር መስኮች libs፣ flags.cc፣ flags.asm፣ flags.ld ያክላል።
  • ስሪት 1.5.0 በርካታ የምንጭ ማውጫዎችን (source_dirs)፣ ግልጽ የፋይል ዝርዝሮችን (source_files)፣ ቅጦችን (include/exclude)፣ ለአገናኝ ቤተ-መጻሕፍት የሊብስ መስክ፣ የ.fzignore ፋይል እና የውቅር ፋይሎች ባለብዙ ደረጃ ውህደትን ያስተዋውቃል።

ምንጭ: opennet.ru

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster