GCC 9.1

Il 3 maggio è stata rilasciata la prima versione pubblica di GCC 9.1.
Include molti miglioramenti significativi e aggiunte rispetto all'ottava
versione.

Modifiche generali

Opzioni
  • I comandi che accettano dimensioni ora supportano valori a 64 bit e suffissi per indicare la dimensione;
  • È stata aggiunta l'opzione -flive-patching, per gestire le ottimizzazioni potenzialmente distruttive per il cambio dinamico del codice;
  • È stata aggiunta l'opzione —completion per supportare il completamento automatico nella shell;
  • I messaggi di errore del compilatore ora includono i numeri di riga (-fno-diagnostics-show-line-numbers) e
    informazioni sui tipi (-fno-diagnostics-show-labels);
  • È stata aggiunta l'opzione -fdiagnostics-format=json per l'output dei messaggi di errore in formato JSON;
  • Le opzioni per specificare l'allineamento (-falign-functions, per esempio) ora possono accettare una coppia di varianti di allineamento;
  • Sono state aggiunte opzioni per filtrare l'elenco dei file (-fprofile-filter-files, -fprofile-exclude-files), che vengono sottoposti a profili con il profiler;
  • AddressSanitizer ora utilizza un allineamento più compatto per rilevare accessi non validi alle variabili nello stack;
  • Numerosi miglioramenti nell'output -fopt-info;
  • È stata aggiunta l'opzione -fsave-optimization-record per salvare il rapporto sulle ottimizzazioni in un file;
  • È stata aggiunta l'opzione -fipa-stack-alignment e -fipa-reference-addressable.
Nuove funzioni integrate
Nuovo attributo
Altro

Numerosi miglioramenti nella generazione del codice relativi a:

  • generazione di strutture switch;
  • ottimizzazioni interfunzionali;
  • ottimizzazione basata su informazioni di profiling;
  • ottimizzazione al momento della compilazione (LTO);

Il formato interno di gcov è ora JSON, e la nuova opzione —use-hotness-colors abilita la colorazione delle righe di codice in base alla loro frequenza d'uso.

Linguaggi

Qualità e completezza dell'implementazione OpenACC nei linguaggi C, C++ e Fortran continuano a migliorare.

Linguaggi simili al C
  • Supporto parziale implementato per OpenMP 5.0;
  • È stata aggiunta una funzione __builtin_convertvector;
  • Aggiunto avviso -Waddress-of-packed-member;
  • Miglioramenti a diversi avvisi esistenti;
  • Il messaggio di errore per la trasmissione a una macro con un numero errato di argomenti ora include la dichiarazione stessa della macro;
  • Miglioramenti nei suggerimenti di correzione degli errori di battitura.
C
  • Supporto per _Static_assert con un solo argomento per -std=c2x (futuro standard C);
  • Nuovo avviso -Wabsolute-value, che intercetta il tipo di argomento errato per funzioni come abs().
C++
  • Nuovi avvisi: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Sono in corso lavori per implementare nuove funzionalità dallo standard futuro C++ 2a;
  • Il frontend ora conserva informazioni più accurate su una serie di elementi del codice sorgente, consentendo una visualizzazione più dettagliata nelle diagnosi;
  • Migliorate le diagnosi per funzioni sovraccaricate, operatori binari, chiamate di funzione e stringhe di formato;
  • Aggiunti correzioni automatiche supportate da alcuni ambienti di sviluppo per una serie di errori comuni (parentesi mancanti, spazi dei nomi, refusi, ecc.).
libstdc++
  • L'implementazione di C++17 non è più sperimentale;
  • Aggiunti algoritmi paralleli, , , e non richiede più -lstdc++fs;
  • Migliorato il supporto sperimentale per C++ 2a (, , std::bind_front, ecc.);
  • Supporto per l'apertura di file su Windows i cui percorsi contengono caratteri che esulano da char;
  • Supporto iniziale per su Windows;
  • Supporto iniziale per Networking TS.
D

La versione 2.076 del linguaggio D è inclusa in GCC.

Fortran
  • Supporto completo per input/output asincrono;
  • Implementato l'argomento BACK per MINLOC e MAXLOC;
  • Sono state implementate le funzioni FINDLOC e IS_CONTIGUOUS;
  • È stata implementata la sintassi di accesso alle componenti complesse dei numeri complessi: c%re e c%im;
  • È stata implementata la sintassi str%len e a%kind;
  • Sono stati implementati i descrittori C e l'intestazione ISO_Fortran_binding.h;
  • Le condizioni per il risultato delle funzioni MAX e MIN sono state allentate quando uno degli argomenti è NaN;
  • È stata aggiunta l'opzione -fdec-include;
  • È stata aggiunta la direttiva BUILTIN.
libgccjit

Altro

Numerose modifiche specifiche per architettura e OS.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster