جي سي سي 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 Rust) پاران تيار ڪيل Rust Language Compiler جي نفاذ سان گڏ هڪ فرنٽ اينڊ GCC سورس ٽري ۾ شامل ڪيو ويو آهي. موجوده منظر ۾، forntend کي تجرباتي طور نشان لڳايو ويو آھي ۽ ڊفالٽ طور بند ڪيو ويو آھي. هڪ دفعو فرنٽ اينڊ تيار ٿي ويندو (متوقع ايندڙ رليز ۾)، معياري GCC ٽول ڪٽ استعمال ڪري سگهجي ٿو Rust پروگرامن کي گڏ ڪرڻ جي ضرورت کان سواءِ LLVM ڊولپمينٽس استعمال ڪندي ٺهيل rustc compiler کي انسٽال ڪرڻ لاءِ.
  • لنڪ-ان-اسٽيپ آپٽمائيزيشن (LTO) GNU ميڪ پروجيڪٽ پاران سنڀاليل جاب سرور (جاب سرور) لاءِ سپورٽ شامل ڪري ٿو ڪيترن ئي موضوعن تي متوازي تعمير جي عمل کي بهتر ڪرڻ لاءِ. جي سي سي ۾، جاب سرور استعمال ڪيو ويندو آهي ڪم کي متوازي ڪرڻ لاءِ LTO اصلاح دوران پوري پروگرام جي حوالي سان (WPA، سڄو پروگرام تجزيو). نالي ٿيل پائپس (--jobserver-style=fifo) ڊفالٽ طور استعمال ڪيا ويندا آهن نوڪريءَ جي سرور سان رابطو ڪرڻ لاءِ.
  • جامد تجزيي ڪندڙ (-fanalyzer) 20 نوان تشخيصي چيڪ پيش ڪري ٿو، بشمول "-Wanalyzer-out-of-bounds"، "-Wanalyzer-مختص ڪرڻ-سائز"، "-Wanalyzer-deref-pre-check"، "-Wanalyzer- لامحدود -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 مسلسل null pointers جي وضاحت لاءِ، ان کي آسان بڻائي لسٽن کي استعمال ڪرڻ ۾ آسان بڻائي ٿي دليلن جي متغير تعداد سان (متغير)، enums جي صلاحيتن کي وڌائڻ، noreturn انتساب، استعمال جي اجازت ڏئي ٿو. constexpr ۽ auto جڏهن شيون وضاحت ڪري رهيا آهن، قسم جو قسم ۽ قسم آف_unqual، نوان لفظ alignas، alignof، bool، false، static_assert، thread_local ۽ true، شروع ڪرڻ تي خالي قوس جي اجازت ڏيو.
  • C++ 23 معيار ۾ بيان ڪيل ڪجهه خاصيتون لاڳو ڪيون ويون آهن، جهڙوڪ مرڪب اظهار جي آخر ۾ نشان لڳائڻ جي صلاحيت، چار8_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" جھنڊو ڊيڄاريندڙ جاري ڪرڻ لاءِ جيڪڏھن ڳڻپيوڪر قسم ۽ ھڪڙي عددي قسم جي وچ ۾ بي ميل آھي.
  • فورٽران فرنٽ-آخر کي حتمي شڪل ڏيڻ لاءِ مڪمل حمايت حاصل آهي.
  • عام ڪمن ۽ قسمن (جنريڪس) لاءِ سپورٽ گو ٻولي لاءِ فرنٽ اينڊ ۾ شامل ڪئي وئي آھي، ۽ گو 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 (neoverse -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) CPUs لاءِ سپورٽ ARM آرڪيٽيڪچر پس منظر ۾ شامل ڪئي وئي آھي.
  • Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, and AMD Zen 86 (znver4) پروسيسرز لاءِ سپورٽ x4 پس منظر ۾ شامل ڪئي وئي آھي. 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 accelerators استعمال ڪرڻ جي صلاحيت کي لاڳو ڪري ٿو. SIMD هدايتون استعمال ڪندي بهتر ویکٹرائيزيشن.
  • لونگ آرچ پليٽ فارم لاءِ خاص طور تي وڌايو ويو پس منظر جي صلاحيتون.
  • RISC-V پس منظر ۾ CPU T-Head جي XuanTie C906 (thead-c906) لاءِ سپورٽ شامل ڪئي وئي. RISC-V Vector Extension Intrinsic 0.11 وضاحت ۾ بيان ڪيل ویکٹر هينڊلر لاءِ لاڳو ڪيل سپورٽ. شامل ڪيل سپورٽ 30 RISC-V وضاحتن لاءِ.
  • جڏهن "-shared" اختيار سان شيئر ڪيل شيون ٺاهي رهيا آهن، فلوٽنگ پوائنٽ ماحول شامل ڪرڻ کان پوء شروعاتي ڪوڊ وڌيڪ شامل نه ڪيو ويندو آهي جيڪڏهن "-Ofast"، "-ffast-math"، يا "-funsafe-math-optimizations" اصلاحون فعال آهن. .
  • DWARF ڊيبگنگ فارميٽ لاءِ سپورٽ لڳ ڀڳ سڀني ترتيبن ۾ لاڳو ڪئي وئي آهي.
  • شامل ڪيو ويو "-gz=zstd" اختيار Zstandard الگورتھم استعمال ڪندي ڊيبگ معلومات کي دٻائڻ لاءِ. خارج ٿيل ڊيبگ انفارميشن ڪمپريشن موڊ "-gz=zlib-gnu" لاءِ سپورٽ هٽايو ويو.
  • OpenMP 5.2 (اوپن ملٽي پروسيسنگ) لاءِ ابتدائي سپورٽ شامل ڪئي وئي آهي ۽ OpenMP 5.0 ۽ 5.1 معيارن تي عمل درآمد جاري آهي، APIs جي وضاحت ۽ متوازي پروگرامنگ طريقن کي لاڳو ڪرڻ جا طريقا ملٽي ڪور ۽ هائبرڊ (CPU + GPU / DSP) سسٽم سان. گڏيل ياداشت ۽ ویکٹرائيزيشن يونٽ (SIMD).
  • 1980s ۾ ٺھيل ۽ dbx debugger ۾ استعمال ٿيل، Legacy debug information store format "STABS" (جي-gstabs ۽ -gxcoff آپشنز پاران فعال ٿيل) لاءِ سپورٽ، بند ڪئي وئي آھي.
  • سولاريس 11.3 لاءِ ختم ٿيل سپورٽ (هن پليٽ فارم کي سپورٽ ڪرڻ لاءِ ڪوڊ مستقبل جي رليز ۾ هٽايو ويندو).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو