GCC 9.1


GCC 9.1

Pe 3 mai a avut loc lansarea publică a versiunii a noua a GCC: GCC 9.1.
Aceasta conține o mulțime de îmbunătățiri și adăugiri semnificative comparativ cu versiunea a opta.
versiune.

Modificări generale

Opțiuni
  • Comenzile care acceptă dimensiunea sprijină acum valori de 64 de biți și sufixe pentru a indica dimensiunea;
  • O opțiune a fost adăugată -flive-patching, pentru gestionarea optimizărilor potențial dăunătoare pentru înlocuirea dinamică a codului;
  • A fost adăugată opțiunea —completion pentru a sprijini completarea automată în terminal;
  • Diagnosticile compilatorului includ acum numere de linie (-fno-diagnostics-show-line-numbers) și
    informații despre tipuri (fno-diagnostics-show-labels);
  • O opțiune a fost adăugată -fdiagnostics-format=json pentru a produce diagnostice în format JSON;
  • Opțiuni pentru specificarea aliniamentului (-falign-functions, de exemplu) pot acum accepta o pereche de opțiuni de aliniere;
  • Au fost adăugate opțiuni pentru filtrarea listei de fișiere (-fprofile-filter-files, -fprofile-exclude-files), care sunt supuse instrumentării profilatorului;
  • AddressSanitizer folosește acum un aliniament mai compact pentru a prinde accesurile incorecte la variabilele de pe stivă;
  • Numeroase îmbunătățiri în ieșirea -fopt-info;
  • O opțiune a fost adăugată -fsave-optimization-record pentru a salva raportul despre optimizări într-un fișier;
  • O opțiune a fost adăugată -fipa-stack-alignment și -fipa-reference-addressable.
Funcții încorporate noi
A fost adăugat un nou atribut
Altele

Numeroase îmbunătățiri ale generării de cod legate de:

  • generarea construcțiilor switch;
  • optimizările interprocedurale;
  • optimizarea bazată pe informații de profilare;
  • optimizarea în etapa de linkare (LTO);

De asemenea, formatul intern gcov este acum JSON, iar noua opțiune —use-hotness-colors include colorarea liniilor de cod în funcție de frecvența utilizării acestora.

Limbi

Calitatea și completitudinea implementării OpenACC în limbile C, C++ și Fortran continuă să se îmbunătățească.

Limbi asemănătoare C
  • S-a implementat suport parțial pentru OpenMP 5.0;
  • Funcție adăugată __builtin_convertvector;
  • A fost adăugat un avertisment -Waddress-of-packed-member;
  • Îmbunătățiri în mai multe avertismente existente;
  • Textul erorii atunci când se trece un număr incorect de argumente în macro-uri include acum declarația macro-ului însuși;
  • Îmbunătățiri în sugestiile de corectare a greșelilor de tipar.
C
  • Suport pentru _Static_assert cu un singur argument pentru -std=c2x (futurul standard C);
  • Un nou avertisment -Wabsolute-value, care prinde tipuri de argument greșite pentru funcții precum abs().
C++
  • Avertismente noi: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Sunt în curs de implementare noi funcționalități din standardul viitor C++ 2a;
  • Frontendul acum păstrează informații mai precise despre diverse elemente din codul sursă, permițându-le să fie afișate informații detaliate în diagnostice;
  • Diagnosticele pentru funcții suprasolicitate, operatori binari, apeluri de funcții și șiruri de format au fost îmbunătățite;
  • Au fost adăugate corecții automate susținute de unele medii de dezvoltare pentru diverse erori comune (paranteze lipsă, spații de nume, greșeli de tipar etc.).
libstdc++
  • Implementarea C++17 nu mai este experimentală;
  • Au fost adăugate algoritmi paraleli, <execution>, <memory_resource>, iar <filesystem> nu mai necesită -lstdc++fs;
  • A fost îmbunătățită suportul experimental pentru C++ 2a (<bit>, <version>, std::bind_front etc.);
  • Suport pentru deschiderea fluxurilor de fișiere pe Windows, ale căror căi conțin caractere care depășesc char;
  • Suport inițial pentru <filesystem> pe Windows;
  • Suport inițial pentru Networking TS.
D

Limba D versiunea 2.076 este inclusă în GCC.

Fortran
  • Suport complet pentru intrare/ieșire asincronă;
  • Argumentul BACK pentru MINLOC și MAXLOC a fost implementat;
  • Funcțiile FINDLOC și IS_CONTIGUOUS au fost implementate;
  • Sintaxa de acces la componentele numerelor complexe: c%re și c%im a fost implementată;
  • Sintaxa str%len și a%kind a fost implementată;
  • Descriptorii C și antetul ISO_Fortran_binding.h au fost implementați;
  • Cerințele pentru rezultatele funcțiilor MAX și MIN au fost relaxate atunci când unul dintre argumente este NaN;
  • O opțiune a fost adăugată -fdec-include;
  • A fost adăugată directiva BUILTIN.
libgccjit

Altele

Numeroase modificări specifice arhitecturii și sistemului de operare.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster