Προγραμματισμός

Οι μεταγλωττιστές της σειράς GCC 10 φτάνουν σε σημαντική αναβάθμιση

Το GCC (Συλλογή GNU Compiler) 10.1, μια σημαντική κυκλοφορία της πλατφόρμας, δημοσιεύθηκε στις 7 Μαΐου 2020, με στιγμιότυπα που περιλαμβάνουν δυνατότητες C ++ 20 και υποστήριξη γλώσσας C2X. Το C2X είναι η επόμενη σημαντική αναθεώρηση της γλώσσας C, η οποία αναμένεται το 2022.

Οι σημειώσεις έκδοσης για το GCC 10 δείχνουν ότι έχει εφαρμοστεί ένα πλήθος χαρακτηριστικών C ++ 20, συμπεριλαμβανομένης της επιτρεπόμενης συναρμολόγησης inline σε συναρτήσεις constexpr και επέκταση δομημένων συνδέσμων. Επίσης για το C ++ 20, το GCC 10 επιτρέπει μετατροπές σε συστοιχίες άγνωστου δεσμευμένου, επιτρέπει ασήμαντη προεπιλεγμένη αρχικοποίηση σε περιβάλλοντα constexpr, προσθέτει το σταθερός λέξη-κλειδί και καταργεί τοπτητικός λέξη-κλειδί.

Για το C2X, την επερχόμενη αναθεώρηση του προτύπου ISO C, υποστηρίζονται πολλές δυνατότητες με τη σύνταξη-std = c2x και -std + gnu2x. Μεταξύ αυτών είναι strftime έλεγχος μορφής που υποστηρίζει το % ΟΒ και % Ομ μορφές και σταθερές χαρακτήρων UTF-8 χρησιμοποιώντας τη σύνταξη u8 ".

Το GCC, το οποίο υπάρχει εδώ και περισσότερα από 33 χρόνια, περιλαμβάνει διεπαφές και βιβλιοθήκες για C, C ++, Fortran, Ada, Go και D. Ένα ενημερωτικό δελτίο δημοσιεύτηκε για μεταφορά στο GCC 10. Άλλες νέες δυνατότητες στο GCC 10.1 περιλαμβάνουν

  • Έχουν προστεθεί ενσωματωμένες συναρτήσεις, συμπεριλαμβανομένου ενός has_builtin χειριστής προεπεξεργαστή που μπορεί να χρησιμοποιηθεί για να ζητήσει υποστήριξη για ενσωματωμένες λειτουργίες που παρέχονται από το GCC και άλλους μεταγλωττιστές που το υποστηρίζουν.
  • Προστέθηκαν επιλογές εντολών. Αυτά περιλαμβάνουν-πρόσβαση-dce, για να αφαιρέσετε τα περιττά ζευγάρια νέος και διαγράφω χειριστές και -αναλυτής, για να ενεργοποιήσετε μια νέα κάρτα στατικής ανάλυσης και σχετικές προειδοποιήσεις. Η τελευταία επιλογή πρέπει να θεωρηθεί ότι βρίσκεται στην πειραματική φάση.
  • Πραγματοποιήθηκαν βελτιώσεις μεταξύ διαδικασιών βελτιστοποίησης. Σε αυτά περιλαμβάνεται η εκ νέου εφαρμογή των διαδικαστικών βαθμιαίων αντικαταστάσεων αθροιστικών αδειών (IPA-SRA) που επαναχρησιμοποιήθηκαν για να λειτουργήσουν στο χρόνο σύνδεσης. Το IPA-SRA τώρα μπορεί επίσης να αφαιρέσει τον υπολογισμό και να επιστρέψει τις τιμές επιστροφής που δεν χρησιμοποιήθηκαν.
  • Οι βελτιώσεις βελτιστοποίησης χρόνου σύνδεσης περιλαμβάνουν ένα νέο δυαδικό ito-dump. Το πρόγραμμα μπορεί να απορρίψει διάφορες πληροφορίες σχετικά με έναν ΠΟΕ ψηφιόλεξη αρχείο αντικειμένου.
  • Έχουν πραγματοποιηθεί βελτιώσεις βελτιστοποίησης βάσει προφίλ, συμπεριλαμβανομένης της βελτίωσης της συντήρησης προφίλ κατά τη μεταγλώττιση και του διαμερίσματος με ζεστό / κρύο.
  • Για την οικογένεια Γ, το πρόσβαση λειτουργία και τύπος Προστέθηκε ένα χαρακτηριστικό για να περιγράψει πώς μια συνάρτηση αποκτά πρόσβαση σε αντικείμενα που μεταβιβάζονται σε αυτόν με δείκτη ή αναφορά, και για να συσχετίσουν τέτοια ορίσματα με ακέραια ορίσματα που υποδηλώνουν το μέγεθος αντικειμένου. Το χαρακτηριστικό χρησιμοποιείται για να επιτρέψει τον εντοπισμό μη έγκυρων προσβάσεων από λειτουργίες που ορίζονται από το χρήστη. Υπάρχουν επίσης νέες προειδοποιήσεις και βελτιώσεις στις υπάρχουσες προειδοποιήσεις. Μια προειδοποίηση, -Μήκος-όριο-όρια, προειδοποιεί για πρόσβαση σε στοιχεία συστοιχιών μηδενικού μήκους που ενδέχεται να επικαλύπτουν άλλα μέλη του ίδιου αντικειμένου.
  • Διορθώθηκε μια ασυμβατότητα ABI μεταξύ C ++ 14 και C ++ 17. Σε ορισμένους στόχους, μια κλάση με υπο-αντικείμενο μηδενικού μεγέθους θα περάσει εσφαλμένα όταν μεταγλωττιστεί ως C ++ 17 ή C ++ 20.
$config[zx-auto] not found$config[zx-overlay] not found