GCC 9.1

Στις 3 Μαΐου πραγματοποιήθηκε η πρώτη δημόσια κυκλοφορία της ένατης έκδοσης του GCC: GCC 9.1.
Περιέχει πολλές σημαντικές βελτιώσεις και προσθήκες σε σύγκριση με το όγδοο
εκδοχή.

Γενικές αλλαγές

Επιλογές
  • Οι εντολές που δέχονται το μέγεθος υποστηρίζουν τώρα τιμές 64-bit και επιθήματα για τον καθορισμό του μεγέθους.
  • Προστέθηκε επιλογή -flive-patching, για τον έλεγχο βελτιστοποιήσεων που είναι δυνητικά καταστροφικές για τη δυναμική αντικατάσταση κώδικα.
  • Προστέθηκε η επιλογή --completion για την υποστήριξη της αυτόματης συμπλήρωσης στο κέλυφος εντολών.
  • Τα διαγνωστικά μεταγλωττιστή περιλαμβάνουν πλέον αριθμούς γραμμής (-fno-diagnostics-show-line-numbers) Και
    πληροφορίες τύπου (fno-diagnostics-show-labels);
  • Προστέθηκε επιλογή -fdiagnostics-format=json για έξοδο διαγνωστικών σε μορφή JSON.
  • Επιλογές για τον καθορισμό ευθυγράμμισης (-falign-λειτουργίες, για παράδειγμα) μπορεί τώρα να δεχτεί μερικές επιλογές ευθυγράμμισης.
  • Προστέθηκαν επιλογές για το φιλτράρισμα της λίστας αρχείων (-fprofile-filter-files, -fprofile-exclude-files), τα οποία είναι οργανωμένα από τον προγραμματιστή.
  • Το AddressSanitizer χρησιμοποιεί πλέον πιο συμπαγή στοίχιση για να εντοπίσει μη έγκυρες προσβάσεις σε μεταβλητές στη στοίβα.
  • Πολυάριθμες βελτιώσεις στην παραγωγή -fopt-πληροφορίες;
  • Προστέθηκε επιλογή -fsave-optimization-record για να αποθηκεύσετε την αναφορά βελτιστοποίησης σε ένα αρχείο.
  • Προστέθηκε επιλογή -fipa-στοίβα-ευθυγράμμιση и -fipa-reference-addressable.
Νέα ενσωματωμένα χαρακτηριστικά
Νέο χαρακτηριστικό
Άλλος

Πολυάριθμες βελτιώσεις δημιουργίας κώδικα που σχετίζονται με:

  • Δημιουργία κατασκευών διακόπτη.
  • διαδικαστικές βελτιστοποιήσεις·
  • βελτιστοποίηση με βάση τις πληροφορίες δημιουργίας προφίλ.
  • βελτιστοποίηση στο στάδιο της συναρμολόγησης (LTO).

Επίσης η εσωτερική μορφή του gcov είναι τώρα JSON και η νέα επιλογή --χρήση-ζεστότητα-χρώματα περιλαμβάνει χρωματισμό γραμμών κώδικα με βάση το πόσο συχνά χρησιμοποιούνται.

Γλώσσες

Ποιότητα και πληρότητα υλοποίησης OpenACC οι γλώσσες C, C++ και Fortran συνεχίζουν να βελτιώνονται.

Γλώσσες τύπου C
  • Έχει υλοποιηθεί μερική υποστήριξη για το OpenMP 5.0.
  • Προστέθηκε λειτουργία __builtin_convertvector;
  • Προστέθηκε προειδοποίηση -Waddress-of-packed-mele;
  • Βελτιώσεις σε ορισμένες υπάρχουσες προειδοποιήσεις.
  • Το κείμενο σφάλματος κατά τη μετάδοση του λανθασμένου αριθμού ορισμάτων σε μια μακροεντολή περιλαμβάνει πλέον τη δήλωση της ίδιας της μακροεντολής.
  • Βελτιώσεις σε προτάσεις διόρθωσης τυπογραφικών σφαλμάτων.
C
  • Υποστήριξη _Static_assert με ένα όρισμα για -std=c2x (μελλοντικό πρότυπο C).
  • Νέα προειδοποίηση -Απόλυτη-τιμή, το οποίο πιάνει λάθος τύπο ορίσματος για συναρτήσεις όπως η abs().
C + +
  • Νέες προειδοποιήσεις: -Καταργημένο-αντίγραφο,
    -Winit-list-lifetime,
    -Εξοδευτική κίνηση,
    -Απαισιοδοξία-κίνηση,
    -Wclass-μετατροπή;
  • Γίνονται εργασίες για την εφαρμογή νέων χαρακτηριστικών από το μελλοντικό πρότυπο C++2a;
  • Το frontend αποθηκεύει τώρα πιο ακριβείς πληροφορίες σχετικά με έναν αριθμό στοιχείων πηγαίου κώδικα, που σας επιτρέπει να εμφανίζετε πιο λεπτομερείς πληροφορίες στα διαγνωστικά.
  • Βελτιωμένα διαγνωστικά για υπερφορτωμένες συναρτήσεις, δυαδικούς τελεστές, κλήσεις συναρτήσεων και συμβολοσειρές μορφοποίησης.
  • Προστέθηκαν αυτόματες διορθώσεις, που υποστηρίζονται από ορισμένα περιβάλλοντα ανάπτυξης, για μια σειρά από δημοφιλή σφάλματα (που λείπουν παρενθέσεις, χώροι ονομάτων, τυπογραφικά λάθη κ.λπ.).
libstdc++
  • Η υλοποίηση της C++17 δεν είναι πλέον πειραματική.
  • Προστέθηκαν παράλληλοι αλγόριθμοι, , , ΕΝΑ δεν απαιτεί πλέον -lstdc++fs;
  • Βελτιωμένη πειραματική υποστήριξη για C++2a ( , , std::bind_front, κ.λπ.);
  • Υποστήριξη για άνοιγμα ροών αρχείων στα Windows των οποίων οι διαδρομές περιέχουν χαρακτήρες που δεν είναι χαρακτήρες.
  • Αρχική υποστήριξη στα Windows?
  • Αρχική υποστήριξη για Networking TS.
D

Η έκδοση 2.076 της γλώσσας D περιλαμβάνεται στο GCC.

Fortran
  • Πλήρης υποστήριξη για ασύγχρονη I/O.
  • Εφαρμόστηκε το όρισμα BACK για MINLOC και MAXLOC.
  • Εφάρμοσε τις συναρτήσεις FINDLOC και IS_CONTIGOUS.
  • Η σύνταξη για την πρόσβαση στις συνιστώσες των μιγαδικών αριθμών έχει εφαρμοστεί: c%re και c%im;
  • Εφαρμοσμένη σύνταξη str%len και a%kind.
  • Υλοποιήθηκαν περιγραφείς C και κεφαλίδα ISO_Fortran_binding.h.
  • Οι απαιτήσεις για το αποτέλεσμα των συναρτήσεων MAX και MIN έχουν χαλαρώσει όταν ένα από τα ορίσματα είναι NaN.
  • Προστέθηκε επιλογή -fdec-περιλαμβάνω;
  • προστέθηκε οδηγία ΚΑΤΑΣΚΕΥΑΣΜΕΝΟ.
libgccjit

Άλλος

Πολλές αλλαγές που αφορούν την αρχιτεκτονική και το λειτουργικό σύστημα.

Πηγή: linux.org.ru

Προσθέστε ένα σχόλιο