GCC 9.1


GCC 9.1

El 3 de mayo se lanzó la primera versión pública de la novena versión de GCC: GCC 9.1.
Contiene numerosas mejoras y adiciones significativas en comparación con la octava
versión.

Cambios generales

Opciones
Nuevas funciones incorporadas
Un nuevo atributo
Otro

Numerosas mejoras en la generación de código relacionadas con:

  • generación de estructuras switch;
  • optimización entre procedimientos;
  • optimización basada en información de perfilado;
  • optimización en el paso de enlace (LTO);

Además, el formato interno de gcov ahora es JSON, y la nueva opción —use-hotness-colors incluye colorear líneas de código según la frecuencia de uso.

Lenguajes

Calidad y completitud de la implementación OpenACC en los lenguajes C, C++ y Fortran sigue mejorando.

Lenguajes similares a C
  • Se implementó soporte parcial para OpenMP 5.0;
  • Se agregó la función __builtin_convertvector;
  • Se añadió una advertencia -Waddress-of-packed-member;
  • Mejoras en varias advertencias existentes;
  • El texto del error al pasar un número incorrecto de argumentos a un macro ahora incluye la declaración del propio macro;
  • Mejoras en las sugerencias de corrección ortográfica.
C
  • Soporte para _Static_assert con un argumento para -std=c2x (futuro estándar de C);
  • Una nueva advertencia -Wabsolute-value, que detecta un tipo de argumento incorrecto para funciones como abs().
C++
  • Nuevas advertencias: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Se está trabajando en la implementación de nuevas funcionalidades del futuro estándar C++ 2a;
  • El frontend ahora conserva información más precisa sobre una serie de elementos del código fuente, lo que permite mostrar información más detallada en los diagnósticos;
  • Se han mejorado los diagnósticos para funciones sobrecargadas, operadores binarios, llamadas a funciones y cadenas de formato;
  • Se han agregado correcciones automáticas soportadas por algunos entornos de desarrollo para una serie de errores comunes (paréntesis faltantes, espacios de nombres, errores tipográficos, etc.).
libstdc++
  • La implementación de C++17 ya no es experimental;
  • Se han agregado algoritmos paralelos, <execution>, <memory_resource>, y <filesystem> ya no requiere -lstdc++fs;
  • Se ha mejorado el soporte experimental para C++ 2a (<bit>, <version>, std::bind_front, etc.);
  • Soporte para abrir flujos de archivos en Windows cuyos caminos contienen caracteres fuera de char;
  • Soporte inicial para <filesystem> en Windows;
  • Soporte inicial para Networking TS.
ataques

El lenguaje D versión 2.076 se incluye en GCC.

Fortran
  • Soporte completo para entrada/salida asíncrona;
  • Se ha implementado el argumento BACK para MINLOC y MAXLOC;
  • Se han implementado las funciones FINDLOC e IS_CONTIGUOUS;
  • Se ha implementado la sintaxis de acceso a las partes complejas de números complejos: c%re y c%im;
  • Se ha implementado la sintaxis str%len y a%kind;
  • Se han implementado descriptores C y el encabezado ISO_Fortran_binding.h;
  • Se han flexibilizado los requisitos sobre el resultado de las funciones MAX y MIN cuando uno de los argumentos es NaN;
  • Se ha añadido la opción -fdec-include;
  • Se ha añadido la directiva BUILTIN.
libgccjit

Otro

Una serie de cambios específicos de arquitectura y sistema operativo.

Fuente: linux.org.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster