GCC 11.1 kaleratu da dagoeneko, hauek dira bere berri eta aldaketa garrantzitsuenak

Urtebeteko garapenaren ondoren, GCC 11.1 konpilatzailearen suite bertsio berria kaleratu da, GCC 11.x adar berriaren lehen bertsio esanguratsua. Bertsioen zenbaketa-eskema berriaren arabera, 11.0 bertsioa erabili zen garapenean zehar, eta GCC 11.1 kaleratu baino pixka bat lehenago, GCC 12.0-ren adar bat dagoeneko bifurkatu zen GCC 12.1-ren hurrengo bertsio nagusia osatzeko.

GCC 11.1 nabarmentzen da DWARF 5 arazketa-fitxategi formatu lehenetsira igarotzeagatik, C ++ 17 estandarraren lehenetsitako txertaketa ("-std = gnu ++ 17"), hobekuntza nabarmenak C ++ 20 estandarrarekin bateragarritasuna, C ++ 23rako laguntza esperimentala, etorkizuneko C estandarrarekin lotutako hobekuntzak hizkuntza (C2x), errendimendu optimizazio berriak.

GCC 11.1 Ezaugarri berri nagusiak

C ++ lengoaiaren modu lehenetsia C ++ 17 estandarra erabiltzeko aldatzen da, aurretik proposatutako C ++ 14 ordez. Posible da C ++ 17 portaera berria modu desaktiboan desaktibatzea parametro gisa beste txantiloiak erabiltzen dituzten txantiloiak prozesatzean (-fno-new-ttp-matching).

Hardwarea bizkortzeko laguntza gehitu da AddressSanitizer tresnaren bidez, askatutako memoria-eremuetara sartzearen gertaerak, esleitutako bufferraren mugak gaindituz eta memoriarekin lan egitean beste zenbait akats mota zehazteko aukera ematen du. Hardwarearen azelerazioa gaur egun AArch64 arkitekturarako bakarrik dago erabilgarri eta Linux kernela osatzerakoan bere erabileran oinarritzen da.

Aurkezten den beste berritasun bat dira optimizazioak eta hobekuntzak prozeduren artean, IPA modref pasabide berria gehitu baitzen (-fipa-modref) funtzio deietan bigarren mailako efektuak jarraitzeko eta analisiaren zehaztasuna hobetzeko. Gainera, a IPA-ICF pasaren ezarpen hobea (-fipa-icf), konpilazio memoria kontsumoa murrizten duena eta kode bloke berdinak bateratzen diren funtzio bateratu kopurua handitzen duena.

El profilak bultzatutako optimizazio motorra (PGO), "-profile-values" modua hobetu da zeharkako deien parametro gehiagoren jarraipena eginez.

Era berean, OpenMP 5.0 estandarraren etengabeko inplementazioa nabarmentzen da (Ireki Multi-Processing), bertan gehitu da esleipen zuzentarauaren hasierako laguntza eta uniformeak ez diren begiztak erabiltzeko gaitasuna OpenMP eraikuntzetan. OMP_TARGET_OFFLOAD ingurune aldagaia orain onartzen da.

C, C ++ eta Fortran lengoaientzako OpenACC 2.6 programazio paraleloaren zehaztapenaren inplementazioa hobetu da, GPUetara eta NVIDIA PTX bezalako prozesadore espezializatuetara deskargatzeko tresnak definitzen dituena.

C familiako hizkuntzetarako, "no_stack_protector" atributu berria ezarri da, pila babestea gaitu behar ez den funtzioak markatzeko diseinatuta dago ("-fstack-protect"). "Malloc" atributua memoria esleitzeko eta doako memoria bikoteak identifikatzeko laguntzarekin zabaldu da, analizatzaile estatikoan memoria akats tipikoak (memoria ihesak, doako erabileraren ondoren, doako funtziora doako funtzioak, etab.) eta konpiladorearen oharrak "-Wmismatched-dealloc", "-Wmismatched- new-delete" eta "detektatzeko erabiltzen da. -Wfree-nonheap-object "koherentziarik gabeko banaketa eta banaketa eragiketen berri ematen du.

Arazteko informazioa sortzerakoan, DWARF 5 formatua erabiltzen da lehenespenez, eta horrek, aurreko bertsioekin alderatuta, arazketako datuak% 25 trinkoagoak izatea ahalbidetzen du. DWARF 5 euskarri osoak binutilak behar ditu gutxienez 2.35.2 bertsioa.

ThreadSanitizer moduaren gaitasun hobetuak (-fsanitize = haria), baietzExekuzio eta ingurune alternatiboetarako laguntza gehitzen du, baita Kernel Concurrency Sanitizer (KCSAN) arazketa tresnaren laguntza ere Linux kerneleko lasterketaren baldintzak dinamikoki detektatzeko. "–Param tsan-distinction-volatile" eta "–param tsan-instrument-func-entry-exit" aukera berriak gehitu dira.

Bektorizatzaileak funtzioaren eduki guztiaren kontabilizazioa eta kontrol-fluxuaren diagraman (CFG) aurreko blokeen ebakidurekin eta aurreko blokeekin lotutako gaitasunen tratamendu osagarria eskaintzen du.

Optimizatzaileak baldintzazko eragiketa batzuk aldaketa adierazpen bihurtzeko gaitasuna du, aldagai bera alderatuz. Etorkizunean, aldaketaren adierazpena kodeketa egin daiteke bit probako jarraibideen bidez (bihurketa hori kontrolatzeko, "-fbit-tests" aukera gehitu da).

C ++-entzat, C ++ 20 estandarrak proposatutako aldaketa eta berrikuntzen zati bat ezarri da, besteak beste, "consteval virtual" funtzio birtualak, objektuen bizitza zikloa amaitzeko sasi-suntsitzaileak, enum klasea erabiliz eta kalkulatzeko. array baten tamaina "berria" adierazpenean.

Horri buruz gehiago jakin nahi baduzu, xehetasunak hemen ikus ditzakezu honako esteka. 


Artikuluaren edukia gure printzipioekin bat dator etika editoriala. Akats baten berri emateko egin klik hemen.

Idatzi lehenengo iruzkina

Utzi zure iruzkina

Zure helbide elektronikoa ez da argitaratuko.

*

*

  1. Datuen arduraduna: Miguel Ángel Gatón
  2. Datuen xedea: SPAM kontrolatzea, iruzkinen kudeaketa.
  3. Legitimazioa: Zure baimena
  4. Datuen komunikazioa: datuak ez zaizkie hirugarrenei jakinaraziko legezko betebeharrez izan ezik.
  5. Datuak biltegiratzea: Occentus Networks-ek (EB) ostatatutako datu-basea
  6. Eskubideak: Edonoiz zure informazioa mugatu, berreskuratu eta ezabatu dezakezu.

bool (egia)