GCC 9.1


GCC 9.1

Il 3 maggio è stata rilasciata la prima versione pubblica della nona versione di GCC: GCC 9.1.
Contiene numerosi miglioramenti e aggiunte significative rispetto all'ottava
versione.

Modifiche generali

Opzioni
  • Le opzioni 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 la sostituzione dinamica del codice;
  • È stata aggiunta l'opzione —completion per supportare il completamento automatico nella shell;
  • Le diagnosi del compilatore ora includono numeri di linea (-fno-diagnostics-show-line-numbers) e
    informazioni sui tipi (fno-diagnostics-show-labels);
  • È stata aggiunta l'opzione -fdiagnostics-format=json per l'output delle diagnosi in formato JSON;
  • Opzioni per specificare l'allineamento (-falign-functions, ad 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 strumentazione dal profiler;
  • AddressSanitizer ora utilizza un allineamento più compatto per rilevare accessi errati alle variabili nello stack;
  • Numerosi miglioramenti nell'output -fopt-info;
  • È stata aggiunta l'opzione -fsave-optimization-record per salvare il report delle 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 legati a:

  • generazione di strutture switch;
  • ottimizzazioni inter-procedurali;
  • ottimizzazione basata su informazioni di profiling;
  • ottimizzazione in fase di linking (LTO);

Inoltre, il formato interno di gcov ora è JSON, e la nuova opzione —use-hotness-colors attiva la colorazione delle righe di codice a seconda della loro frequenza di utilizzo.

Linguaggi

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

Linguaggi simili a C
  • È stato implementato un supporto parziale per OpenMP 5.0;
  • Funzione aggiunta __builtin_convertvector;
  • È stato aggiunto l'avviso -Waddress-of-packed-member;
  • Miglioramenti in diversi avvisi esistenti;
  • Il messaggio di errore quando si passa un numero errato di argomenti a un macro ora include la dichiarazione stessa del macro;
  • Miglioramenti nelle proposte di correzione degli errori di battitura.
C
  • Supporto per _Static_assert con un solo argomento per -std=c2x (il 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ù precise su diversi elementi del codice sorgente, consentendo di visualizzare informazioni più dettagliate 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 diversi errori comuni (parentesi mancanti, spazi dei nomi, errori di battitura, ecc.).
libstdc++
  • L'implementazione di C++17 non è più sperimentale;
  • Aggiunti algoritmi paralleli, <execution>, <memory_resource>, e <filesystem> non richiede più -lstdc++fs;
  • Migliorata la supporto sperimentale per C++ 2a (<bit>, <version>, std::bind_front, ecc.);
  • Supporto per l'apertura di flussi di file su Windows con percorsi contenenti caratteri al di fuori di char;
  • Supporto iniziale per <filesystem> su Windows;
  • Supporto iniziale per Networking TS.
D

Il linguaggio D versione 2.076 è incluso in GCC.

Fortran
  • Supporto completo per input/output asincroni;
  • Implementato l'argomento BACK per MINLOC e MAXLOC;
  • Implementate le funzioni FINDLOC e IS_CONTIGUOUS;
  • Implementata la sintassi di accesso alle componenti di numeri complessi: c%re e c%im;
  • Implementata la sintassi str%len e a%kind;
  • Implementati descrittori C e intestazione ISO_Fortran_binding.h;
  • Allentati i requisiti sui risultati delle funzioni MAX e MIN quando uno degli argomenti è NaN;
  • È stata aggiunta l'opzione -fdec-include;
  • Direttiva aggiunta BUILTIN.
libgccjit

Altro

Numerosi cambiamenti specifici per architettura e OS.

Fonte: linux.org.ru

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