El 3 de maig va tenir lloc la primera versió pública de la novena versió de GCC: GCC 9.1.
Conté moltes millores i addicions importants en comparació amb el vuitè
versió.
Canvis generals
Opcions
- Les ordres que accepten la mida ara admeten valors de 64 bits i sufixos per especificar la mida;
- Opció afegida -Five-pegat,per controlar les optimitzacions que són potencialment destructives per a la substitució de codi dinàmica;
- S'ha afegit l'opció --completion per admetre l'emplenament automàtic a l'intèrpret d'ordres;
- Els diagnòstics del compilador ara inclouen números de línia (-fno-diagnostics-show-line-numbers) I
informació del tipus (fno-diagnostics-show-etiquetes); - Opció afegida -fdiagnostics-format=json per generar diagnòstics en format JSON;
- Opcions per especificar l'alineació (-Falign-funcions, per exemple) ara pot acceptar un parell d'opcions d'alineació;
- S'han afegit opcions per filtrar la llista de fitxers (-fprofile-filter-fitxers, -fprofile-exclude-files), que són instrumentats pel perfilador;
- AddressSanitizer ara utilitza una alineació més compacta per detectar accessos no vàlids a variables de la pila;
- Nombroses millores de sortida -fopt-info;
- Opció afegida -fsave-optimization-record per desar l'informe d'optimització en un fitxer;
- Opció afegida -fipa-stack-alignment и -referència-fipa-adreçable.
Noves funcions integrades
Nou atribut
- copy.
Un altre
Nombroses millores de generació de codi relacionades amb:
- generació de construccions d'interruptors;
- optimitzacions interprocedimentals;
- optimització basada en la informació de perfil;
- optimització en l'etapa de muntatge (LTO);
També el format intern de gcov és ara JSON i la nova opció --usar-colors-calents implica pintar línies de codi en funció de la freqüència amb què s'utilitzen.
Idiomes
Qualitat i exhaustivitat de la implementació OpenACC els llenguatges C, C++ i Fortran continuen millorant.
Llenguatges semblants a C
- S'ha implementat suport parcial per a OpenMP 5.0;
- Característica afegida __vector_convertidor integrat;
- Avís afegit -Adreça-del-membre-empat;
- Millores en una sèrie d'avisos existents;
- El text d'error en passar el nombre incorrecte d'arguments a una macro ara inclou la declaració de la pròpia macro;
- Millores als suggeriments de correcció d'errors ortogràfics.
C
- Admet _Static_assert amb un argument per a -std=c2x (futur estàndard C);
- Nou avís -Valor-wabsolut, que capta el tipus d'argument incorrecte per a funcions com abs().
C + +
- Nous avisos: -Wobsolet-còpia,
-Llista de guanys de vida,
-Moviment-wredundant,
-Wpessimizing-moveu,
-Wclass-conversió; - S'està treballant per implementar noves funcions del futur estàndard C++2a;
- La interfície ara emmagatzema informació més precisa sobre una sèrie d'elements del codi font, la qual cosa us permet mostrar informació més detallada en el diagnòstic;
- Diagnòstic millorat per a funcions sobrecarregades, operadors binaris, trucades de funcions i cadenes de format;
- S'han afegit correccions automàtiques admeses per alguns entorns de desenvolupament per a una sèrie d'errors populars (falten parèntesis, espais de noms, errors tipogràfics, etc.).
libstdc++
- La implementació de C++17 ja no és experimental;
- S'han afegit algorismes paral·lels, , , A ja no requereix -lstdc++fs;
- Suport experimental millorat per a C++2a ( , , std::bind_front, etc.);
- Suport per obrir fluxos de fitxers a Windows els camins dels quals contenen caràcters que no són caràcters;
- Suport inicial a Windows;
- Suport inicial per a Networking TS.
D
La versió de llenguatge D 2.076 s'inclou a GCC.
Fortran
- Suport complet per a E/S asíncrona;
- Argument BACK implementat per a MINLOC i MAXLOC;
- S'han implementat les funcions FINDLOC i IS_CONTIGOUS;
- S'ha implementat la sintaxi per accedir als components dels nombres complexos: c%re i c%im;
- Sintaxi implementada str%len i a%kind;
- Descriptors C implementats i capçalera ISO_Fortran_binding.h;
- Requisits relaxats per al resultat de les funcions MAX i MIN quan un dels arguments és NaN;
- Opció afegida -fdec-inclou;
- Directiva afegida CONSTRUït.
libgccjit
- Característica afegida gcc_jit_context_add_driver_option.
Un altre
Molts canvis específics de l'arquitectura i del sistema operatiu.
Font: linux.org.ru