Στις 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
- Προστέθηκε λειτουργία gcc_jit_context_add_driver_option.
Άλλος
Πολλές αλλαγές που αφορούν την αρχιτεκτονική και το λειτουργικό σύστημα.
Πηγή: linux.org.ru