Tanggal 3 Mei, rilis umum pisanan saka GCC versi kaping sanga ditindakake: GCC 9.1.
Isine akeh dandan lan tambahan sing signifikan dibandhingake karo sing kaping wolu
versi.
Pangowahan umum
Pilihan
- Printah sing nampa ukuran saiki ndhukung nilai 64-bit lan suffixes kanggo nemtokake ukuran;
- Opsi sing ditambahake -flive-patching,kanggo ngontrol optimasi sing duweni potensi ngrusak kanggo dinamis,panggantos kode;
- Ditambahake --completion pilihan kanggo ndhukung otomatis completion ing cangkang printah;
- Diagnosa kompiler saiki kalebu nomer baris (-fno-diagnostics-show-line-nomer) lan
jinis informasi (fno-diagnostics-show-labels); - Opsi sing ditambahake -fdiagnostics-format=json kanggo output diagnostik ing format JSON;
- Pilihan kanggo nemtokake alignment (-Falign-fungsi, contone) saiki bisa nampa sawetara opsi alignment;
- Opsi sing ditambahake kanggo nyaring dhaptar file (-fprofile-filter-files, -fprofile-exclude-files), sing instrumented dening profiler;
- AddressSanitizer saiki nggunakake keselarasan sing luwih kompak kanggo nyekel akses sing ora bener menyang variabel ing tumpukan;
- Akeh dandan output -fopt-info;
- Opsi sing ditambahake -fsave-optimization-record kanggo nyimpen laporan optimasi menyang file;
- Opsi sing ditambahake -fipa-stack-alignment ΠΈ -fipa-reference-addressable.
Fitur dibangun ing anyar
Atribut anyar
Liyane
Akeh dandan kode sing ana gandhengane karo:
- generasi saklar mbangun;
- optimasi antar-prosedur;
- optimasi adhedhasar informasi profiling;
- optimasi ing tahap perakitan (LTO);
Uga format internal gcov saiki dadi JSON, lan pilihan anyar --nggunakake-panas-werna melu pewarnaan garis kode adhedhasar sepira kerepe digunakake.
Basa
Kualitas lan kelengkapan implementasine OpenACC basa C, C ++, lan Fortran terus nambah.
Basa kaya C
- Dhukungan parsial kanggo OpenMP 5.0 wis dileksanakake;
- Fitur ditambahake __builtin_convertvector;
- Ditambahake bebaya -Waddress-of-dikempalken-anggota;
- Dandan kanggo sawetara bebaya sing wis ana;
- Teks kesalahan nalika ngirim argumen sing salah menyang makro saiki kalebu deklarasi makro kasebut;
- Dandan kanggo saran koreksi typo.
C
- Dhukungan _Static_assert karo siji argumen kanggo -std=c2x (standar C mangsa);
- bebaya anyar -Wabsolute-nilai, sing nyekel jinis argumen sing salah kanggo fungsi kaya abs ().
C ++
- Bebaya anyar: -Wdeprecated-salinan,
-Winit-dhaftar-umur,
-Wredundant-pindhah,
-Wpessimizing-pindhah,
-Wclass-konversi; - Pakaryan lagi ditindakake kanggo ngetrapake fitur-fitur anyar saka standar mangsa ngarep C++ 2a;
- Frontend saiki nyimpen informasi sing luwih akurat babagan sawetara unsur kode sumber, sing ngidini sampeyan nampilake informasi sing luwih rinci ing diagnostik;
- Diagnostik sing luwih apik kanggo fungsi sing kakehan, operator binar, panggilan fungsi lan senar format;
- Nambahake koreksi otomatis sing didhukung dening sawetara lingkungan pangembangan kanggo sawetara kesalahan populer (kurung ilang, spasi jeneng, typo, lsp.).
libstdc++
- C ++ 17 implementasine ora eksperimen maneh;
- Algoritma paralel ditambahake, , , A ora mbutuhake maneh -lstdc++fs;
- Dhukungan eksperimen sing luwih apik kanggo C++ 2a ( , , std:: bind_front, lsp);
- Dhukungan kanggo mbukak stream file ing Windows sing dalane ngemot karakter non-char;
- Dhukungan wiwitan ing Windows;
- Dhukungan awal kanggo Networking TS.
D
Versi basa D 2.076 kalebu ing GCC.
Fortran
- Dhukungan lengkap kanggo I/O asinkron;
- Dilaksanakake bantahan BACK kanggo MINLOC lan MAXLOC;
- Dilaksanakake fungsi FINDLOC lan IS_CONTIGOUS;
- Sintaksis kanggo ngakses komponen wilangan kompleks wis ditindakake: c%re lan c%im;
- Sintaksis str%len lan a% kind;
- Dilaksanakake deskriptor C lan header ISO_Fortran_binding.h;
- Persyaratan santai kanggo asil fungsi MAX lan MIN nalika salah sawijining argumen yaiku NaN;
- Opsi sing ditambahake -fdec-kalebu;
- Directive ditambahake BUILTIN.
libgccjit
- Fitur ditambahake gcc_jit_context_add_driver_option.
Liyane
Akeh arsitektur- lan owah-owahan OS-tartamtu.
Source: linux.org.ru