GCC 12.1 tashmë është lëshuar, mësoni lajmet dhe 35 vjetorin e tij

Logoja e GNU GCC

Nisja e versioni i ri i përpiluesit GCC (Koleksioni i përpiluesit GNU) 12.1 ishte lëshuar tashmë dhe si me të gjitha lëshimet kryesore të GCC, ky version do të sjellë shumë shtesa, përmirësime, rregullime të gabimeve dhe veçori të reja, plus këtë muaj (23 maj), projekti do të festojë 35 vjet nga formimi i publikimit të parë.

GCC 12 është tashmë përpiluesi i sistemit për Fedora 36, ​​dhe GCC 12 do të jetë gjithashtu i disponueshëm në Red Hat Enterprise Linux në Red Hat Developer Toolset (versioni 7) ose Red Hat GCC Toolset (versionet 8 dhe 9).

Zhvilluesit e GCC janë krenarë të shpallin një tjetër version të madh të GCC, 12.1.

Këtë vit ne festojmë 35 vjetorin e versionit të parë beta të GCC
Dhe këtë muaj ne do të festojmë 35 vjet nga lëshimi i GCC 1.0!

Ky version heq mbështetjen për formatin e korrigjimit STABS dhe
prezanton mbështetje për formatin e korrigjimit CTF [1]. C dhe C++
ndërfaqet vazhdojnë të përparojnë me mbështetje të zgjeruar për veçoritë
në standardet e ardhshme C2X dhe C++23 dhe Bibliotekën Standarde C++
përmirëson mbështetjen për pjesët eksperimentale të C++20 dhe C++23.
Ndërfaqja Fortran tani është plotësisht në përputhje me TS 29113 për ndërveprim me C.

Çfarë ka të re në GCC 12.1?

Në këtë version të ri Janë zbatuar disa propozime, si p.sh. për gjuhët C dhe C++, të shtuara një funksion i integruar __ndërtuar_dinamik_objekt_size për të përcaktuar madhësinë e një objekti, i pajtueshëm me një funksion të ngjashëm të Clang.

Shtuar mbështetje për atributin "i padisponueshëm" për gjuhët C dhe C++ (për shembull, mund të shënoni funksione që do të rezultojnë në një gabim kur përdoren), si dhe mbështetje shtesë për direktivat e parapërpunimit "#elifdef" dhe "#elifndef" për gjuhët C dhe C++.

Vihet re gjithashtu se Flamuri "-Wbidi-chars" për të paralajmëruar nëse karakteret UTF-8 keqpërdoren, duke ndryshuar rendin e shfaqjes së tekstit me dy drejtime, si dhe flamurin "-Warray-compare" për të lëshuar një paralajmërim kur përpiqeni të krahasoni dy operandë që u referohen vargjeve.

Përveç kësaj, iZbatimi i standardeve OpenMP 5.0 dhe 5.1 (Open Multi-Processing), i cili përcakton API-të dhe metodat për aplikimin e metodave të programimit paralel në sistemet multicore dhe hibride (CPU + GPU / DSP) me memorie të përbashkët dhe njësi vektorizimi (SIMD), u vazhdua.

Gjithashtu përmirësimi i zbatimit të specifikimeve të programimit paralel OpenACC 2.6, përcaktimi i mjeteve për shkarkimin e operacioneve në GPU dhe procesorë të specializuar si NVIDIA PTX; dhe shtimi i mbështetjes për instruksionet e zgjeruara të Intel AVX512-FP16 dhe llojin _Float16 në backend-in e gjenerimit të kodit x86.

Pjesa e përparme e Fortran ofron mbështetje të plotë për specifikimin TS 29113, i cili përshkruan mundësitë për të siguruar transportueshmëri midis kodit Fortran dhe C.

Mbështetje e vjetëruar për formatin e ruajtjes së informacionit të korrigjimit "STABS" të krijuar në vitet 1980.

Mbështetje e shtuar për zgjerimin __builtin_shufflector(vec1, vec2, index1, index2, …) i shtuar më parë në Clang, i cili ofron një thirrje të vetme për të kryer operacione të zakonshme të riorganizimit dhe përzierjes së vektorit.

Kur përdorni nivelin e optimizimit "-O2", vektorizimi aktivizohet si parazgjedhje (modalitetet -ftree-vectorize dhe -fvect-cost-model=shumë lirë janë të aktivizuara). Modeli "shumë i lirë" lejon vektorizimin vetëm nëse kodi vektorial mund të zëvendësojë plotësisht kodin skalar të vektorizueshëm.

U shtua modaliteti "-ftrivial-auto-var-init". për të mundësuar inicializimin eksplicit të variablave në rafte për të gjurmuar çështjet dhe për të bllokuar dobësitë që lidhen me përdorimin e variablave të painitializuar.

Shtuar implementimi i funksioneve C të integruara në kompajler (Intrinsics) për ngarkimin atomik dhe ruajtjen e të dhënave në memorie, bazuar në përdorimin e udhëzimeve të zgjeruara të ARM (ls64). Mbështetje e shtuar për përshpejtimin e funksioneve memcpy, memmove dhe memset duke përdorur shtesën ARM mopoption.

Shtuar një mënyrë e re verifikimi "-fsanitize=shadow-call-stack" ( ShadowCallStack ), i cili aktualisht është i disponueshëm vetëm për arkitekturën AArch64 dhe funksionon gjatë përpilimit të kodit me opsionin "-fixed-r18". Modaliteti siguron mbrojtje kundër rishkrimit të adresës së kthimit të funksionit në rast të tejmbushjes së buferit të stivës. Thelbi i mbrojtjes është ruajtja e adresës së kthimit në një pirg të veçantë "hije" pas transferimit të kontrollit në funksion dhe rikthimi i kësaj adrese përpara se të dilni nga funksioni.

Fuente: https://gcc.gnu.org/pipermail


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.