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

Ο μεταγλωττιστής GCC GNU προσθέτει υποστήριξη C ++ 17

Με την έκδοση 7.1 του GCC (Συλλογή GNU Compiler), που κυκλοφόρησε αυτήν την εβδομάδα, η πλατφόρμα λαμβάνει έγκαιρη υποστήριξη για τα πρότυπα C ++ 17 και τις βελτιώσεις διαγνωστικών.

Η έκδοση 7.1 έχει μια διεπαφή C ++ με πειραματική υποστήριξη για όλες τις προδιαγραφές πρόχειρου C ++ 17. ο -std = c ++ 1z και -std = gnu ++ 1z επιλογές και το libstdc ++ υποστηρίζονται και η βιβλιοθήκη έχει εφαρμόσει τις περισσότερες δυνατότητες πρόχειρης βιβλιοθήκης C ++ 17. Η προηγούμενη έκδοση του GCC 6.1 συμμορφώνεται με το πρότυπο C ++ 14.

Η σειρά GCC 7 διαφέρει από τις προηγούμενες κυκλοφορίες χρησιμοποιώντας το LRA (Local Register Allocator) από προεπιλογή για νέους στόχους και καταργώντας τις επεκτάσεις Cilk + στις γλώσσες C και C ++. Επίσης, ορισμένες συμπεριφορές έχουν χαλαρωθεί για να βελτιώσουν την απόδοση της συλλογής ή του χρόνου εκτέλεσης. Ωστόσο, ορισμένες αλλαγές θα μπορούσαν να "προκαλέσουν θλίψη" κατά τη μεταφορά στο GCC 7, σύμφωνα με σημειώσεις έκδοσης, οι οποίες αναφέρουν ζητήματα προεπεξεργαστή και C, καθώς και ζητήματα γλώσσας C ++, όπως αυστηρότερους κανόνες για πρότυπα. "Το GCC 7 δεν δέχεται πλέον διάφορες μορφές κακής μορφής που περιλαμβάνουν τη χρήση προτύπων", αναφέρουν οι σημειώσεις.

Το GCC 7.1 ενισχύει επίσης τα διαγνωστικά που εκπέμπονται, συμπεριλαμβανομένων βελτιωμένων τοποθεσιών και βελτιώσεις βελτιστοποίησης εμφανίζονται σε όλες τις βελτιστοποιήσεις ενδο- και διαδικαστικής, βελτιστοποιήσεις χρόνου σύνδεσης και διάφορα back-end στόχου, όπως προσθήκες κάρτας συγχώνευσης καταστήματος, βελτιστοποίηση ανύψωσης κώδικα, διαχωρισμός βρόχου, και βελτιώσεις συρρίκνωσης. Επιπλέον, το απολυμαντικό διεύθυνσης του GCC μπορεί τώρα να αναφέρει χρήσεις μεταβλητών αφού αφήσουν το πεδίο εφαρμογής τους. Το GCC μπορεί να διαμορφωθεί για το OpenMP API offloading σε Nvidia PTX GPGPUs, αλλά ορισμένος κώδικας που έχει μεταγλωττιστεί με παλαιότερες εκδόσεις GCC ενδέχεται να χρειαστεί προσαρμογές. Η συλλογή περιλαμβάνει διεπαφές για C, C ++, Objective-C, Fortran, Ada και Go.