Το gccrs θα ενσωματωθεί στο GCC 13

gccrs

Το gccrs είναι μια πλήρης εναλλακτική εφαρμογή της γλώσσας Rust έναντι του GCC

Πρόσφατα αποκαλύφθηκε ότι το έργο gccrs, στόχος του οποίου είναι να παρέχει μια διεπαφή για τη γλώσσα Rust στο GCC (Συλλογή μεταγλωττιστών GNU), είναι καθ' οδόν να ενσωματωθεί στο GCC 13.  Στο συνέδριο προγραμματιστών FOSDEM νωρίτερα αυτό το μήνα, ο μηχανικός Άρθουρ Κοέν έκανε μια παρουσίαση σχετικά με το gccrs περιγράφοντας την τρέχουσα κατάσταση της εργασίας.

Για όσους δεν γνωρίζουν το έργο gccrs, θα πρέπει να γνωρίζουν ότι αυτό είναι μια πλήρης εναλλακτική εφαρμογή της γλώσσας Rust πάνω από το GCC με στόχο να γίνει πλήρως η αλυσίδα εργαλείων GNU.

Η προέλευση αυτού του έργου είναι μια κοινοτική προσπάθεια πριν από αρκετά χρόνια, όταν η Rust ήταν ακόμα στην έκδοση 0.9. η γλώσσα που δημιουργήθηκε από τη Mozilla υπέστη τόσες πολλές αλλαγές που έγινε δύσκολο για μια κοινοτική προσπάθεια να καλυφθεί.

Τώρα που η γλώσσα είναι σταθερή, ήρθε η ώρα να δημιουργήσετε εναλλακτικούς μεταγλωττιστές:

«Ξεκίνησε το 2014 (και ξεκίνησε ξανά το 2019), η προσπάθεια συνεχίζεται από το 2020 και έχουμε κάνει πολλή προσπάθεια και μεγάλη πρόοδο. Ανεβάσαμε την πρώτη έκδοση του gccrs εντός του GCC. Έτσι την επόμενη φορά που θα εγκαταστήσετε το GCC 13, θα έχει gccrs μέσα.

Μπορείτε να το χρησιμοποιήσετε και μπορείτε να αρχίσετε να το χακάρετε, μπορείτε να αναφέρετε τα προβλήματα όταν αναπόφευκτα καταρρεύσει και πεθάνει φρικτά. Ένα μεγάλο πράγμα που κάνουμε είναι να εργαζόμαστε για να λειτουργήσει η δοκιμαστική σουίτα rustc», είπε ο Άρθουρ Κοέν κατά την παρουσίασή του στο συνέδριο FOSDEM νωρίτερα αυτό το μήνα.

Η δυνατότητα επιτυχούς εκτέλεσης της δοκιμαστικής σουίτας μεταγλωττιστή rustc παραμένει επίσης στόχος. Σύμφωνα με τον Κοέν, Η διεπαφή GCC του Rust δείχνει επίσης το παλαιότερο Rust libcore 1.49.

Οι Συχνές Ερωτήσεις του έργου gccrs σημειώνει ότι όλες οι τεχνολογίες κατασκευής LLVM, οι οποίες χρησιμοποιούνται από τη Rust, "στερούνται κάποια backend συμβατά με το GCC, επομένως μια εφαρμογή gccrs μπορεί να καλύψει τα κενά για χρήση στην ενσωματωμένη ανάπτυξη".

Σημειώστε, ωστόσο, ότι ο μεταγλωττιστής Rust-GCC (gccrs) βρίσκεται ακόμα σε πολύ πρώιμο στάδιο και δεν μπορεί ακόμη να χρησιμοποιηθεί για τη μεταγλώττιση πραγματικών προγραμμάτων Rust.

Η ομάδα του GCC ψήφισε τον περασμένο Ιούλιο για να εγκρίνει την ενσωμάτωση του gccrs ως σουίτα κατασκευής. Η σημασία αυτού του έργου έγκειται στη σημασία του για τον πυρήνα του Linux. Στην πραγματικότητα, ο πυρήνας του Linux κατασκευάζεται συνήθως με GCC, αλλά τα σχέδια να επιτραπεί η χρήση της γλώσσας Rust μαζί με το C για τον κώδικα του πυρήνα, για λόγους ασφάλειας της μνήμης, προχωρούν σταθερά.

Το έργο "Rust for Linux" συγχωνεύτηκε επίσημα στο κύριο δέντρο Linux 6.1 Git τον περασμένο Οκτώβριο, καθιστώντας τη Rust τη δεύτερη γλώσσα αφιερωμένη στην ανάπτυξη Linux, μετά από 31 χρόνια αποκλειστικής ανάπτυξης που βασίζεται στη C.

«Θέλουμε το gccrs να είναι ένας πραγματικός μεταγλωττιστής Rust και όχι ένα έργο παιχνιδιού ή κάτι που συντάσσει μια γλώσσα που μοιάζει με Rust αλλά δεν είναι Rust. προσπαθούμε πραγματικά να κάνουμε αυτή τη δοκιμαστική σουίτα να λειτουργήσει», πρόσθεσε. Κατά τη διάρκεια της παρουσίασης, ο Cohen είπε επίσης ότι ενώ η διεπαφή Rust του GCC 13 έχει ξεκινήσει καλά, υπάρχει ακόμη πολλή δουλειά που πρέπει να γίνει. Ο δανεικός κώδικας επαλήθευσης απουσιάζει εμφανώς αυτή τη στιγμή, η υποστήριξη για ενσωματωμένες και εγγενείς λειτουργικές μονάδες συνεχίζεται και το σημαντικό ορόσημο της μεταγλώττισης του κώδικα Rust για Linux δεν έχει ακόμη επιτευχθεί.

Για υπενθύμιση, το έργο Το "Rust for Linux" στοχεύει στην εισαγωγή μιας νέας γλώσσας προγραμματισμού συστήματος στον πυρήνα του Linux. Σύμφωνα με ειδικούς, η γλώσσα Rust έχει μια βασική ιδιότητα που καθιστά πολύ ενδιαφέρουσα τη θεωρία της ως δεύτερης γλώσσας του πυρήνα Linux: διασφαλίζει ότι δεν εμφανίζεται απροσδιόριστη συμπεριφορά (εφόσον ο μη ασφαλής κώδικας είναι λογικός).

Αυτό περιλαμβάνει την απουσία σφαλμάτων όπως η μετά την ελεύθερη χρήση, οι διπλές ελευθερώσεις, οι αγώνες δεδομένων κ.λπ. Σχετικές συζητήσεις περιστρέφονται γύρω από το ενδεχόμενο να αφαιρεθεί το C υπέρ της γλώσσας Rust. Αλλά ο Linus Torvalds, ο δημιουργός του Linux, είπε ότι αυτός δεν είναι ο δηλωμένος στόχος του έργου Rust for Linux.

Τέλος, Αξίζει να αναφέρουμε ότι αν και η διεπαφή gccrs συγχωνεύτηκε για την επόμενη έκδοση του GCC 13, δεν είναι ακόμα σε κατάσταση όπου οι περισσότεροι προγραμματιστές Rust μπορούν να το χρησιμοποιήσουν πραγματικά ως εναλλακτική λύση στον επίσημο μεταγλωττιστή LLVM της Rust.

Δεν θα έπρεπε να είναι μέχρι το επόμενο έτος, τουλάχιστον με το GCC 14 τουλάχιστον.

πηγή: https://fosdem.org/


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.