Az LLVM 17.0 már megjelent, és ezek a hírek

LLVM logó

Az LLVM egy keretrendszer a fordítók fejlesztéséhez, valamint új programozási nyelvek létrehozásához és a meglévő nyelvek fejlesztéséhez.

Hat hónap fejlesztés után Bemutatták az LLVM 17.0 új verzióját, amelyben különféle fejlesztések, változtatások, hibajavítások és mindenekelőtt különféle fontos szempontok kerültek bevezetésre a Clang 17.0-ban.

Azok számára, akik nem ismerik az LLVM-et, tudniuk kell, hogy ez egy GCC-kompatibilis fordító (fordítók, optimalizálók és kódgenerátorok), amely a programokat RISC-szerű virtuális utasítás köztes bitkódba fordítja (alacsony szintű virtuális gép többszintű optimalizáló rendszerrel).

A generált pszeudokódot a JIT fordító gépi utasításokká tudja konvertálni éppen a program végrehajtása során.

Az LLVM 17.0 fő újdonságai

Az LLVM 17.0 bemutatott új verziójában számos lényeges szempontot kell figyelembe venni, amelyek közül például a fejlesztések az X86 hátterében, hát hozzátetteo bővítmények támogatása utasításkészlet architektúra ISA SHA512, ISA SM3, ISA SM4 és ISA AVX-VNNI-INT16.

Ezen kívül kiemeli még a fejlesztések ben háttérszolgáltatások az architektúrához RISC-V amelyek jelentősen bővültek, azóta hozzáadott támogatás a sifive-x280 processzorhoz.

A másik változás, amit találhatunk, az Az XTH processzor-bővítmények támogatása*, valamint a kiterjesztésekkel való kompatibilitás LSX, LASX, LVZ és LBT ISA a LoongArch architektúra hátteréhez.

Továbbfejlesztett háttérprogramok AArch64, ARM, WebAssembly, MIPS, PowerPC, AMDGPU architektúrákhoz, kibővített LLD linker képességek, és egy új "register info" paranccsal bővült az LLDB hibakereső a rekordok összes ismert információjának megjelenítéséhez.

Ami a Clang 17.0 fejlesztéseit illeti, kiemelendő, hogy a jövőbeni C-szabvány C2x-ben definiált funkciókat implementálták, mint például a bool, static_assert, aligns, alignof és thread_local kulcsszavakat, valamint az üres zárójelek «{}» megadásának lehetőségét inicializálás nulla értékre.

A kódo C lehetővé teszi a "goto" kifejezés továbbítását Az "asm" blokkon belül közvetetten kiválasztott címkéken keresztül egy C kiterjesztést adtunk hozzá, amely lehetővé teszi egy típus használatát kifejezés helyett az "_Generic" első operandusaként, amellett, hogy lehetővé teszi a C nyelvű állandó kifejezések struktúrák, uniók használatát. és a "const" attribútummal deklarált tömbök.

A C++20 szabvánnyal kapcsolatos fejlesztésekkel kapcsolatban megemlítik, hogy most A Windows kivételével minden platformon teljes mértékben támogatott a Coroutines, Ezenkívül további követelményeket állítottak be a konstans kifejezés-összehasonlítási műveletekhez.

Azt is kiemelik, hogy mostA lambda-sablonok helyes elemzése garantált közvetlenül a sablon paraméterei után megadva, és a blokkban egy függő típusú változót tartalmaz. Fenntartotta a dupla aláhúzás használatát a felhasználói literálokban, és nem javasolta az "operátor" kulcsszó használatát a függvénydefiníciókban, fenntartott azonosítókkal a névben

Mivel a a C++23 szabványhoz kapcsolódó fejlesztések , megemlítik, hogy az ISO általi jóváhagyás utolsó szakaszában van, mivel megváltozott a végső visszatérési típus hatóköre a lambda függvényekben hogy először a horgokat nézzük meg, majd a környező szöveget.

A egyéb változások amelyek kiemelkednek:

  • Hozzáadtuk a többdimenziós tömbök meghatározásának képességét
  • A "-O0" optimalizálási módot használó C++ alkalmazások fordításakor a hívások kódgenerálása javult.
  • A NO_COLOR környezeti változó támogatása a kimeneti szín letiltásához.
  • A statikus elemzési és diagnosztikai eszközök jelentősen bővültek, például új előjeles egész túlcsordulás-ellenőrzés, lambda-sablon korrekció, constexpr kifejezések, nullmutató összehasonlítások, inicializálatlan struktúrák használata stb.
  • A Libc++ könyvtár továbbra is megvalósítja a C++20 és C++23 szabványok képességeinek támogatását, és megkezdődött a munka a C++26 specifikáció támogatására is.
  • A „cplusplus23 szükséges” kifejezés támogatása a fejlécfájlok és a modulok közötti kapcsolatok leírásában.

Végül, ha többet szeretne megtudni róla, tájékozódhat a részletekről a következő link.


A cikk tartalma betartja a szerkesztői etika. A hiba bejelentéséhez kattintson a gombra itt.

Legyen Ön az első hozzászóló

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.