የGCC 11 ማጠናከሪያ ስብስብ መልቀቅ

ከአንድ አመት እድገት በኋላ ነፃ የማጠናቀቂያ ስብስብ GCC 11.1 ተለቋል፣ በአዲሱ የጂሲሲ 11.x ቅርንጫፍ ውስጥ የመጀመሪያው ጉልህ ልቀት ነው። በአዲሱ የመልቀቂያ ቁጥር አሰጣጥ እቅድ መሰረት, እትም 11.0 በእድገት ሂደት ውስጥ ጥቅም ላይ ውሏል, እና ጂሲሲ 11.1 ከመውጣቱ ጥቂት ቀደም ብሎ, የጂሲሲ 12.0 ቅርንጫፍ ቀድሞውኑ ተዘርግቷል, ከዚያ ቀጣዩ ዋና ልቀት GCC 12.1, ይመሰረታል.

GCC 11.1 በነባሪ የDWARF 5 ማረም ፋይል ቅርጸቱን ወደ መጠቀም መሸጋገሩ የሚታወቅ ሲሆን በነባሪ የC++17 መስፈርት ("-std=gnu++17") በማካተት ለ C++20 ጉልህ መሻሻሎች መደበኛ፣ ለC++23 የሙከራ ድጋፍ፣ ከወደፊቱ የC ቋንቋ ደረጃ (C2x) ጋር የተያያዙ ማሻሻያዎች፣ አዲስ የአፈጻጸም ማሻሻያዎች።

ዋና ለውጦች፡-

  • የC++ ቋንቋ ነባሪ ሁነታ ቀደም ሲል ከቀረበው C++17 ይልቅ C++17 መስፈርት (-std=gnu++14) እንዲጠቀም ተቀይሯል። ሌሎች አብነቶችን እንደ መለኪያ (-fno-new-ttp-matching) የሚጠቀሙ አብነቶችን ሲሰል አዲሱን C++17 ባህሪን መርጦ ማሰናከል ይቻላል።
  • የተፈቱ የማህደረ ትውስታ ቦታዎችን የመድረስ፣ ከተመደበው ቋት ወሰን በላይ በመሄድ እና ከማህደረ ትውስታ ጋር በሚሰሩበት ጊዜ አንዳንድ የስህተት አይነቶችን ለማወቅ የሚያስችል የአድራሻ ሳኒቲዘር መሳሪያ የሃርድዌር ማጣደፍ ተጨማሪ ድጋፍ። የሃርድዌር ማጣደፍ በአሁኑ ጊዜ ለ AArch64 አርክቴክቸር ብቻ የሚገኝ ሲሆን የሊኑክስ ከርነል ሲዘጋጅ ጥቅም ላይ ያተኮረ ነው። የተጠቃሚ ቦታ ክፍሎችን በሚገነቡበት ጊዜ AddressSanitizer ሃርድዌር ማጣደፍን ለማንቃት ባንዲራ "-fsanitize=hwaddress" እና የከርነል ባንዲራ "-fsanitize=kernel-hwaddress" ታክሏል።
  • የማረም መረጃን በሚፈጥሩበት ጊዜ, የ DWARF 5 ቅርጸት በነባሪነት ጥቅም ላይ ይውላል, ይህም ከቀደምት ስሪቶች ጋር ሲነጻጸር, 25% ተጨማሪ የታመቀ የማረሚያ ውሂብን መፍጠር ያስችላል. ለDWARF 5 ሙሉ ድጋፍ ቢያንስ የቢንቲልስ ስሪት 2.35.2 ያስፈልገዋል። DWARF 5 ቅርጸት ከጂዲቢ 8.0፣ valgrind 3.17.0፣ elfutils 0.172 እና dwz 0.14 ጀምሮ በማረም መሳሪያዎች ውስጥ ይደገፋል። ሌሎች የDWARF ስሪቶችን በመጠቀም የማረም ፋይሎችን ለማመንጨት “-gdwarf-2”፣ “-gdwarf-3” እና “-gdwarf-4” አማራጮችን መጠቀም ይችላሉ።
  • GCC ን ለመገንባት የሚያገለግሉ የአቀነባባሪዎች መስፈርቶች ተጨምረዋል. አቀናባሪው አሁን የC++11 መስፈርትን መደገፍ አለበት (ከዚህ ቀደም C++98 ይፈለግ ነበር)፣ i.e. GCC 10 GCC 3.4ን ለመገንባት በቂ ከሆነ፣ አሁን GCC 11ን ለመገንባት ቢያንስ GCC 4.8 ያስፈልጋል።
  • ቆሻሻዎችን፣ ጊዜያዊ ፋይሎችን እና ለ LTO ማመቻቸት አስፈላጊ የሆኑ ተጨማሪ መረጃዎችን ለማስቀመጥ የፋይሎች ስም እና ቦታ ተቀይሯል። መንገዱ በ"-dumpbase""-dumpdir" እና "-save-temps=*" አማራጮች በኩል በግልፅ ካልተቀየረ በቀር እንደዚህ አይነት ፋይሎች አሁን ባለው ማውጫ ውስጥ ሁልጊዜ ይቀመጣሉ።
  • የሁለትዮሽ ፎርማት BRIG በHSAIL (Heterogeneous System Architecture Intermediate Language) ቋንቋ ጥቅም ላይ የሚውል ድጋፍ ተቋርጧል እና በቅርቡ ይወገዳል።
  • የTreadSanitizer ሁነታ (-fsanitize=thread) አቅም ተዘርግቷል፣ ከተለያዩ የመተግበሪያ ክሮች ውስጥ ተመሳሳይ ውሂብ ሲያጋሩ የዘር ሁኔታዎችን ለመለየት የተነደፈ ነው። አዲሱ ልቀት ለተለዋጭ የሩጫ ጊዜዎች እና አከባቢዎች ድጋፍን እንዲሁም የKCSAN (Kernel Concurrency Sanitizer) ማረም መሳሪያን ይደግፋል፣ ይህም በሊኑክስ ከርነል ውስጥ የዘር ሁኔታዎችን በተለዋዋጭ ሁኔታ ለመለየት ነው። አዲስ አማራጮች ታክለዋል "-param tsan-distinguiish-volatile" እና "-param tsan-instrument-func-intry-exit"።
  • በምርመራ መልእክቶች ውስጥ ያሉት የአምድ ቁጥሮች አሁን ከመስመሩ መጀመሪያ ጀምሮ ያለውን የባይት ቆጠራ ሳይሆን የብዙ ባይት ቁምፊዎችን ከግምት ውስጥ የሚያስገባ የአምድ ቁጥሮች እና በመስመሩ ውስጥ በርካታ ቦታዎችን የሚይዙ ቁምፊዎችን ያንፀባርቃሉ (ለምሳሌ 🙂 ገጸ ባህሪው ሁለት ቦታዎችን ይይዛል) በ 4 ባይት ውስጥ ተቀምጧል). እንደዚሁም፣ የትር ቁምፊዎች አሁን እንደ የተወሰኑ የቦታዎች ብዛት ተወስደዋል (በ-ftabstop አማራጭ፣ ነባሪ 8 ሊዋቀር የሚችል)። የድሮውን ባህሪ ለመመለሾ, "-fdiagnostics-column-unit=byte" አማራጭ ቀርቧል, እና የመጀመሪያውን እሴት ለመወሰን (ቁጥር ከ 0 ወይም 1) - "-fdiagnostics-column-origin=" አማራጭ.
  • ቬክተሬተሩ ሙሉውን የሥራውን ይዘት ግምት ውስጥ ያስገባ እና ከመገናኛዎች ጋር የተቆራኙ የማቀነባበሪያ ችሎታዎችን ይጨምራል እና በመቆጣጠሪያ-ፍሰት ግራፍ (CFG, የመቆጣጠሪያ-ፍሰት ግራፍ) ውስጥ ወደ ቀደሙት ብሎኮች ማጣቀሻዎች.
  • አመቻቹ ተመሳሳዩን ተለዋዋጭ ወደ መቀየሪያ አገላለጽ የሚያወዳድሩ ተከታታይ ሁኔታዊ ስራዎችን የመቀየር ችሎታን ይተገብራል። የመቀየሪያው አገላለጽ በኋላ ላይ የቢት ሙከራ መመሪያዎችን በመጠቀም ሊገለበጥ ይችላል (የ"-fbit-tests" አማራጭ እንደዚህ አይነት ልወጣን ለመቆጣጠር ተጨምሯል)።
  • የተሻሻለ የእርስ በርስ ሂደት ማመቻቸት። ተግባራትን በሚደውሉበት ጊዜ የጎንዮሽ ጉዳቶችን ለመከታተል እና የትንታኔውን ትክክለኛነት ለማሻሻል አዲስ የአይፒኤ-ሞድሬፍ ማለፊያ (-fipa-modref) ታክሏል። የተሻሻለ የአይፒኤ-አይሲኤፍ ማለፊያ (-fipa-icf) አተገባበር፣ ይህም በማጠናቀር ጊዜ የማህደረ ትውስታ ፍጆታን የሚቀንስ እና ተመሳሳይ የኮድ ብሎኮች የሚጣመሩባቸውን የተዋሃዱ ተግባራትን ይጨምራል። በ IPA-CP (Interprocedural constant propagation) ማለፊያ, የታወቁትን ድንበሮች እና የሉፕስ ባህሪያት ግምት ውስጥ በማስገባት ትንበያ ሂዩሪስቲክስ ተሻሽሏል.
  • በ Linking Time Optimizations (LTO)፣ የባይቴኮድ ፎርማት መጠኑን ለመቀነስ እና የማቀነባበሪያውን ፍጥነት ለማሻሻል ተመቻችቷል። በማያያዝ ጊዜ ከፍተኛ የማህደረ ትውስታ ፍጆታ ቀንሷል።
  • የማስፈጸሚያ ባህሪያትን በመተንተን ላይ በመመርኮዝ የበለጠ ጥሩ ኮድ ለመፍጠር በሚያስችለው ኮድ መገለጫ (PGO - መገለጫ-የተመራ ማሻሻያ) ውጤቶች ላይ የተመሠረተ የማመቻቸት ዘዴ ፣ በዜሮ ቆጣሪዎች የበለጠ የታመቀ ማሸጊያ በመኖሩ የ GCOV መረጃ ያላቸው ፋይሎች መጠን ቀንሷል። . በተዘዋዋሪ ጥሪዎች ላይ ተጨማሪ መለኪያዎችን በመከታተል የተሻሻለ "-fprofile-values" ሁነታ።
  • የ OpenMP 5.0 (Open Multi-Processing) ደረጃን መተግበር ኤፒአይን እና ትይዩ የፕሮግራም አወጣጥ ዘዴዎችን በብዙ ኮር እና ዲቃላ (ሲፒዩ+ ጂፒዩ/ዲኤስፒ) ሲስተሞች በጋራ የማህደረ ትውስታ እና የቬክተራይዜሽን አሃዶች (ሲኤምዲ) ላይ የመተግበር ዘዴዎች አሉት። ቀጠለ። ለመመደብ መመሪያው የመጀመሪያ ድጋፍ ታክሏል እና በOpenMP ግንባታዎች ውስጥ የተለያዩ ቀለበቶችን የመጠቀም ችሎታ። ለOMP_TARGET_OFFLOAD አካባቢ ተለዋዋጭ ድጋፍ ተግባራዊ።
  • ለC፣ C++ እና Fortran ቋንቋዎች የቀረበው የOpenACC 2.6 ትይዩ ፕሮግራሚንግ ዝርዝር አተገባበር ተሻሽሏል፣ ይህም በጂፒዩዎች እና በልዩ ፕሮሰሰር እንደ NVIDIA PTX ያሉ ስራዎችን ለማውረድ የሚረዱ መሳሪያዎችን ይገልጻል።
  • ለሲ ቋንቋዎች የቁልል ጥበቃ መንቃት የሌለበት ("-fstack-protector") ተግባራትን ለመለየት የተነደፈ አዲስ አይነታ "no_stack_protector" ተተግብሯል. ማህደረ ትውስታን ለመመደብ እና ለማስለቀቅ ጥንድ ጥሪዎችን ለመለየት የ"ማልሎክ" ባህሪ ተዘርግቷል ፣ ይህም በስታቲስቲክስ ትንታኔ ውስጥ ከማህደረ ትውስታ ጋር አብሮ በመስራት ላይ ያሉ የተለመዱ ስህተቶችን ለመለየት (የማህደረ ትውስታ መፍሰስ ፣ ከተለቀቀ በኋላ ጥቅም ላይ ይውላል) ድርብ ጥሪዎች ወደ ነጻው ተግባር ወዘተ.) እና በአቀናባሪ ማስጠንቀቂያዎች "-Wmismatched-dealloc", "-Wmismatched-new-delete" እና "-Wfree-non heap-object", በማህደረ ትውስታ ማከፋፈያ እና የማህደረ ትውስታ ድልድል ስራዎች መካከል አለመመጣጠንን ያሳውቃል።
  • ለ C ቋንቋ አዲስ ማስጠንቀቂያዎች ተጨምረዋል፡
    • "-Wmismatched-dealloc" (በነባሪነት የነቃ) - ከማህደረ ትውስታ ድልድል ተግባራት ጋር ተኳሃኝ ያልሆነ ጠቋሚን ስለሚጠቀሙ የማህደረ ትውስታ ማከፋፈያ ስራዎች ያስጠነቅቃል።
    • "-Wsizeof-array-div" ("-Wall" ሲገለጽ የነቃ) - አካፋዩ ከድርድሩ ኤለመንት መጠን ጋር የማይመሳሰል ከሆነ ሁለት መጠን ያላቸውን ኦፕሬተሮች ስለመከፋፈል ያስጠነቅቃል።
    • "-Wstringop-overread" (በነባሪነት የነቃ) - ከድርድር ወሰን ውጭ ያለ አካባቢ ውሂብን የሚያነብ የሕብረቁምፊ ተግባርን ስለመጥራት ያስጠነቅቃል።
    • "-Wtsan" (በነባሪነት የነቃ) - በTreadSanitizer ውስጥ የማይደገፉ ባህሪያትን (እንደ std:: atomic_thread_fence ያሉ) ስለመጠቀም ያስጠነቅቃል።
    • “-Warray-parameter” እና “-Wvla-parameter” (“-Wall”ን ሲገልጹ የነቃ) - ከቋሚ እና ከተለዋዋጭ-ርዝመት ድርድሮች ጋር ተያይዘው ተኳሃኝ ያልሆኑ የክርክር መግለጫዎችን ሾለመምር ያስጠነቅቃል።
    • የ"-Wuninitialized" ማስጠንቀቂያ አሁን ካልታወቀ ተለዋዋጭ የተመደበ ማህደረ ትውስታ ለማንበብ ሙከራዎችን ፈልጎ ያገኛል።
    • የ"-Wfree-non heap-object" ማስጠንቀቂያ በተለዋዋጭ የማህደረ ትውስታ ድልድል ተግባራት በኩል በማይገኝ ጠቋሚ አማካኝነት የማህደረ ትውስታ ማከፋፈያ ተግባራት የሚጠሩባቸውን ጉዳዮች ፍቺ ያሰፋል።
    • የ"-Wmaybe-uninitialized" ማስጠንቀቂያ ያልታወቁ የማህደረ ትውስታ ቦታዎችን ወደሚያመለክቱ ተግባራት የማለፊያ ጠቋሚዎችን ፈልጎ ማግኘት አስፍቶታል።
  • ለC ቋንቋ፣ በC2X ደረጃ ማዕቀፍ ውስጥ የተገነቡ የአዳዲስ ባህሪያት ክፍል ተተግብሯል (በመግለጽ የነቃ -std=c2x እና -std=gnu2x)፡ ማክሮ BOOL_MAX እና BOOL_WIDTH፣ በስራ ላይ ያልዋሉ መለኪያዎች ስም አማራጭ ማሳያ ፍቺዎች (እንደ C ++)፣ ባህሪ “[ [nodiscard]]”፣ ቅድመ ፕሮሰሰር ከዋኝ "__has_c_ባህሪ"፣ ማክሮዎች FLT_IS_IEC_60559፣ DBL_IS_IEC_60559፣ LDBL_IS_IEC_60559፣ __STDC_WANT_IEC_60559 DBL_IS_IEC_XNUMX LDBL_SNAN፣ DEC_INFINITY እና DEC_NAN፣ NaN=ማክሮዎች ለFlaatN , _FloatNx እና _DecimalN፣ ከመግለጫዎች በፊት እና በተዋሃዱ መግለጫዎች መጨረሻ ላይ የዝላይ ምልክቶችን የመግለጽ ችሎታ።
  • ለC++፣ በC++20 ደረጃ ከቀረቡት ለውጦች እና ፈጠራዎች የተወሰነው ክፍል ተተግብሯል፣ እነዚህም ምናባዊ ተግባራት “consteval virtual”፣ የውሸት-አጥፊዎች የነገሮች የህይወት ኡደት መጨረሻ፣ የኢንተም ክፍል አጠቃቀም እና ጨምሮ። በ "አዲሱ" አገላለጽ ውስጥ የድርድር መጠንን በማስላት ላይ።
  • ለC++፣ ለወደፊቱ የC++23 መስፈርት (-std=c++23፣ -std=gnu++23፣ -std=c++2b፣ -std=gnu ለሚዘጋጁ አንዳንድ ማሻሻያዎች የሙከራ ድጋፍ ታክሏል። ++2 ለ) ለምሳሌ፣ አሁን ለተፈረመ የመጠን_ት እሴቶች “zu” ለሚለው ቀጥተኛ ቅጥያ ድጋፍ አለ።
  • libstdc++ ለC++17 ደረጃ ድጋፍን አሻሽሏል፣የ std::ከቻርስ እና std:: ወደ_chars ለተንሳፋፊ ነጥብ አይነቶች ማስተዋወቅን ጨምሮ። አዲስ የC++20 ስታንዳርድ አካላት std::bit_cast, std::source_location፣ የአቶሚክ ኦፕሬሽኖች መጠበቅ እና ማሳወቅን ጨምሮ ተተግብረዋል፣ , , , ፣ እንዲሁም የወደፊቱ የC++23 መደበኛ አካላት (std :: ወደ_ሾር ፣ std :: is_scoped_enum)። ለትይዩ የውሂብ ማስኬጃ ዓይነቶች (ሲኤምዲ፣ ዳታ-ትይዩ ዓይነቶች) የሙከራ ድጋፍ ታክሏል። የ std :: ዩኒፎርም_int_ስርጭት ትግበራ ተፋጠነ።
  • የአልፋ ጥራት ባንዲራ ከlibgccjit ተወግዷል፣ የጋራ ቤተ-መጽሐፍት የኮድ ጄኔሬተርን ወደ ሌሎች ሂደቶች ለመክተት እና የጂአይቲ የባይቴኮድ ስብስብን ወደ ማሽን ኮድ ለማደራጀት ይጠቀሙበት። ለ MinGW libgccjit የመገንባት ችሎታ ታክሏል።
  • ለ AArch64 Armv8-R አርክቴክቸር (-march=armv8-r) ድጋፍ ታክሏል። ለ AArch64 እና ARM አርክቴክቸር ለአቀነባባሪዎች ድጋፍ ተጨምሯል (ፓራሜትር -mcpu እና -mtune)፡ Arm Cortex-A78 (cortex-a78)፣ Arm Cortex-A78AE (cortex-a78ae)፣ Arm Cortex-A78C (cortex-a78c) , Arm Cortex- X1 (cortex-x1), Arm Neoverse V1 (neoverse-v1) እና Arm Neoverse N2 (neoverse-n2). Fujitsu A64FX (a64fx) እና Arm Cortex-R82 (cortex-r82) ሲፒዩዎች የAArch64 አርክቴክቸርን ብቻ የሚደግፉ ተጨምረዋል።
  • የመደመር፣ የመቀነስ፣ የማባዛት እና የመደመር/የመቀነስ ልዩነቶችን የሚያከናውኑ ተግባራትን በራስ-ቬክተር ለማድረግ Armv8.3-a (AArch64/AArch32)፣ SVE (AArch64)፣ SVE2 (AArch64) እና MVE (AArch32 M-profile) ሲምዲ መመሪያዎችን ለመጠቀም ተጨማሪ ድጋፍ። ውስብስብ ቁጥሮች. የMVE መመሪያ ስብስብን በመጠቀም ለኤአርኤም አውቶቬክተርራይዜሽን የመጀመሪያ ድጋፍ ታክሏል።
  • ለኤአርኤም መድረኮች፣ በ ACLE Q3 2020 ዝርዝር ውስጥ የተመዘገቡትን ሁሉንም የ NEON መመሪያዎችን የሚሸፍን በተራዘመ የቬክተር መመሪያዎች (ሲኤምዲ) በመተካት የተሟላ የተቀናጀ የC ተግባራት (Intrinsics) ቀርቧል።
  • በጂሲኤን የማይክሮ አርክቴክቸር መሰረት ለ AMD ጂፒዩዎች ኮድ ለማመንጨት የ gfx908 ጂፒዩ ድጋፍ ወደ ኋላ ታክሏል።
  • ለአዳዲስ ፕሮሰሰሮች እና በውስጣቸው ለተተገበረው አዲስ መመሪያ ስብስብ ተጨማሪ ድጋፍ።
    • Intel Sapphire Rapids (-march=saphirerapids፣ለMOVDIRI፣MOVDIR64B፣AVX512VP2INTERSECT፣ENQCMD፣CLDEMOTE፣SERIALIZE፣PTWRITE፣WAITPKG፣TSXLDTRK፣AMXN-TILE፣AMX-TILE፣AMX-TILE
    • Intel Alderlake (-march=alderlake፣ለCLDEMOTE፣PTWRITE፣WAITPKG፣SERIALIZE፣KEYLOCKER፣AVX-VNNI እና HRESET መመሪያዎችን ይደግፋል)።
    • Intel Rocketlake (-march=rocketlake፣ከሮኬት ሐይቅ ያለ SGX ድጋፍ ጋር ተመሳሳይ)።
    • AMD Zen 3 (-ማርች = znver3).
  • በኢንቴል ፕሮሰሰር ላይ ለተመሰረቱ IA-32/x86-64 ሲስተሞች፣ ለአዲስ ፕሮሰሰር መመሪያዎች TSXLDTRK፣ SERIALIZE፣ HRESET፣ UINTRKEYLOCKER፣ AMX-TILE፣ AMX-INT8፣ AMX-BF16፣ AVX-VNNI ተጨምሯል።
  • ለ "-march=x86-64-v[234]" ባንዲራዎች x86-64 የሕንፃ ደረጃዎችን ለመምረጥ ታክሏል (v2 - SSE4.2፣ SSSE3፣ POPCNT እና CMPXCHG16B ቅጥያዎችን ይሸፍናል፤ v3 - AVX2 እና MOVBE፤ v4 - AVX-512 ) .
  • ለRISC-V ስርዓቶች ከትልቅ-ኤንዲያን ባይት ትዕዛዝ ጋር ድጋፍ ታክሏል። የRISC-V መመሪያ ስብስብ አርክቴክቸር ዝርዝር መግለጫውን ለመምረጥ "-misa-spec=*" አማራጭ ታክሏል። የካናሪ መለያዎችን በመጠቀም ለ AddressSanitizer እና ቁልል ጥበቃ ድጋፍ ታክሏል።
  • የ "-fanalyzer" የማይንቀሳቀስ ትንተና ሁነታ ቀጣይነት ያለው መሻሻል, ይህም በፕሮግራሙ ውስጥ በኮድ አፈፃፀም መንገዶች እና የውሂብ ፍሰቶች ላይ በንብረት ላይ የተጠናከረ የእርስ በርስ ትንተናን ያከናውናል. ሞዱ በማጠናቀር ደረጃ ላይ ያሉ ችግሮችን ፈልጎ ማግኘት ይችላል፡ ለምሳሌ ወደ ነፃ() ድርብ ጥሪ ለአንድ የማህደረ ትውስታ ቦታ ተግባር፣ የፋይል ገላጭ ፍንጣቂዎች፣ ባዶ ጠቋሚዎችን መሰረዝ እና ማለፍ፣ የተፈቱ የማህደረ ትውስታ ብሎኮችን ማግኘት፣ ያልታወቁ እሴቶችን መጠቀም፣ ወዘተ። በአዲሱ ስሪት:
    • የፕሮግራሙን ሁኔታ ለመከታተል ኮድ ሙሉ በሙሉ እንደገና ተጽፏል. በጣም ትላልቅ C ፋይሎችን በመቃኘት ላይ ያሉ ችግሮች ተፈትተዋል.
    • የመጀመሪያ C++ ድጋፍ ታክሏል።
    • የማህደረ ትውስታ ድልድል እና የአቀማመጥ ትንተና ከተወሰኑ ማሎክ እና ነፃ ተግባራት ተወስዷል፣ እና አሁን አዲስ/ሰርዝ እና አዲስ[]/ሰርዝ[]ን ይደግፋል።
    • አዲስ ማስጠንቀቂያዎች ታክለዋል፡ -ዋናሊዘር-shift-count-negative፣ -ዋናሊዘር-shift-count-overflow፣ -ዋናሊዘር-ወደ-ኮንስት-ይፃፋል እና -ዋናሊዘር-ወደ-ሕብረቁምፊ-ቀጥታ ይፃፉ።
    • አዲስ የማረም አማራጮች ታክለዋል -fdump-analyzer-json እና -fno-analyzer-feasibility።
    • ተንታኙን በፕለጊን ለጂሲሲ የማራዘም ችሎታ ተተግብሯል (ለምሳሌ፣ በCPython ውስጥ ያለውን የተሳሳተ የአለምአቀፍ መቆለፊያ (ጂአይኤል) አጠቃቀምን ለማረጋገጥ ፕለጊን ተዘጋጅቷል።

ምንጭ: opennet.ru

አስተያየት ያክሉ