Mushure memwedzi mitanhatu yebudiriro, kuburitswa kwechirongwa cheLLVM 18.1.0 kwakaunzwa - chishandiso chinoenderana neGCC (macompilers, optimizers uye macode jenareta) anounganidza zvirongwa kuita yepakati bitcode yeRISC-senge mirairo chaiyo (yakaderera-level virtual muchina une Multi-level optimization system). Iyo pseudocode inogadzirwa inogona kushandurwa uchishandisa JIT compiler kuita mirairo yemuchina zvakananga panguva yekuitwa kwechirongwa.
Kutanga nebazi re18.x, purojekiti yakachinjira kuchirongwa chitsva chekuverengera nhamba. Zvakafanana nemapurojekiti eGCC neGDB, zero release ("N.0") yava kushandiswa panguva yekuvandudzwa, uye shanduro yekutanga yakagadzikana yakaverengwa "N.1". Shanduko inobvumira kupatsanura zvivakwa zvichibva pabazi riri mukuvandudzwa (mainline) kubva pakuvaka kwebazi rine kuburitswa kwekupedzisira. Semuenzaniso, pakugadzirira kuburitswa kwazvino, kugadziridzwa kwakaitwa pachishandiswa isina kugadzikana LLVM 18.0 bazi, uye yekutanga yakagadzikana kuburitswa yakabudiswa pasi penhamba 18.1.0. Mune ramangwana, kana zvichidiwa, kusunungurwa kwekugadzirisa kunogona kuumbwa mavhiki maviri ega ega pasi penhamba 18.1.1, 18.1.2, nezvimwewo Kana kuchinja kuchiitwa kune bazi razvino iro rinoputsa ABI, iyo update ichaumbwa nekuchinja kwechipiri chechipiri cheshanduro (kureva 18.2.0).
Kuvandudza kukuru muClang 18:
- Shanduko dzine chekuita nemutauro weC:
- Zvimiro, mibatanidzwa uye arrays ane "const" mureza zvino anogona kushandiswa seanogara achitaurwa, akafanana neGCC.
- Enums yave kuratidzwa mune metadata yeTBAA (Type Based Alias Analysis) semhando yerudzi rwavo, pachinzvimbo chekubatwa semhando "char".
- Yakawedzerwa tsigiro ye "counted_by" hunhu, iyo inogona kushandiswa kududzira ndima mune inochinjika array chimiro chinotsanangura huwandu hwezvinhu mu flex array. Hunhu hunogona kushandiswa muclang kuvandudza kushanda kwebuffer overrun cheki.
- Zvimiro zvinotsanangurwa mune ramangwana C23 C chiyero:
- Yakawedzerwa rutsigiro rwe "-std=c23" uye "-std=gnu23" mireza, pamwe neiyo "202311L" kukosha kwe "__STDC_VERSION__" macro, iyo inotsanangura iyo C23 chiyero uye GNU C23 ekuwedzera.
- Yakawedzerwa rutsigiro rwe "inoda c23" chirevo kusunga mamodule kutsigira C23 standard.
- Kushandiswa kwerutsigiro rwemhando yekufungidzira paunenge uchitsanangura zvinhu, izvo zvinobvumira kushandisa "auto" mureza pachinzvimbo chemhando kuona mhando yemhando dzemhando zvichienderana nerudzi rwechirevo chekutanga. Somuenzaniso: "auto y = cos(x);".
- Yakawedzera musoro faira rutsigiro nema macros ekutarisa macalculations.
- Inotenderwa kuisa mavara chero kupi zvako mukati memashoko akasanganiswa.
- Paunenge uchinyora muC23 mode, kutsigirwa kwematrigraphs, kutevedzana kwevatatu ASCII mavara anobatwa sechimiro chimwe chete, haachatsigirwi mukodhi; semuenzaniso, kutevedzana "??=" kunogona kushandiswa pachinzvimbo che"#". Nekuuya kweUnicode, kutsigirwa kwematrigraphs kwave kusina zvazvinoreva.
- C++-20-ane hukama maficha: Tsigiro yekuyedza yekuwedzera isiri-mhando yekupokana marudzi mumatemplate, seyayangarara-poindi kukosha, zvinongedzo, uye zvinyorwa zvezvinyorwa, zvave kuwanikwa.
- Zvimiro zvine chekuita neiyo C ++ 23 chiyero: Yakawedzera kuyedza tsigiro ye "Deducing this" meshini, iyo inobvumira template paramita ne "iyi" mureza kuti ishandiswe uye inoita kuti zvikwanise kuziva kubva mukirasi basa iro chikamu chekutaura (semuenzaniso, kana chiri chisingaperi) icho basa iri rinodanwa.
- Zvimiro zvine chekuita neinouya C ++ 2c chiyero (C ++ 26):
- Yakawedzera kugona kushandisa akawanda anobatisa nzvimbo anosiyana anonzi "_" mune imwe scope, semuenzaniso, zvinotevera zvinovaka zvino ndizvozvo: struct S {int _, _; }; void func() {int _, _; } bvisa zvimwe() {int _; // kare yambiro yakaratidzwa mu -Wunused mode }
- Inopa kugona kushandisa tambo literals mumamiriro ezvinhu ayo asingashandiswe kutanga mutsara wehunhu uye asingaratidzike mune inobuda kodhi, asi anoshandiswa chete panguva yekuunganidza yekuongorora meseji uye preprocessing, senge paramita ku _Pragma, asm, extern, static_assert, [[deprecated]]] uye [[directives] uye [directives] kadhi.
- Shandurudzo isina kujeka yehunhu hwakaverengerwa mukuverenga masvomhu kwadzikiswa. int main() {enum E1 {e}; enum E2 {f }; bool b = e
Source: opennet.ru
