Inilabas na ang GCC 12.1, alamin ang balita nito at ang ika-35 anibersaryo nito

Logo ng GNU GCC

Ang paglulunsad ng ang bagong bersyon ng compiler GCC (GNU Compiler Collection) 12.1 ay inilabas na at tulad ng lahat ng pangunahing release ng GCC, ang release na ito ay magdadala ng maraming karagdagan, pagpapahusay, pag-aayos ng bug, at mga bagong feature, kasama pa ngayong buwan (Mayo 23), ipagdiriwang ng proyekto ang 35 taon mula nang mabuo ang unang release.

Ang GCC 12 ay isa nang system compiler para sa Fedora 36, ​​at ang GCC 12 ay magagamit din sa Red Hat Enterprise Linux sa Red Hat Developer Toolset (bersyon 7) o Red Hat GCC Toolset (bersyon 8 at 9).

Ipinagmamalaki ng mga developer ng GCC na ianunsyo ang isa pang pangunahing release ng GCC, 12.1.

Sa taong ito, ipinagdiriwang natin ang ika-35 anibersaryo ng unang beta na bersyon ng GCC
At ngayong buwan ay ipagdiriwang natin ang 35 taon mula nang ilabas ang GCC 1.0!

Ibinababa ng release na ito ang suporta para sa STABS debug format at
nagpapakilala ng suporta para sa format ng pag-debug ng CTF [1]. Ang C at C++
patuloy na sumusulong ang mga interface na may pinalawak na suporta para sa mga feature
sa paparating na mga pamantayan ng C2X at C++23 at ang C++ Standard Library
pinapabuti ang suporta para sa mga pang-eksperimentong bahagi ng C++20 at C++23.
Ang interface ng Fortran ay ganap nang sumusunod sa TS 29113 para sa interoperability sa C.

Ano ang bago sa GCC 12.1?

Sa bagong bersyon na ito Ilang mga panukala ang naipatupad, tulad ng para sa mga wika C at C++, idinagdag isang built-in na function __builtin_dynamic_object_size upang matukoy ang laki ng isang bagay, tugma sa isang katulad na function ng Clang.

Dinagdagan suporta para sa katangiang "hindi magagamit" para sa mga wikang C at C++ (halimbawa, maaari mong markahan ang mga function na magreresulta sa isang error kapag ginamit), pati na rin ang karagdagang suporta para sa "#elifdef" at "#elifndef" preprocessing na mga direktiba para sa C at C++ na mga wika.

Napansin din na ang I-flag ang "-Wbidi-chars" upang bigyan ng babala kung mali ang paggamit ng mga UTF-8 na character, binabago ang bidirectional na pagkakasunud-sunod ng pagpapakita ng teksto, pati na rin ang flag na "-Warray-compare" upang magbigay ng babala kapag sinusubukang ihambing ang dalawang operand na tumutukoy sa mga array.

Bilang karagdagan, ang iPagpapatupad ng mga pamantayan ng OpenMP 5.0 at 5.1 (Open Multi-Processing), na tumutukoy sa mga API at pamamaraan para sa paglalapat ng mga parallel programming method sa multicore at hybrid (CPU + GPU / DSP) system na may shared memory at vectorization units (SIMD), ay ipinagpatuloy.

Pati yung pinahusay na pagpapatupad ng OpenACC 2.6 parallel programming specification, pagtukoy sa mga paraan upang i-offload ang mga operasyon sa mga GPU at dalubhasang processor gaya ng NVIDIA PTX; at pagdaragdag ng suporta para sa Intel AVX512-FP16 na pinalawig na mga tagubilin at ang uri ng _Float16 sa x86 code generation backend.

Ang Fortran front-end ay nagbibigay ng buong suporta para sa TS 29113 na detalye, na naglalarawan ng mga posibilidad upang matiyak ang portability sa pagitan ng Fortran at C code.

Hindi na ginagamit ang suporta para sa "STABS" na format ng imbakan ng impormasyon sa pag-debug na nilikha noong 1980s.

Nagdagdag ng suporta para sa extension na __builtin_shufflevector(vec1, vec2, index1, index2, ...) na dating idinagdag sa Clang, na nagbibigay ng iisang tawag para magsagawa ng mga karaniwang vector shuffle at shuffle na operasyon.

Kapag ginagamit ang "-O2" na antas ng pag-optimize, ang vectorization ay pinagana bilang default (ang -ftree-vectorize at -fvect-cost-model=very-cheap na mga mode ay pinagana). Ang "napakamura" na modelo ay nagbibigay-daan lamang sa vectorization kung ang vector code ay maaaring ganap na palitan ang vectorizable scalar code.

Nagdagdag ng "-ftrivial-auto-var-init" mode upang paganahin ang tahasang pagsisimula ng variable sa stack upang masubaybayan ang mga isyu at harangan ang mga kahinaan na nauugnay sa paggamit ng mga hindi nasimulang variable.

Idinagdag ang pagpapatupad ng mga C function na nakapaloob sa compiler (Intrinsics) para sa pag-load ng atomic at pag-iimbak ng data sa memorya, batay sa paggamit ng mga pinahabang tagubilin ng ARM (ls64). Nagdagdag ng suporta para sa pagpapabilis ng memcpy, memmove, at memset function gamit ang ARM mopoption extension.

Dinagdagan isang bagong verification mode "-fsanitize=shadow-call-stack" ( ShadowCallStack ), na kasalukuyang magagamit lamang para sa arkitektura ng AArch64 at gumagana kapag kino-compile ang code na may opsyong "-fixed-r18". Ang mode ay nagbibigay ng proteksyon laban sa muling pagsusulat ng return address ng function sa kaganapan ng isang stack buffer overflow. Ang kakanyahan ng proteksyon ay i-save ang return address sa isang hiwalay na "shadow" stack pagkatapos ng paglipat ng kontrol sa function at upang makuha ang address na ito bago lumabas sa function.

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


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.