GCC 9.1


GCC 9.1

Pe 3 mai a avut loc prima lansare publică a celei de-a noua versiuni a GCC: GCC 9.1.
Conține multe îmbunătățiri și completări semnificative în comparație cu a opta
versiune.

Modificări generale

Opțiuni
Noi funcții încorporate
Atribut nou
Alte

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

  • generarea de constructii comutatoare;
  • optimizări inter-procedurale;
  • optimizare bazată pe informații de profilare;
  • optimizare la faza de asamblare (LTO);

De asemenea, formatul intern al gcov este acum JSON și noua opțiune --utilizați-culori-fierbinți implică colorarea liniilor de cod în funcție de cât de des sunt utilizate.

Limbi

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

Limbi asemănătoare C
  • A fost implementat suport parțial pentru OpenMP 5.0;
  • Funcție adăugată __builtin_convertvector;
  • Avertisment adăugat -Adresa-de-membrul-ambalat;
  • Îmbunătățiri ale unui număr de avertismente existente;
  • Textul de eroare la transmiterea unui număr greșit de argumente unei macrocomenzi include acum declarația macrocomenzii în sine;
  • Îmbunătățiri ale sugestiilor de corectare a greșelilor de scriere.
C
  • Suportă _Static_assert cu un argument pentru -std=c2x (viitorul standard C);
  • Avertisment nou -Valoare-Wabsolută, care prinde tipul de argument greșit pentru funcții precum abs().
C ++
  • Avertismente noi: -Wdeprecat-copie,
    -Wit-list-lifetime,
    -Mișcare-wredundant,
    -Wpesimizing-mutare,
    -Wclass-conversie;
  • Se lucrează la implementarea de noi caracteristici din viitorul standard C++2a;
  • Interfața stochează acum informații mai precise despre un număr de elemente de cod sursă, ceea ce vă permite să afișați informații mai detaliate în diagnosticare;
  • Diagnosticare îmbunătățită pentru funcții supraîncărcate, operatori binari, apeluri de funcții și șiruri de format;
  • S-au adăugat remedieri automate acceptate de unele medii de dezvoltare pentru o serie de erori populare (lipsă paranteze, spații de nume, greșeli de tipar etc.).
libstdc++
  • Implementarea C++17 nu mai este experimentală;
  • S-au adăugat algoritmi paraleli, , , A nu mai necesită -lstdc++fs;
  • Suport experimental îmbunătățit pentru C++2a ( , , std::bind_front etc.);
  • Suport pentru deschiderea fluxurilor de fișiere pe Windows ale căror căi conțin caractere non-car;
  • Sprijin inițial pe Windows;
  • Suport inițial pentru Networking TS.
D

Limba D versiunea 2.076 este inclusă în GCC.

Fortran
  • Suport complet pentru I/O asincron;
  • Argumentul BACK implementat pentru MINLOC și MAXLOC;
  • Implementarea funcțiilor FINDLOC și IS_CONTIGOUS;
  • A fost implementată sintaxa de accesare a componentelor numerelor complexe: c%re și c%im;
  • Sintaxa implementată str%len și a%kind;
  • Implementați descriptori C și antetul ISO_Fortran_binding.h;
  • Cerințe relaxate pentru rezultatul funcțiilor MAX și MIN atunci când unul dintre argumente este NaN;
  • Opțiune adăugată -fdec-include;
  • A fost adăugată directiva INCORPORAT.
libgccjit

Alte

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

Sursa: linux.org.ru

Adauga un comentariu