LLVM د کمپیلرونو رامینځته کولو لپاره یو چوکاټ دی او همدارنګه د نوي برنامې ژبې رامینځته کولو او موجوده ژبو ته وده ورکولو کې مرسته کوي.
د پرمختګ شپږ میاشتې وروسته د LLVM 17.0 نوې نسخه وړاندې شوې، په کوم کې چې په کلینګ 17.0 کې مختلف پرمختګونه ، بدلونونه ، بګ فکسونه او له هرڅه پورته مختلف مهم اړخونه پلي شوي.
د هغو کسانو لپاره چې د LLVM سره نا اشنا دي، تاسو باید پوه شئ چې دا د GCC مطابقت لرونکی کمپیلر دی (کمپیلر، اصلاح کونکي، او کوډ جنریټرونه) چې پروګرامونه د RISC په څیر مجازی لارښوونې منځګړی بټکوډ کې تالیف کوي (د ټیټ کچې مجازی ماشین د څو سطحې اصلاح کولو سیسټم سره).
تولید شوی سیډوکوډ د JIT کمپیلر لخوا یوازې د برنامې اجرا کولو په وخت کې د ماشین لارښوونو ته بدل کیدی شي.
د LLVM 17.0 عمده نوي ب featuresې
د LLVM 17.0 په دې نوې نسخه کې چې وړاندې کیږي، بیلابیل اړوند اړخونه شتون لري چې باید په پام کې ونیول شي، د بیلګې په توګه، د X86 پس منظر ته وده ورکول، ښه هغه زیاته کړهo د تمدید لپاره ملاتړ لارښوونې ترتیب جوړښت ISA SHA512، ISA SM3، ISA SM4 او ISA AVX-VNNI-INT16.
برسېره پر دې، دا هم په ګوته کوي کې پرمختګونه د معمارۍ لپاره د شالید وړتیاوې RISC-V کوم چې د پام وړ پراخ شوي، له هغه راهیسې د sifive-x280 پروسیسر لپاره اضافي ملاتړ.
یو بل بدلون چې موږ یې موندلی شو هغه دی د XTH پروسیسر توسیعونو لپاره پلي شوي ملاتړ*، په بیله بیا د توسیعونو سره مطابقت LSX، LASX، LVZ او LBT ISA د لونګ آرچ معمارۍ شاته خوا ته.
د AArch64، ARM، WebAssembly، MIPS، PowerPC، AMDGPU آرکیټیکچرونو لپاره ښه شوي بیکینډونه، د LLD لینکر وړتیاوې پراخې کړې، او د ریکارډ په اړه ټول پیژندل شوي معلومات ښودلو لپاره د LLDB ډیبګر ته د "راجستر معلوماتو" کمانډ اضافه کړ.
په کلینګ 17.0 کې د پرمختګونو په اړه، دا په ګوته شوي چې په راتلونکي C-standard C2x کې تعریف شوي ځانګړتیاوې لکه bool، static_asssert، aligns، alignof او thread_local کلیدي کلمې پلي شوي، او همدارنګه د خالي مربع بریکٹونو مشخص کولو وړتیا «{ } » صفر ارزښتونو ته د پیل کولو لپاره.
کوډo C د "ګوټو" بیان وړاندې کولو وړتیا چمتو کوي په غیر مستقیم ډول غوره شوي ټګونو له لارې د "asm" بلاکونو کې ، د C توسیع لپاره ملاتړ اضافه شوی چې په "_Generic" کې د لومړي عملیاتي په توګه د بیان پرځای د ډول کارولو ته اجازه ورکوي ، سربیره پردې په C ژبه کې د جوړښتونو ، اتحادیو کارولو لپاره دوامداره څرګندونې ته اجازه ورکوي. او صفونه د "const" خاصیت سره اعلان شوي.
د C ++ 20 معیار پورې اړوند پرمختګونو په اړه ، دا اوس یادونه شوې د وینډوز پرته په ټولو پلیټ فارمونو کې ، د کورټینز لپاره بشپړ ملاتړ شتون لري ، برسېره پردې، د دوامداره بیان پرتله کولو عملیاتو لپاره اضافي اړتیاوې پلي شوي.
همدا اوس روښانه شوې دهد لامبډا ټیمپلیټونو سمه تحلیل تضمین شوی د ټیمپلیټ پیرامیټونو سمدلاسه وروسته مشخص شوی او په بلاک کې د انحصار ډول سره متغیر لري. د کارونکي په لیکونو کې د دوه ګوني انډر سکورونو کارول خوندي کړي او په نوم کې د خوندي پیژندونکو سره د فنکشن تعریفونو کې د "آپریټر" کلیدي کلمې کارول هڅوي.
د دې لپاره د C++ 23 معیارونو پورې اړوند پرمختګونه ، دا یادونه شوې چې دا د ISO لخوا د تصویب په وروستي مرحله کې دی ، ځکه چې د لامبډا افعالو کې د وروستي راستنیدو ډول بدل شوی لومړی هکس او بیا شاوخوا متن وګورئ.
د نور بدلونونه چې ولاړ دي:
- په کارولو سره د څو اړخیزو صفونو تعریف کولو وړتیا اضافه کړه
- کله چې د "-O0" اصلاح کولو حالت په کارولو سره د C++ غوښتنلیکونه تالیف کول، د زنګونو لپاره کوډ تولید ښه شوی.
- د محصول رنګ غیر فعالولو لپاره د NO_COLOR چاپیریال متغیر لپاره ملاتړ اضافه شوی.
- د جامد تحلیل او تشخیصي وسیلې د پام وړ پراخه شوي، د بیلګې په توګه، د نوي لاسلیک شوي انټیجر اوور فلو چکونه، د لامبډا ټیمپلیټ سمون، د کانسټیکسپر څرګندونه، د نول پوائنټر پرتله کول، د غیر پیل شوي جوړښتونو کارول، او نور اضافه شوي.
- د Libc++ کتابتون د C++ 20 او C++ 23 معیارونو د وړتیاوو لپاره د ملاتړ پلي کولو ته دوام ورکوي، او د C++ 26 مشخصاتو لپاره د ملاتړ چمتو کولو لپاره کار هم پیل شوی.
- د سرلیک فایلونو او ماډلونو ترمینځ د اړیکو توضیحاتو کې "cplusplus23 ته اړتیا لري" د بیان لپاره ملاتړ اضافه شوی.
په نهایت کې ، که تاسو علاقه لرئ چې د دې په اړه نور پوه شئ ، تاسو کولی شئ په تفصیل سره مشوره وکړئ لاندې لینک