د شپږو میاشتو پراختیا وروسته
په نوي ریلیز کې کلیدي بدلون د شاملولو و
- د خلاصې نحو د ونې د بیا رغولو وړتیا اضافه کړه (
AST ) د مات شوي C++ کوډ لپاره، کوم چې د غلطیو په تشخیص کې د مرستې لپاره کارول کیدی شي او بهرنۍ اسانتیاو ته اضافي معلومات چمتو کوي لکه کلینګ - پاک او کلینګ. فیچر د C++ کوډ لپاره په ډیفالټ فعال شوی او د "-Xclang -f[no-]recovery-ast" اختیارونو له لارې کنټرول کیږي. - د نوي تشخیصي طریقې اضافه شوي:
- "-Wpointer-to-int-cast" د انټیجر ډول int ته د پوائنټرونو کاسټ کولو په اړه د اخطارونو یوه ډله ده چې ټول ممکنه ارزښتونه نه ځایوي.
- "-Wuninitialized-const-Reference" - د فعالیت پیرامیټونو کې د غیر پیل شوي متغیرونو تیرولو په اړه خبرداری چې د "const" خاصیت سره د حوالې دلیلونه مني.
- "-Wimplicit-const-int-float-conversion" - د انټیجر ډول ته د ریښتیني ثابت بدلولو په اړه د ډیفالټ خبرداری لخوا فعال شوی.
- د ARM پلیټ فارم لپاره ، په کمپیلر کې رامینځته شوي C افعال چمتو شوي (
داخلي )، د اغیزمن ویکتور لارښوونو سره ځای په ځای شوی آرم v8.1-M MVE او CDE. شته دندې په سرلیک فایلونو کې تعریف شوي arm_mve.h او arm_cde.h. -
زیاته کړه د پراخ شوي انټیجر ډولونو _ExtInt(N) یو سیټ، تاسو ته اجازه درکوي داسې ډولونه رامینځته کړئ چې د دوه قوتونو ضرب نه وي، کوم چې په FPGA/HLS کې په اغیزمنه توګه پروسس کیدی شي.د مثال په توګه , _ExtInt(7) د انټیجر ډول تعریفوي چې 7 بټونه لري. - اضافه شوي میکرو چې د ARM SVE (د توزیع وړ ویکتور توسیع) لارښوونو پراساس د جوړ شوي C افعالونو لپاره ملاتړ تعریفوي:
__ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
__ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
__ARM_FEATURE_SVE_MATMUL_INT8،
__ARM_FEATURE_SVE2، __ARM_FEATURE_SVE2_AES،
__ARM_FEATURE_SVE2_BITPERM،
__ARM_FEATURE_SVE2_SHA3،
__ARM_FEATURE_SVE2_SM4. د مثال په توګه، د __ARM_FEATURE_SVE میکرو تعریف شوی کله چې د کمانډ لاین اختیار "-march=armv64-a+sve" ترتیب کولو سره د AArch8 کوډ رامینځته کول. - د "-O" بیرغ اوس د "-O1" پرځای د "-O2" اصلاح کولو حالت سره پیژندل شوی.
- نوي کمپیلر بیرغونه اضافه کړل:
- "-fstack-clash-protection" - په وړاندې محافظت وړوي
د سټیک او ټوټو تقاطع . - "-ffp-exception-behavior={ignore,maytrap,strict}" - تاسو ته اجازه درکوي د فلوټینګ پوائنټ شمیرو لپاره د استثنایی سمبالونکي حالت غوره کړئ.
- "-ffp-model={ دقيق، سخت، چټک}" - د فلوټينګ پوائنټ شمېرو لپاره د ځانګړو انتخابونو لړۍ ته السرسي آسانه کوي.
- "-fpch-codegen" او "-fpch-debuginfo" د کوډ او debuginfo لپاره د جلا اعتراض فایلونو سره د مخکې جوړ شوي سرلیک (PCH) رامینځته کولو لپاره.
- "-fsanitize-coverage-allowlist" او "-fsanitize-coverage-blocklist" د پوښښ ازموینې د سپینو او تور لیستونو چک کولو لپاره.
- "-mtls-size={12,24,32,48}" د TLS (thread-local storage) اندازه غوره کولو لپاره.
- د تجربوي RISC-V توسیعونو د فعالولو لپاره "-مینیبل-تجربه-توسیع"
- "-fstack-clash-protection" - په وړاندې محافظت وړوي
- د C لپاره ډیفالټ حالت "-fno-common" دی، کوم چې په ځینو پلیټ فارمونو کې نړیوالو متغیرونو ته د لا اغیزمن لاسرسي اجازه ورکوي.
- د ډیفالټ ماډل کیچ له /tmp څخه ~/.cache لارښود ته لیږدول شوی. د پورته کولو لپاره، تاسو کولی شئ د "-fmodules-cache-path=" بیرغ وکاروئ.
- د ډیفالټ C ژبې معیار له gnu11 څخه gnu17 ته تازه شوی.
- د GNU C توسیع لپاره لومړني ملاتړ اضافه شوی "
asm انلاین » د جمع کونکي داخلولو اضافه کولو لپاره. غزول لاهم تحلیل کیږي، مګر په هیڅ ډول پروسس شوي ندي. - د OpenCL او CUDA مالتړ سره تړلي وړتیاوې پراخې شوې. د OpenCL 2.0 بلاک تشخیص لپاره ملاتړ اضافه شوی او د OpenMP 5.0 نوي ځانګړتیاوې پلي شوي.
- په خارجي "C" او خارجي "C++" بلاکونو کې د سمون لپاره د کلینګ فارمیټ یوټیلټي ته د IndentExternBlock اختیار اضافه شوی.
- جامد تحلیل کونکي په C++ کې د میراثي جوړونکو اداره کول ښه کړي. د تالاشۍ لپاره نوي چیکونه alpha.core.C11Lock او alpha.fuchsia.Lock د تالاشۍ چیک کولو لپاره اضافه شوي، alpha.security.cert.pos.34c د putenv، webkit.NoUncountedMemberChecker او webkit.RefCntblBaseVirtualDtor غیر محفوظ ډولونو کشف کولو لپاره د غیر حساب وړ ډولونو کشف کولو لپاره. .cplusplus .SmartPtr د null smart pointer dereference لپاره چک کولو لپاره.
- په لینټر کلینګ - پاک
زیاته کړه د نوي چکونو لویه برخه. - د کلینګ کیشینګ سرور (کلینګ سرور) فعالیت ښه کړی او نوي تشخیصي وړتیاوې یې اضافه کړې.
اصلي
- د جوړونې سیسټم د Python 3 کارولو ته بدل شوی دی. که Python 3 شتون ونلري، نو ممکن د Python 2 کارولو ته بیرته راستانه شي.
- د Go ژبې (llgo) لپاره د کمپیلر سره مخکینۍ پای له خوشې کیدو څخه ایستل شوی ، کوم چې ممکن په راتلونکي کې بیا تنظیم شي.
- د vector-function-abi-variant خاصیت په منځمهاله نمایندګۍ (IR) کې اضافه شوی ترڅو د کالونو ویکتوریز کولو لپاره د سکالر او ویکتور افعال تر مینځ نقشه تشریح کړي. د llvm::VectorType څخه دوه جلا ویکتور ډولونه شتون لري llvm::FixedVectorType او llvm::ScalableVectorType.
- د udef ارزښتونو پراساس څانګه کول او د معیاري کتابتون دندو ته د undef ارزښتونو لیږدول د نه تعریف شوي چلند په توګه پیژندل کیږي. IN
memset/memcpy/memmove د undef پوائنټرونو تیریدو ته اجازه ورکوي، مګر که د اندازې سره پیرامیټر صفر وي. - LLJIT د LLJIT::initialize او LLJIT::deinitialize میتودونو له لارې د جامد ابتکاراتو ترسره کولو لپاره ملاتړ اضافه کړی. د StaticLibraryDefinitionGenerator ټولګي په کارولو سره JITDylib ته د جامد کتابتونونو اضافه کولو وړتیا پلي کړه. د C API لپاره اضافه شوی
ORCv2 (د JIT کمپیلرونو جوړولو لپاره API). - د Cortex-A64، Cortex-A34، Cortex-A77 او Cortex-X78 پروسیسرونو لپاره مالتړ د AArch1 معمارۍ لپاره پس منظر کې اضافه شوی. د ARMv8.2-BF16 (BFloat16) او ARMv8.6-A توسیعونه پلي شوي، په شمول د RMv8.6-ECV (پرمختللي کاونټر مجازی کول)، ARMv8.6-FGT (ښه دانه جالونه)، ARMv8.6-AMU (فعالیت نظارت کونکي) او ARMv8.0-DGH (د معلوماتو راټولولو اشاره). د SVE ویکتور لارښوونو ته د جوړ شوي فنکشن - پابندۍ لپاره د کوډ رامینځته کولو وړتیا چمتو شوې.
- د Cortex-M55، Cortex-A77، Cortex-A78 او Cortex-X1 پروسیسرونو لپاره مالتړ د ARM جوړښت لپاره پس منظر کې اضافه شوی. تمدیدونه پلي شوي
Armv8.6-A Matrix ضرب او RMv8.2-AA32BF16 BFloat16. - د POWER10 پروسیسرونو لپاره د کوډ تولید لپاره مالتړ د PowerPC جوړښت لپاره شاته پای ته اضافه شوی. د لوپ اصلاح کول پراخ شوي او د فلوټینګ پوائنټ ملاتړ ښه شوی.
- د RISC-V جوړښت لپاره شالید د پیچونو منلو ته اجازه ورکوي چې د تجربوي تمدید شوي لارښود سیټونو ملاتړ کوي چې لاهم په رسمي ډول تصویب شوي ندي.
- د AVR معمارۍ لپاره شالید د تجربې کټګورۍ څخه مستحکم ته لیږدول شوی ، په لومړني توزیع کې شامل دی.
- د x86 جوړښت لپاره شالید د Intel AMX او TSXLDTRK لارښوونو ملاتړ کوي. د بریدونو پروړاندې محافظت اضافه شوی
LVI (لوډ ویلیو انجیکشن)، او همدارنګه په CPU کې د عملیاتو د قیاس اجرا کولو له امله رامینځته شوي بریدونو مخنیوي لپاره د عمومي قیاس اجرایی اړخ اغیزې سپپریشن میکانیزم پلي کوي. - د SystemZ معمارۍ لپاره په شالید کې، د MemorySanitizer او LeakSanitizer لپاره ملاتړ اضافه شوی.
- Libc++ ته د ریاضيکي ثابتو سره د سرلیک فایل لپاره ملاتړ اضافه شوی
. -
پراخ شوی د LLD لینکر وړتیاوې. د ELF فارمیټ لپاره ښه ملاتړ، په شمول د اضافې اختیارونو "-lto-emit-asm"، "-lto-ټول-برنامه-لیدوالی"، "-پرنټ-آرشیف-احصایې"، "-شفل-برخې"، " -thinlto- واحد ماډل"، "-ځانګړي"، "-rosegment"، "-threads=N". په فایل کې د ټریس خوندي کولو لپاره د "--time-trace" اختیار اضافه شوی، کوم چې بیا په کروم کې د کروم: // tracing انٹرفیس له لارې تحلیل کیدی شي.
سرچینه: opennet.ru