Noong Mayo 3, naganap ang unang pampublikong paglabas ng ikasiyam na bersyon ng GCC: GCC 9.1.
Naglalaman ito ng maraming makabuluhang pagpapabuti at pagdaragdag kumpara sa ikawalo
bersyon.
Pangkalahatang pagbabago
Mga Pagpipilian sa
- Ang mga utos na tumatanggap ng laki ay sumusuporta na ngayon sa mga 64-bit na halaga at mga suffix upang tukuyin ang laki;
- Idinagdag na opsyon -flive-patching,upang kontrolin ang mga pag-optimize na posibleng makasira sa dynamic, pagpapalit ng code;
- Idinagdag ang --completion na opsyon upang suportahan ang auto-completion sa command shell;
- Kasama na ngayon sa mga diagnostic ng compiler ang mga numero ng linya (-fno-diagnostics-show-line-numbers) At
uri ng impormasyon (fno-diagnostics-show-labels); - Idinagdag na opsyon -fdiagnostics-format=json upang mag-output ng mga diagnostic sa JSON na format;
- Mga opsyon para sa pagtukoy ng pagkakahanay (-falign-functions, halimbawa) ay maaari na ngayong tumanggap ng ilang opsyon sa pag-align;
- Nagdagdag ng mga opsyon para sa pag-filter ng listahan ng mga file (-fprofile-filter-files, -fprofile-exclude-files), na ginagamit ng profiler;
- Gumagamit na ngayon ang AddressSanitizer ng mas compact alignment para mahuli ang mga di-wastong access sa mga variable sa stack;
- Maraming pagpapabuti sa output -fopt-info;
- Idinagdag na opsyon -fsave-optimization-record upang i-save ang ulat ng pag-optimize sa isang file;
- Idinagdag na opsyon -fipa-stack-alignment ΠΈ -fipa-reference-addressable.
Mga bagong built-in na feature
Bagong katangian
Iba
Maraming pagpapahusay sa pagbuo ng code na nauugnay sa:
- henerasyon ng mga switch construct;
- inter-procedural optimizations;
- pag-optimize batay sa impormasyon sa pag-profile;
- pag-optimize sa yugto ng pagpupulong (LTO);
Gayundin ang internal na format ng gcov ay JSON na ngayon, at ang bagong opsyon --use-hotness-colors nagsasangkot ng mga linya ng pangkulay ng code batay sa kung gaano kadalas ginagamit ang mga ito.
Wika
Kalidad at pagkakumpleto ng pagpapatupad OpenACC patuloy na umuunlad ang mga wikang C, C++, at Fortran.
C-like na mga wika
- Ang bahagyang suporta para sa OpenMP 5.0 ay ipinatupad;
- Idinagdag na tampok __builtin_convertvector;
- Nagdagdag ng babala -Waddress-of-packed-member;
- Mga pagpapabuti sa ilang umiiral na mga babala;
- Ang text ng error kapag nagpapasa ng maling bilang ng mga argumento sa isang macro ay kasama na ngayon ang deklarasyon ng macro mismo;
- Mga pagpapabuti sa mga mungkahi sa pagwawasto ng typo.
C
- Suportahan ang _Static_assert na may isang argumento para sa -std=c2x (pangunahing pamantayan ng C);
- Bagong babala -Wabsolute-halaga, na nakakakuha ng maling uri ng argumento para sa mga function tulad ng abs().
C + +
- Mga bagong babala: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Ang trabaho ay isinasagawa upang ipatupad ang mga bagong tampok mula sa hinaharap na pamantayan C++2a;
- Nag-iimbak na ngayon ang frontend ng mas tumpak na impormasyon tungkol sa isang bilang ng mga elemento ng source code, na nagbibigay-daan sa iyong magpakita ng mas detalyadong impormasyon sa mga diagnostic;
- Mga pinahusay na diagnostic para sa mga overload na function, binary operator, function call at format string;
- Nagdagdag ng mga awtomatikong pag-aayos na sinusuportahan ng ilang development environment para sa ilang sikat na error (nawawalang panaklong, namespace, typo, atbp.).
libstdc++
- Ang pagpapatupad ng C++17 ay hindi na eksperimental;
- Nagdagdag ng mga parallel na algorithm, , , A hindi na nangangailangan ng -lstdc++fs;
- Pinahusay na pang-eksperimentong suporta para sa C++2a ( , , std::bind_front, atbp.);
- Suporta para sa pagbubukas ng mga stream ng file sa Windows na ang mga landas ay naglalaman ng mga hindi char na character;
- Paunang suporta sa Windows;
- Paunang suporta para sa Networking TS.
D
D wika na bersyon 2.076 ay kasama sa GCC.
Fortran
- Buong suporta para sa asynchronous na I/O;
- Ipinatupad ang BACK argument para sa MINLOC at MAXLOC;
- Ipinatupad ang FINDLOC at IS_CONTIGOUS function;
- Ang syntax para sa pag-access sa mga bahagi ng kumplikadong mga numero ay ipinatupad: c%re at c%im;
- Ipinatupad ang syntax str%len at a%kind;
- Ipinatupad ang mga C descriptor at ISO_Fortran_binding.h header;
- Mga nakakarelaks na kinakailangan para sa resulta ng MAX at MIN function kapag ang isa sa mga argumento ay NaN;
- Idinagdag na opsyon -fdec-include;
- Idinagdag ang direktiba BUILTIN.
libgccjit
- Idinagdag na tampok gcc_jit_context_add_driver_option.
Iba
Maraming pagbabago sa arkitektura at partikular sa OS.
Pinagmulan: linux.org.ru