जीसीसी 12.1 पहले ही जारी किया जा चुका है, जानिए इसकी खबरें और इसकी 35वीं वर्षगांठ

जीएनयू जीसीसी लोगो

का शुभारंभ संकलक का नया संस्करण जीसीसी (जीएनयू संकलक संग्रह) 12.1 पहले ही जारी किया गया था और जीसीसी के सभी प्रमुख रिलीज के साथ, यह रिलीज कई अतिरिक्त, सुधार, बग फिक्स और नई सुविधाएं लाएगा, साथ ही इस महीने (23 मई), परियोजना पहली रिलीज के गठन के 35 साल का जश्न मनाएगी।

GCC 12 पहले से ही Fedora 36 के लिए सिस्टम कंपाइलर है, और GCC 12 Red Hat Enterprise Linux पर Red Hat डेवलपर टूलसेट (संस्करण 7) या Red Hat GCC टूलसेट (संस्करण 8 और 9) में भी उपलब्ध होगा।

जीसीसी डेवलपर्स को जीसीसी, 12.1 की एक और बड़ी रिलीज की घोषणा करते हुए गर्व हो रहा है।

इस वर्ष हम जीसीसी के पहले बीटा संस्करण की 35वीं वर्षगांठ मना रहे हैं
और इस महीने हम जीसीसी 35 की रिलीज के 1.0 साल पूरे होने का जश्न मनाएंगे!

यह रिलीज़ STABS डिबग प्रारूप के लिए समर्थन छोड़ देता है और
सीटीएफ डिबगिंग प्रारूप के लिए समर्थन पेश करता है [1]। सी और सी++
सुविधाओं के लिए विस्तारित समर्थन के साथ इंटरफेस का विकास जारी है
आगामी C2X और C++23 मानकों और C++ मानक पुस्तकालय में
C++20 और C++23 के प्रायोगिक भागों के लिए समर्थन में सुधार करता है।
फोरट्रान इंटरफ़ेस अब सी के साथ इंटरऑपरेबिलिटी के लिए टीएस 29113 के साथ पूरी तरह से अनुपालन करता है।

जीसीसी 12.1 में नया क्या है?

इस नए संस्करण में कई प्रस्तावों को लागू किया गया है, जैसे भाषाओं के लिए सी और सी ++, जोड़ा गया एक अंतर्निहित कार्य __किसी वस्तु का आकार निर्धारित करने के लिए buildin_dynamic_object_size, क्लैंग के समान कार्य के साथ संगत।

जोड़ा C और C++ भाषाओं के लिए "अनुपलब्ध" विशेषता के लिए समर्थन (उदाहरण के लिए, आप उन कार्यों को चिह्नित कर सकते हैं जिनके परिणामस्वरूप उपयोग किए जाने पर त्रुटि होगी), साथ ही सी और सी ++ भाषाओं के लिए "#elifdef" और "#elifndef" प्रीप्रोसेसिंग निर्देशों के लिए अतिरिक्त समर्थन।

यह भी नोट किया जाता है कि UTF-8 वर्णों का दुरुपयोग होने पर चेतावनी देने के लिए "-Wbidi-chars" ध्वज, सरणियों को संदर्भित करने वाले दो ऑपरेंड की तुलना करने का प्रयास करते समय चेतावनी जारी करने के लिए द्विदिश पाठ प्रदर्शन क्रम के साथ-साथ "-वार्रे-तुलना" ध्वज को बदलना।

इसके अलावा, आईओपनएमपी 5.0 और 5.1 मानकों का कार्यान्वयन (ओपन मल्टी-प्रोसेसिंग), जो साझा मेमोरी और वेक्टराइज़ेशन यूनिट्स (SIMD) के साथ मल्टीकोर और हाइब्रिड (CPU + GPU / DSP) सिस्टम पर समानांतर प्रोग्रामिंग विधियों को लागू करने के लिए API और विधियों को परिभाषित करता है, जारी रखा गया था।

यह भी OpenACC 2.6 समानांतर प्रोग्रामिंग विनिर्देश के बेहतर कार्यान्वयन, GPU और विशेष प्रोसेसर जैसे NVIDIA PTX पर ऑफलोड संचालन के साधनों को परिभाषित करना; और Intel AVX512-FP16 विस्तारित निर्देशों और _Float16 प्रकार के लिए x86 कोड जनरेशन बैकएंड के लिए समर्थन जोड़ना।

फोरट्रान फ्रंट-एंड टीएस 29113 विनिर्देश के लिए पूर्ण समर्थन प्रदान करता है, जो फोरट्रान और सी कोड के बीच पोर्टेबिलिटी सुनिश्चित करने की संभावनाओं का वर्णन करता है।

1980 के दशक में बनाए गए "STABS" डिबगिंग सूचना भंडारण प्रारूप के लिए बहिष्कृत समर्थन।

__builtin_shufflevector(vec1, vec2, index1, index2,…) एक्सटेंशन के लिए जोड़ा गया समर्थन जो पहले क्लैंग में जोड़ा गया था, जो सामान्य वेक्टर फेरबदल और फेरबदल संचालन करने के लिए एकल कॉल प्रदान करता है।

"-O2" अनुकूलन स्तर का उपयोग करते समय, वेक्टरकरण डिफ़ॉल्ट रूप से सक्षम होता है (-ftree-vectorize और -fvect-cost-model=very-सस्ते मोड सक्षम होते हैं)। "बहुत सस्ता" मॉडल वैश्वीकरण की अनुमति तभी देता है जब वेक्टर कोड पूरी तरह से वेक्टर करने योग्य स्केलर कोड को बदल सकता है।

जोड़ा गया "-फट्रिविअल-ऑटो-वर-इनिट" मोड स्टैक पर स्पष्ट चर आरंभीकरण को सक्षम करने के लिए मुद्दों को ट्रैक करने और अप्रारंभीकृत चर के उपयोग से जुड़ी कमजोरियों को ब्लॉक करने के लिए।

जोड़ा गया संकलक में निर्मित सी कार्यों का कार्यान्वयन (आंतरिक) विस्तारित एआरएम निर्देशों (ls64) के उपयोग के आधार पर स्मृति में परमाणु लोडिंग और डेटा भंडारण के लिए। ARM mopoption एक्सटेंशन का उपयोग करके memcpy, memmove, और memset फ़ंक्शंस को तेज़ करने के लिए समर्थन जोड़ा गया।

जोड़ा एक नया सत्यापन मोड "-fsanitize=shadow-call-stack" ( शैडोकॉलस्टैक ), जो वर्तमान में केवल AArch64 आर्किटेक्चर के लिए उपलब्ध है और "-fixed-r18" विकल्प के साथ कोड संकलित करते समय काम करता है। यह मोड स्टैक बफर ओवरफ्लो की स्थिति में फ़ंक्शन के रिटर्न पते को फिर से लिखने से सुरक्षा प्रदान करता है। सुरक्षा का सार फ़ंक्शन पर नियंत्रण के हस्तांतरण के बाद वापसी पते को एक अलग "छाया" स्टैक में सहेजना और फ़ंक्शन से बाहर निकलने से पहले इस पते को पुनर्प्राप्त करना है।

Fuente: https://gcc.gnu.org/pipermail


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।