Programavimas

„GCC 10“ serijos kompiliatoriai labai atnaujinami

GCC (GNU Compiler Collection) 10.1, pagrindinė platformos versija, buvo paskelbta 2020 m. Gegužės 7 d. „C2X“ yra kita svarbi C kalbos peržiūra, numatyta 2022 m.

Išleidimo pastabos, skirtos „GCC 10“, rodo, kad buvo įdiegta daugybė „C ++ 20“ funkcijų, įskaitant leidimą inline surinkti naudojant „constexpr“ funkcijas ir išplėsti struktūrinius susiejimus. Taip pat C ++ 20 atveju GCC 10 leidžia konvertuoti į nežinomų ribų masyvus, leidžia nereikšmingą numatytąjį inicijavimą kontekstiniuose kontekstuose, prideda riboti raktinį žodį ir nebenaudojanepastovus raktinis žodis.

„C2X“, būsimos „ISO C“ standarto peržiūros, sintaksėje palaikomos kelios funkcijos-std = c2x ir -std + gnu2x. Tarp jų yra strftime formato tikrinimas, palaikantis % OB ir % Ob formatai ir UTF-8 simbolių konstantos naudojant u8 "sintaksę.

GCC, kuris gyvuoja daugiau nei 33 metus, apima C, C ++, Fortran, Ada, Go ir D priekinius galus ir bibliotekas. Paskelbtas biuletenis apie perkėlimą į GCC 10. Kitos naujos GCC 10.1 galimybės apima:

  • Buvo pridėtos integruotos funkcijos, įskaitant a has_builtin išankstinio procesoriaus operatorius, kuris gali būti naudojamas užklausai palaikyti integruotas funkcijas, kurias teikia GCC ir kiti ją palaikantys kompiliatoriai.
  • Komandos parinktys buvo pridėtos. Jie apima-paskyrimas-dce, pašalinti nereikalingas poras naujas ir Ištrinti operatoriai ir -fanalizatorius, kad būtų įgalintas naujas statinės analizės leidimas ir susiję įspėjimai. Pastarasis variantas turėtų būti vertinamas kaip eksperimentinis.
  • Buvo atlikti tarpprocedūriniai optimizavimo patobulinimai. Tai apima pakartotinį tarp procedūrinių skaliarinių agregatų pakeitimų (IPA-SRA) leidimą, kuris buvo iš naujo įdiegtas, kad veiktų ryšių metu. IPA-SRA dabar taip pat gali pašalinti skaičiavimus ir grąžinti nepanaudotas grąžinimo vertes.
  • Nuorodų laiko optimizavimo patobulinimai apima naują dvejetainį ito-dump. Programa gali išmesti įvairią informaciją apie KET baitas objekto failas.
  • Buvo atlikti profiliu pagrįsti optimizavimo patobulinimai, įskaitant profilio priežiūros gerinimą rengiant ir skaidant karštą / šaltą.
  • C šeimai, prieiga funkcija ir tipo atributas buvo pridėtas siekiant apibūdinti, kaip funkcija pasiekia objektus, kuriuos jai perdavė žymeklis arba nuoroda, ir susieti tokius argumentus su sveikaisiais argumentais, žyminčiais objekto dydį. Šis atributas naudojamas norint nustatyti netinkamas prieigas naudojant vartotojo nustatytas funkcijas. Taip pat yra naujų įspėjimų ir esamų įspėjimų patobulinimų. Vienas įspėjimas, -Nulio ilgio ribosįspėja apie prieigą prie nulinio ilgio masyvų elementų, kurie gali sutapti su kitais to paties objekto nariais.
  • Buvo nustatytas ABI nesuderinamumas tarp C ++ 14 ir C ++ 17. Kai kuriuose taikiniuose klasė su nulio dydžio objektu būtų neteisingai perduodama sudarant C ++ 17 arba C ++ 20.