Május 3-án került sor a GCC kilencedik verziójának első nyilvános kiadására: a GCC 9.1-re.
Sok jelentős fejlesztést és kiegészítést tartalmaz a nyolcadikhoz képest
változat.
Általános változások
Lehetőségek
- A méretet elfogadó parancsok mostantól támogatják a 64 bites értékeket és a méret megadásához szükséges utótagokat;
- Hozzáadott opció -flive-foltozás,a dinamikus kódcsere szempontjából potenciálisan romboló optimalizálások szabályozására;
- A --completion opció hozzáadva az automatikus kiegészítés támogatásához a parancshéjban;
- A fordító diagnosztikája mostantól sorszámokat is tartalmaz (-fno-diagnostics-show-line-numbers) És
típus információ (fno-diagnostics-show-labels); - Hozzáadott opció -fdiagnostics-format=json a diagnosztika JSON formátumban történő kiadása;
- Az igazítás megadásának lehetőségei (-falign-funkciókpéldául) most már elfogad néhány igazítási lehetőséget;
- Hozzáadott lehetőségek a fájlok listájának szűrésére (-fprofile-filter-files, -fprofile-exclude-fájlok), amelyeket a profilkészítő műszerezett;
- Az AddressSanitizer mostantól kompaktabb igazítást használ a veremben lévő változókhoz való érvénytelen hozzáférések elkapására;
- Számos kimeneti fejlesztés -fopt-info;
- Hozzáadott opció -fsave-optimization-record az optimalizálási jelentést fájlba menteni;
- Hozzáadott opció -fipa-stack-igazítás и -fipa-referencia-címezhető.
Új beépített funkciók
Új attribútum
Más
Számos kódgenerálási fejlesztés a következőkhöz kapcsolódóan:
- kapcsolókonstrukciók generálása;
- eljárások közötti optimalizálás;
- profilalkotási információkon alapuló optimalizálás;
- optimalizálás az összeszerelési szakaszban (LTO);
A gcov belső formátuma is JSON, és az új opció --használjon-forró színeket magában foglalja a kódsorok színezését a használatuk gyakorisága alapján.
Nyelvek
A megvalósítás minősége és teljessége OpenACC a C, C++ és Fortran nyelvek tovább javulnak.
C-szerű nyelvek
- Az OpenMP 5.0 részleges támogatása megtörtént;
- Funkció hozzáadva __builtin_convertvector;
- Figyelmeztetés hozzáadva -Csomagolt tag vattája;
- Számos meglévő figyelmeztetés továbbfejlesztése;
- A hibaszöveg, amikor rossz számú argumentumot adunk át egy makrónak, most magának a makrónak a deklarációját tartalmazza;
- Javítások a helyesírási javaslatokhoz.
C
- A _Static_assert támogatása egy argumentummal a -std=c2x (jövőbeni C szabvány);
- Új figyelmeztetés -Abszolút érték, amely rossz argumentumtípust fog el olyan függvényekhez, mint az abs().
C + +
- Új figyelmeztetések: -Elavult-másolat,
-Winit-list-élettartam,
-Rendkívüli lépés,
-Wpesszimista-mozog,
-Wclass-konverzió; - Folyamatban van a jövőbeli szabvány új funkcióinak bevezetése C++2a;
- A frontend mostantól pontosabb információkat tárol számos forráskód-elemről, ami lehetővé teszi, hogy részletesebb információkat jelenítsen meg a diagnosztikában;
- Túlterhelt függvények, bináris operátorok, függvényhívások és formátum karakterláncok továbbfejlesztett diagnosztikája;
- Egyes fejlesztői környezetek által támogatott automatikus javítások hozzáadva számos népszerű hibához (hiányzó zárójelek, névterek, elírási hibák stb.).
libstdc++
- A C++17 implementáció már nem kísérleti jellegű;
- Párhuzamos algoritmusok hozzáadva, , , A már nem igényel -lstdc++fs;
- Továbbfejlesztett kísérleti támogatás a C++2a-hoz ( , , std::bind_front stb.);
- Támogatás olyan fájlfolyamok megnyitásához Windows rendszeren, amelyek elérési útja nem karakteres karaktereket tartalmaz;
- Kezdeti támogatás Windows rendszeren;
- A Networking TS kezdeti támogatása.
D
A D nyelvi 2.076-os verziót a GCC tartalmazza.
Fortran
- Az aszinkron I/O teljes támogatása;
- Implementált BACK argumentum a MINLOC és MAXLOC számára;
- Megvalósított FINDLOC és IS_CONTIGOUS függvények;
- Megvalósult a komplex számok összetevőinek eléréséhez szükséges szintaxis: c%re és c%im;
- Implementált szintaxis str%len és a%kind;
- Megvalósított C-leírók és ISO_Fortran_binding.h fejléc;
- Enyhített követelmények a MAX és MIN függvények eredményére vonatkozóan, ha az egyik argumentum NaN;
- Hozzáadott opció -fdec-include;
- Az irányelv hozzáadva BEÉPÍTETT.
libgccjit
- Funkció hozzáadva gcc_jit_context_add_driver_option.
Más
Számos architektúra- és operációs rendszer-specifikus változás.
Forrás: linux.org.ru