د 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 معیار، ملاتړ کیږي.
  • د GCC پروژې (GCC Rust) لخوا چمتو شوي د زنګ ژبې کمپیلر پلي کولو سره مخکینۍ پای د GCC سرچینې ونې کې اضافه شوی. په خپل اوسني شکل کې، مخکینۍ پای د تجربوي په توګه نښه شوی او د ډیفالټ لخوا غیر فعال شوی. یوځل چې فرنټ اینډ چمتو شي (په راتلونکي ریلیز کې تمه کیږي) ، د GCC معیاري وسیلې په Rust ژبه کې د برنامو تالیف کولو لپاره کارول کیدی شي پرته لدې چې د LLVM پرمختګونو په کارولو سره د Rustc کمپیلر نصبولو اړتیا وي.
  • د لینک وخت اصلاح کولو (LTO) انجن د GNU جوړ پروژې لخوا ملاتړ شوي د کار سرور لپاره ملاتړ اضافه کړی ترڅو په ډیری تارونو کې د موازي جوړونو اجرا کولو ته وده ورکړي. په GCC کې، جابسرور د ټول پروګرام په شرایطو کې د LTO اصلاح کولو پرمهال د کار موازي کولو لپاره کارول کیږي (WPA، د ټول پروګرام تحلیل). د دندې سرور سره د تعامل لپاره، نومول شوي پایپونه د ډیفالټ په واسطه کارول کیږي (-jobserver-style=fifo).
  • جامد شنونکی (-fanalyzer) 20 نوي تشخیصي چکونه وړاندې کوي، پشمول د "-Wanalyzer-out-of-bounds"، "-Wanalyzer-Allocation-size"، "-Wanalyzer-deref-before-check"، "-Wanalyzer- infinite -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 معیار کې تعریف شوي ځینې ځانګړتیاوې پلي کړي، لکه د نول پوائنټرونو تعریف کولو لپاره د nullptr ثابتول، د متنوع لیستونو کارول ساده کول، د شمیرو وړتیاوو پراخول، نوریټرن خاصیت، د شیانو تعریف کولو پر مهال د کانسټیکسپر او آٹو کارولو ته اجازه ورکول، د ډولونو ډول. او typeof_unqual، نوي کلیدي کلمې alignas، alignof، bool، false، static_asssert، thread_local او true، د پیل کولو په وخت کې د خالي قوسونو مشخص کولو ته اجازه ورکوي.
  • په C++ 23 معیاري کې تعریف شوي ځینې ځانګړتیاوې پلي کړي، لکه د مرکب بیانونو په پای کې د نښانونو ځای پرځای کولو وړتیا، د char8_t ډول سره مطابقت، د #خبرتیا دمخه پروسیسر لارښود، محدود (\u{}, \o{}, \x{}) او نومول شوی ('\N{لاتین کیپیټل لیټر 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]" بیرغ د چلند غوره کولو لپاره اضافه شوی کله چې په جوړښتونو کې د انعطاف وړ صف عناصرو اداره کول (د انعطاف وړ سرې غړي، د جوړښت په پای کې د نامعلومې اندازې لړۍ، د بیلګې په توګه، "int b[]" ).
  • د "-Wenum-int-mismatch" بیرغ اضافه شوی ترڅو خبرداری ورکړي که چیرې د اینوم ډول او د انټیجر ډول تر مینځ توپیر شتون ولري.
  • د فورټران ژبې لپاره مخکنی پای په بشپړ ډول د نهایی کولو ملاتړ کوي.
  • د Go ژبې لپاره په لومړي پای کې، د عمومي دندو او ډولونو (جنریک) لپاره ملاتړ اضافه شوی، او د Go ژبې 1.18 لپاره د کڅوړو سره مطابقت ډاډمن شوی.
  • د AArch64 جوړښت لپاره شالید د CPU Ampere-1A (ampere1a)، آرم کورټیکس-A715 (cortex-a715)، Arm Cortex-X1C (cortex-x1c)، Arm Cortex-X3 (cortex-x3) او Arm Neoverse V2 (Arm Neoverse V2) ملاتړ کوي. -v9.1). د "armv9.2-a"، "armv9.3-a" او "armv2-a" دلیلونو لپاره مالتړ د "-march=" اختیار ته اضافه شوی. د FEAT_LRCPC، FEAT_CSSC او FEAT_LSEXNUMX پروسیسر توسیعونو لپاره ملاتړ اضافه شوی.
  • د CPU STAR-MC1 (star-mc1)، Arm Cortex-X1C (cortex-x1c) او Arm Cortex-M85 (cortex-m85) لپاره ملاتړ د ARM جوړښت لپاره په پس منظر کې اضافه شوی.
  • د x86 معمارۍ لپاره پس منظر د Intel Raptor Lake، Meteor Lake، Sierra Forest، Grand Ridge، Emerald Rapids، Granite Rapids پروسیسرونو، او همدارنګه د AMD Zen 4 (znver4) پروسیسرونو لپاره ملاتړ اضافه کوي. د لارښوونې ترتیب شوي آرکیټیکچر توسیعونه AVX-IFMA، AVX-VNNI-INT8، AVX-NE-CONVERT، CMPccXADD، AMX-FP16، PREFETCHI، RAO-INT او AMX-COMPLEX، په Intel پروسیسرونو کې وړاندیز شوي، پلي شوي. په SSE2 سیسټمونو کې د C او C++ ژبو لپاره، د __bf16 ډول چمتو شوی.
  • د AMD Radeon GPUs (GCN) لپاره د کوډ نسل پس منظر کې د OpenMP/OpenACC فعالیت ښه کولو لپاره د AMD Instinct MI200 سرعت کونکي کارولو وړتیا شامله ده. د SIMD لارښوونو په کارولو سره ښه ویکتوریزیشن.
  • د لونګ آرچ پلیټ فارم لپاره د شالید ظرفیتونه د پام وړ پراخه شوي.
  • د RISC-V جوړښت لپاره په پس منظر کې، د T-Head XuanTie C906 (thead-c906) CPU لپاره ملاتړ اضافه شوی. د ویکتور پروسیسرونو ملاتړ د RISC-V ویکتور توسیع داخلي 0.11 مشخصاتو کې تعریف شوی پلي شوی. د RISC-V مشخصاتو ته د 30 توسیعونو لپاره ملاتړ اضافه شوی.
  • د -شریک شوي اختیار سره د شریک شوي شیانو رامینځته کول د فلټینګ پوائنټ چاپیریال اضافه کولو وروسته د سټارټ اپ کوډ اضافه کول ودروي که -Ofast ، -ffast-math، یا -funsafe-math-optimizations فعال شوي وي.
  • د DWARF ډیبګ فارمیټ لپاره ملاتړ نږدې ټولو تشکیلاتو کې پلي کیږي.
  • د Zstandard الګوریتم په کارولو سره د ډیبګ کولو معلوماتو فشارولو لپاره "-gz=zstd" اختیار اضافه شوی. د میراث "-gz=zlib-gnu" ډیبګ کولو کمپریشن حالت لپاره ملاتړ بند شوی دی.
  • د OpenMP 5.2 (Open Multi-Processing) او د OpenMP 5.0 او 5.1 معیارونو دوامداره پلي کولو لپاره ابتدايي ملاتړ اضافه شوی، کوم چې د مشترکه حافظې سره په ملټي کور او هایبرډ (CPU+GPU/DSP) سیسټمونو کې د موازي پروګرام کولو میتودونو پلي کولو لپاره APIs او میتودونه تعریفوي. او د ویکتور کولو واحدونه (SIMD).
  • د میراث "STABS" ډیبګ کولو معلوماتو ذخیره کولو فارمیټ لپاره ملاتړ (د -gstabs او -gxcoff اختیارونو سره فعال شوی) ، په 1980s کې رامینځته شوی او په dbx ډیبګر کې کارول شوی ، بند شوی.
  • د سولاریس 11.3 لپاره ملاتړ له مینځه وړل شوی (د دې پلیټ فارم ملاتړ کولو کوډ به په راتلونکي ریلیز کې لرې شي).

سرچینه: opennet.ru

Add a comment