GCC 13 සම්පාදක කට්ටලය නිකුත් කිරීම

වසරක සංවර්ධනයෙන් පසුව, නොමිලේ GCC 13.1 සම්පාදක කට්ටලය නිකුත් කර ඇත, එය නව GCC 13.x ශාඛාවේ පළමු වැදගත් නිකුතුවයි. නව නිකුතු අංක යෝජනා ක්‍රමය යටතේ, සංවර්ධනය අතරතුර 13.0 අනුවාදය භාවිතා කරන ලද අතර, GCC 13.1 නිකුත් කිරීමට ටික කලකට පෙර, GCC 14.0 ශාඛාව දැනටමත් දෙබලක ඇති අතර, එයින් GCC 14.1 හි මීළඟ සැලකිය යුතු නිකුතුව සාදනු ඇත.

ප්රධාන වෙනස්කම්:

  • GCC විසින් Modula-2 ක්‍රමලේඛන භාෂාවෙන් වැඩසටහන් ගොඩනැගීම සඳහා පෙරමුනක් අනුගමනය කරන ලදී. එය PIM2, PIM3, සහ PIM4 උපභාෂාවලට අනුකූල වන ගොඩනැගිලි කේතයට සහ එම භාෂාව සඳහා පිළිගත් ISO ප්‍රමිතියට සහය දක්වයි.
  • Gccrs ව්‍යාපෘතිය (GCC Rust) මගින් සකස් කරන ලද Rust language compiler ක්‍රියාවට නැංවීමේ පෙරමුනක් GCC මූලාශ්‍ර ගසට එක් කර ඇත. වත්මන් දර්ශනයේ දී, forntend පරීක්ෂණාත්මක ලෙස සලකුණු කර ඇති අතර පෙරනිමියෙන් අබල කර ඇත. ඉදිරිපස කොටස සුදානම් වූ පසු (ඊළඟ නිකුතුවේදී බලාපොරොත්තු වේ), LLVM වර්ධනයන් භාවිතයෙන් සාදන ලද rustc සම්පාදකය ස්ථාපනය කිරීමේ අවශ්‍යතාවයකින් තොරව Rust වැඩසටහන් සම්පාදනය කිරීමට සම්මත GCC මෙවලම් කට්ටලය භාවිතා කළ හැක.
  • Link-in-Step Optimization (LTO) GNU Make ව්‍යාපෘතිය මගින් නඩත්තු කරන රැකියා සේවාදායකයක් (රැකියා සේවාදායකය) සඳහා සහය එක් කරයි. GCC හි, සම්පූර්ණ වැඩසටහනේ සන්දර්භය තුළ LTO ප්‍රශස්තිකරණය අතරතුර වැඩ සමාන්තර කිරීමට රැකියා සේවාදායකය භාවිතා කරයි (WPA, සම්පූර්ණ වැඩසටහන් විශ්ලේෂණය). රැකියා සේවාදායකය සමඟ සන්නිවේදනය කිරීමට නම් කරන ලද පයිප්ප (--jobserver-style=fifo) පෙරනිමියෙන් භාවිතා වේ.
  • ස්ථිතික විශ්ලේෂකය (-fanalyzer) "-Wanalyzer-out-of-bounds", "-Wanalyzer-alocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite ඇතුළුව නව රෝග විනිශ්චය චෙක්පත් 20ක් ඉදිරිපත් කරයි. -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • JSON මත පදනම් වූ SARIF ආකෘතියෙන් රෝග විනිශ්චය ප්‍රතිදානය කිරීමේ හැකියාව ක්‍රියාත්මක කර ඇත. ස්ථිතික විශ්ලේෂණ ප්‍රතිඵල (GCC -fanalyzer) ලබා ගැනීමට මෙන්ම අනතුරු ඇඟවීම් සහ දෝෂ පිළිබඳ තොරතුරු ලබා ගැනීමට නව ආකෘතිය භාවිතා කළ හැක. සක්‍රීය කිරීම "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file" විකල්පය සමඟ සිදු කෙරේ, එහිදී "json" සමඟ විකල්ප JSON ආකෘතියේ GCC-විශේෂිත ප්‍රභේදයකින් ප්‍රතිදානය කරයි. .
  • C23 C ප්‍රමිතියේ නිර්වචනය කර ඇති සමහර විශේෂාංග ක්‍රියාවට නංවා ඇත, එනම් null pointer නිර්වචනය කිරීම සඳහා nullptr නියතය, විචල්‍ය තර්ක සංඛ්‍යාවක් සහිත ලැයිස්තු භාවිතා කිරීම පහසු කරයි (විචල්‍ය), enums හි හැකියාවන් පුළුල් කිරීම, noreturn ගුණාංගය, භාවිතයට ඉඩ සලසයි. constexpr සහ auto වස්තු නිර්වචනය කරන විට, typeof සහ typeof_unqual, නව මූල පද alignas, alignof, bool, false, static_assert, thread_local සහ true, ආරම්භයේදී හිස් වරහන් වලට ඉඩ සලසයි.
  • C++23 ප්‍රමිතියේ නිර්වචනය කර ඇති සමහර විශේෂාංග ක්‍රියාවට නංවා ඇත, එනම් සංයුක්ත ප්‍රකාශන අවසානයේ ලකුණු තැබීමේ හැකියාව, char8_t වර්ගය සමඟ ගැළපීම, #අවවාදයයි පෙර සැකසුම් විධානය, (\u{}, \o{} මගින් සීමා කර ඇත. , \x{}), සහ නම් කරන ලද ('\N{LATIN CAPITAL LETTER A}') ගැලවීමේ අනුපිළිවෙලවල්, ස්ථිතික ක්‍රියාකරු(), ස්ථිතික ක්‍රියාකරු[], ප්‍රකාශන තුළ සමානතා ක්‍රියාකරු, constexpr භාවිතය පිළිබඳ යම් සීමාවන් හැර, සහාය මූලාශ්‍ර පාඨවල UTF-8 සඳහා.
  • libstdc++ විසින් C++20 සහ C++23 ප්‍රමිති සඳහා පර්යේෂණාත්මක සහය වැඩි දියුණු කර ඇත, එනම් ශීර්ෂ ගොනු සහාය එකතු කිරීම වැනි සහ std:: ආකෘතිය, දිගු ශීර්ෂ ගොනු හැකියාවන් , අතිරේක පාවෙන ලක්ෂ්‍ය වර්ග එකතු කරන ලදී, ශීර්ෂ ගොනු ක්‍රියාත්මක කරන ලදී සහ .
  • ගොනු විස්තරයක් පූර්ණ සංඛ්‍යා විචල්‍යයකින් සම්මත කර ඇති බවට ලේඛනයට නව ශ්‍රිත උපලක්ෂණ එක් කරන ලදී: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))", සහ "__attribute__((fd_arg_write(N) )) ". ස්ථිතික විශ්ලේෂකය (-fanalyzer) තුළ ගොනු විස්තර කිරීම් සමඟ වැරදි වැඩ හඳුනා ගැනීමට නිශ්චිත ගුණාංග භාවිතා කළ හැක.
  • "__attribute__((උපකල්පනය(EXPR)))" නව උපලක්‍ෂණයක් එකතු කර ඇත, එමඟින් ඔබට ප්‍රකාශනය සත්‍ය බව සම්පාදකයාට පැවසිය හැකි අතර ප්‍රකාශනය ඇගයීමකින් තොරව සම්පාදකයාට මෙම කරුණ භාවිතා කළ හැක.
  • ව්‍යුහයන් තුළ නම්‍යශීලී අරා මූලද්‍රව්‍යයක් සැකසීමේදී හැසිරීම තේරීමට "-fstrict-flex-arrays=[level]" ධජය එක් කරන ලදී (Flexible Array Members, ව්‍යුහයේ අවසානයේ ඇති අනිශ්චිත ප්‍රමාණයේ අරාවක්, උදාහරණයක් ලෙස, "int b[] ")
  • ගණන් කළ වර්ගයක් සහ පූර්ණ සංඛ්‍යා වර්ගයක් අතර නොගැලපීමක් තිබේ නම් අනතුරු ඇඟවීම් නිකුත් කිරීමට "-Wenum-int-mmatch" ධජය එක් කරන ලදී.
  • Fortran ඉදිරිපස අන්තයට අවසන් කිරීම සඳහා පූර්ණ සහාය ඇත.
  • Go භාෂාව සඳහා සාමාන්‍ය ශ්‍රිත සහ වර්ග (ජනක) සඳහා සහය ඉදිරිපස කෙළවරට එක් කර ඇති අතර Go 1.18 භාෂාව සඳහා පැකේජ සමඟ ගැළපීම සහතික කර ඇත.
  • AArch64 පසුපෙළ CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) සහ Arm Neoverse V2 (neovers -v2) සඳහා සහය දක්වයි. . "armv9.1-a", "armv9.2-a", සහ "armv9.3-a" තර්ක සඳහා සහය "-march=" විකල්පයට එක් කර ඇත. FEAT_LRCPC, FEAT_CSSC සහ FEAT_LSE2 ප්‍රොසෙසර දිගු සඳහා සහය එක් කරන ලදී.
  • STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c), සහ Arm Cortex-M85 (cortex-m85) CPU සඳහා සහය ARM ගෘහ නිර්මාණ පසුබිමට එක් කර ඇත.
  • Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids සහ AMD Zen 86 (znver4) ප්‍රොසෙසර සඳහා සහය x4 පසුපෙළට එක් කර ඇත. Intel ප්‍රොසෙසරවල යෝජිත AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, සහ AMX-COMPLEX උපදෙස් කට්ටල ගෘහ නිර්මාණ දිගු ක්‍රියාත්මක කර ඇත. SSE2 සහිත පද්ධති මත C සහ C++ සඳහා, __bf16 වර්ගය සපයා ඇත.
  • AMD Radeon GPUs (GCN) සඳහා කේත උත්පාදන පසුතලය OpenMP/OpenACC කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා AMD Instinct MI200 ත්වරණකාරක භාවිතා කිරීමේ හැකියාව ක්‍රියාත්මක කරයි. SIMD උපදෙස් භාවිතයෙන් වැඩි දියුණු කරන ලද දෛශිකකරණය.
  • LoongArch වේදිකාව සඳහා සැලකිය යුතු ලෙස පුළුල් කළ පසුපෙළ හැකියාවන්.
  • RISC-V පසුබිමෙහි CPU T-Head හි XuanTie C906 (thead-c906) සඳහා සහය එක් කරන ලදී. RISC-V Vector Extension Intrinsic 0.11 පිරිවිතරයේ නිර්වචනය කර ඇති දෛශික හසුරුවන්නන් සඳහා ක්‍රියාත්මක කරන ලද සහාය. RISC-V පිරිවිතර දිගු 30ක් සඳහා සහය එක් කරන ලදී.
  • "-shared" විකල්පය සමඟ බෙදාගත් වස්තු ජනනය කරන විට, "-Ofast", "-ffast-math", හෝ "-funsafe-math-optimizations" ප්‍රශස්තිකරණයන් සක්‍රීය කර ඇත්නම්, පාවෙන ලක්ෂ්‍ය පරිසරයක් එක් කිරීමෙන් පසු ආරම්භක කේතය තවදුරටත් එකතු නොවේ. .
  • DWARF දෝශ නිරාකරණ ආකෘතිය සඳහා සහය සෑම වින්‍යාසයකම පාහේ ක්‍රියාත්මක වේ.
  • Zstandard ඇල්ගොරිතම භාවිතයෙන් දෝශ නිරාකරණ තොරතුරු සම්පීඩනය කිරීමට "-gz=zstd" විකල්පය එක් කරන ලදී. "-gz=zlib-gnu" ඉවත් කරන ලද නිදොස් කිරීමේ තොරතුරු සම්පීඩන මාදිලිය සඳහා සහය ඉවත් කරන ලදී.
  • OpenMP 5.2 (Open Multi-Processing) සඳහා මූලික සහය එකතු කර ඇති අතර OpenMP 5.0 සහ 5.1 ප්‍රමිතීන් ක්‍රියාත්මක කිරීම අඛණ්ඩව සිදු කර ඇත, බහු-core සහ hybrid (CPU + GPU / DSP) පද්ධති මත සමාන්තර ක්‍රමලේඛන ක්‍රම යෙදීම සඳහා API සහ ක්‍රම නිර්වචනය කරයි. හවුල් මතකය සහ දෛශික ඒකක (SIMD).
  • 1980 ගණන්වල නිර්මාණය කරන ලද සහ dbx debugger හි භාවිතා කරන ලද (-gstabs සහ -gxcoff විකල්ප සමඟ සක්‍රීය කරන ලද) උරුම STABS නිදොස් කිරීමේ තොරතුරු ගබඩා ආකෘතිය සඳහා අත්හල සහය.
  • Solaris 11.3 සඳහා අත්හල සහය (මෙම වේදිකාවට සහාය දක්වන කේතය අනාගත නිකුතුවකදී ඉවත් කරනු ඇත).

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

අදහස් එක් කරන්න