LLVM 16.0 आणि ते प्रसिद्ध झाले आणि या त्याच्या बातम्या आहेत

LLVM लोगो

LLVM हे कंपाइलर्स विकसित करण्यासाठी तसेच नवीन प्रोग्रामिंग भाषा तयार करण्यासाठी आणि विद्यमान भाषा सुधारण्यासाठी मदत करण्यासाठी एक फ्रेमवर्क आहे.

केवळ सहा महिन्यांहून अधिक विकासानंतर, च्या प्रक्षेपण प्रकल्पाची नवीन आवृत्ती एलएलव्हीएम 16.0, आवृत्ती ज्यामध्ये मोठ्या प्रमाणात बदल आणि सुधारणा अंमलात आणल्या जातात.

LLVM बद्दल अपरिचित असलेल्यांसाठी, तुम्हाला हे माहित असले पाहिजे एक GCC सुसंगत कंपाइलर आहे (कंपायलर, ऑप्टिमायझर्स आणि कोड जनरेटर) जे प्रोग्राम्सना RISC सारख्या आभासी सूचना इंटरमीडिएट बिटकोडमध्ये संकलित करतात (मल्टीलेव्हल ऑप्टिमायझेशन सिस्टमसह निम्न-स्तरीय व्हर्च्युअल मशीन).

जेआयटी कंपाइलरद्वारे व्युत्पन्न केलेला स्यूडोकोड प्रोग्रामच्या अंमलबजावणीच्या वेळी मशीन सूचनांमध्ये रूपांतरित केला जाऊ शकतो.

एलएलव्हीएम 16.0 ची मुख्य नवीन वैशिष्ट्ये

सादर केलेल्या या नवीन आवृत्तीमध्ये, आम्ही अनेक महत्त्वपूर्ण सुधारणा शोधू शकतो clang 16.0 मध्ये, ज्यापैकी डीफॉल्ट C++/ObjC++ मानक वेगळे आहे, जे gnu++17 वर सेट केले आहे (पूर्वी gnu++14), जे डीफॉल्टनुसार GNU विस्तारांसह C++17 वैशिष्ट्यांसाठी समर्थन सूचित करते. LLVM कोडमध्ये C++17 मानकामध्ये परिभाषित केलेल्या घटकांच्या वापरास परवानगी आहे.

आणखी एक बदल जो वेगळा आहे तो म्हणजे तो जोडला गेला आहे Cortex-A715, Cortex-X3 आणि Neoverse CPU साठी समर्थन AArch2 बॅकएंडसाठी V8.3, Armv64 विस्तार आणि बहु-आवृत्ती वैशिष्ट्ये.
La प्लॅटफॉर्म सुसंगतता Armv2, Armv2A, Armv3 आणि Armv3M बंद करण्यात आले आहेत ARM आर्किटेक्चर बॅकएंडमध्ये, ज्यासाठी योग्य कोड निर्मितीची हमी दिली जात नाही. जटिल संख्यांसह कार्य करण्याच्या सूचनांसाठी कोड व्युत्पन्न करण्याची क्षमता जोडली आणि जोडली आर्किटेक्चरसाठी समर्थन सूचना संच (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT ते X86 बॅकएंड.

त्याच्या बाजूला, LLVM बांधण्यासाठी आवश्यकता वाढवण्यात आल्या आहेत, तसेच बिल्ड आता C++17 मानकांशी सुसंगत असले पाहिजे, म्हणजे बिल्डसाठी किमान GCC 7.1, Clang 5.0, Apple Clang 10.0 किंवा Visual Studio 2019 16.7 आवश्यक आहे.

दुसरीकडे, ते देखील हायलाइट करते MIPS, PowerPC आणि RISC-V आर्किटेक्चरसाठी सुधारित बॅकएंड, तसेच LLDB डीबगरसाठी LoongArch आर्किटेक्चरसाठी 64-बिट एक्झिक्युटेबल डीबग करण्यासाठी समर्थन आणि COFF डीबगिंग चिन्हांचे सुधारित हाताळणी.

इतर बदलांपैकी बाहेर उभे रहा:

  • Libc++ लायब्ररीमध्ये, मुख्य काम C++20 आणि C++23 मानकांच्या नवीन वैशिष्ट्यांसाठी समर्थन लागू करण्यावर केंद्रित होते.
  • अॅड्रेस रिलोकेशन स्कॅन आणि सेक्शन इनिशिएलायझेशन ऑपरेशन्स समांतर करून LDD लिंकरमध्ये लिंक टाइम लक्षणीयरीत्या कमी करण्यात आला आहे. ZSTD अल्गोरिदम वापरून सेक्शन कॉम्प्रेशनसाठी समर्थन जोडले.
  • C++20 मानकासह लागू केलेली प्रगत कार्ये देखील हायलाइट केली आहेत.
  • लॅम्बडा फंक्शन्समध्ये संरचित दुवे कॅप्चर करा.
  • अभिव्यक्तींमधील समानता ऑपरेटर.
  • काही संदर्भांमध्ये टाइपनेम कीवर्ड निर्दिष्ट न करण्याची क्षमता,
  • कंस ("Aggr(val1, val2)") दरम्यान जोडलेल्या प्रारंभाची परवानगी.
  • भविष्यातील C++2b मानकांमध्ये परिभाषित केलेली कार्ये.
  • char8_t प्रकारासह प्रदान केलेले समर्थन,
  • "\N{…}" मध्‍ये वापरण्‍यासाठी अनुमत वर्णांची श्रेणी वाढवली,
  • constexpr म्हणून घोषित केलेल्या फंक्शन्समध्ये "static constexpr" म्हणून घोषित व्हेरिएबल्स वापरण्याची क्षमता जोडली.
  • भविष्यातील C2x C मानकांमध्ये परिभाषित केलेली कार्ये:
  • एकाधिक कॉन्फिगरेशन फाइल्स लोड करण्यासाठी समर्थन जोडले (डिफॉल्ट कॉन्फिगरेशन फाइल्स प्रथम लोड केल्या जातात, नंतर त्या “–कॉन्फिगरेशन=” फ्लॅगद्वारे निर्दिष्ट केल्या जातात, ज्या आता अनेक वेळा निर्दिष्ट केल्या जाऊ शकतात).
  • डीफॉल्ट कॉन्फिगरेशन फाइल्सचा लोड ऑर्डर बदलला: क्लॅंग प्रथम फाइल लोड करण्याचा प्रयत्न करते - .cfg आणि ते सापडत नसल्यास, ते दोन फाइल्स लोड करण्याचा प्रयत्न करते .cfg आणि .cfg.
  • नियमित फ्रेम संरेखित वितरणासाठी नवीन बिल्ड ध्वज "-fcoro-aligned-allocation" जोडला.
  • मानक C++ मॉड्यूल्सचे सिंगल-फेज बिल्ड मॉडेल सक्षम करण्यासाठी "-fmodule-output" ध्वज जोडला.
  • स्टॅक फ्रेम लेआउटसह समस्यांचे निदान करण्यासाठी "-Rpass-analysis=stack-frame-layout" मोड जोडला.
  • नवीन __विशेषता__((target_version("cpu_features"))) विशेषता जोडली आणि CPU AArch1 द्वारे प्रदान केलेल्या वैशिष्ट्यांच्या विशिष्ट आवृत्त्या निवडण्यासाठी __विशेषता__((target_clones("cpu_features2″,"cpu_features64",…))) विशेषताची कार्यक्षमता वाढवली. .
  • वर्धित निदान साधने:
  • एक-बिट स्वाक्षरी केलेल्या बिटफिल्डला एक नियुक्त करताना गर्भित ट्रंकेशन पकडण्यासाठी "-Wsingle-bit-bitfield-constant-conversion" चेतावणी जोडली.
  • सुरू न केलेल्या कॉन्स्टेक्स्पर व्हेरिएबल्ससाठी विस्तारित निदान.
  • फंक्शन प्रकार कास्ट करताना संभाव्य समस्या पकडण्यासाठी "-Wcast-function-type-strict" आणि "-Wincompatible-function-pointer-types-strict" चेतावणी जोडल्या.

शेवटी आपल्याला त्याबद्दल अधिक जाणून घेण्यात स्वारस्य असल्यास, मध्ये तपशील तपासू शकता खालील दुवा.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.