Η συζήτηση για τις επεκτάσεις C της Microsoft επιστρέφει δυναμικά στον πυρήνα Linux. Αυτήν τη φορά, δύο τροποποιήσεις κώδικα στο δέντρο ανάπτυξης kbuild-next ενεργοποιούν καθολικά την παράμετρο μεταγλώττισης -fms-extensions. Ο στόχος είναι να ενταχθούν στο «παράθυρο συγχώνευσης» του Linux 6.19 τον Δεκέμβριο του 2025, εφόσον δεν υπάρξουν ενστάσεις. Η αλλαγή θα ισχύει για GCC (GNU Compiler Collection) και LLVM/Clang (εναλλακτικοί μεταγλωττιστές) σε όλη τη διαδικασία μεταγλώττισης του πυρήνα.
Τι αλλάζει πρακτικά. Η επιλογή -fms-extensions, που εδώ και χρόνια υποστηρίζεται από GCC/Clang, επιτρέπει ορισμένες μη τυποποιημένες συντακτικές δυνατότητες συμβατές με τον μεταγλωττιστή MSVC (Microsoft Visual C++). Παραδείγματα είναι τα «ανώνυμα» struct/union με απευθείας πρόσβαση στα μέλη τους και επιμέρους ιδιαιτερότητες αρχικοποιήσεων. Αυτά μειώνουν τις λύσεις παράκαμψης και, σε ορισμένα σημεία, οδηγούν σε πιο καθαρό και συνοπτικό κώδικα.
Ο συντηρητής Rasmus Villemoes εισηγείται να ενεργοποιηθεί η ρύθμιση σε όλο το δέντρο του πυρήνα, ώστε τυχόν χρήσεις των συγκεκριμένων δυνατοτήτων να μη χρειάζονται εξαιρέσεις ανά υποκατάλογο. Στη σχετική τεκμηρίωση παρατίθενται περιπτώσεις από παλαιότερες συζητήσεις όπου οι MS επεκτάσεις έδιναν πιο κομψή λύση. Από προηγούμενες δημόσιες τοποθετήσεις προκύπτει ότι ο Linus Torvalds δεν είναι αρνητικός σε μια τέτοια κατεύθυνση για το 6.19.
Βραχυπρόθεσμα, αυτό σημαίνει ελάχιστα για τους τελικούς χρήστες. Για διανομές με συνεχείς ενημερώσεις και όσους παρακολουθούν στενά τα -next δέντρα, μπορεί να εμφανιστούν σποραδικές προειδοποιήσεις κατά τη μεταγλώττιση ή μικρά ζητήματα ασυμβατότητας που θα κλείνουν με διορθωτικά patches. Μεσοπρόθεσμα, οι προγραμματιστές αποκτούν μεγαλύτερη ευελιξία σε κρίσιμες δομές δεδομένων και πιθανές μικρές βελτιώσεις στη χρήση στοίβας, ενώ λήγει μια συζήτηση που κρατά χρόνια.
Επίσης, δεν απαιτείται μεταγλώττιση του πυρήνα με εργαλεία της Microsoft ούτε αλλάζει το toolchain του Linux. Η μεταβολή αφορά αποκλειστικά το σύνολο των αποδεκτών συντακτικών επιλογών στους ήδη χρησιμοποιούμενους μεταγλωττιστές. Συνοδευτικό patch φροντίζει η ρύθμιση να ισχύει και για αρχιτεκτονικές που ορίζουν δικά τους CFLAGS, ώστε να αποφευχθούν γκρίζες ζώνες συμβατότητας μέσα στο ίδιο σύστημα build.
Ρίσκα και όρια. Η αυξημένη ανοχή σε μη τυποποιημένες κατασκευές χρειάζεται πειθαρχία, για να μην επιβαρυνθούν η φορητότητα και τα εργαλεία ανάλυσης κώδικα σε βάθος χρόνου. Το αποτέλεσμα θα κριθεί από τη συνετή χρήση των επεκτάσεων και την προσήλωση στο υπάρχον coding style του πυρήνα. Αν υπάρξουν σοβαρές αντιρρήσεις από maintainers ή από τον ίδιο τον Torvalds, θα φανούν πριν την τελική ενσωμάτωση. Συνολικά, δεν πρόκειται για «στροφή» προς τον MSVC, αλλά για πρακτική αποδοχή δυνατοτήτων που υποστηρίζουν ήδη οι GCC/Clang, με στόχο ευανάγνωστο και συντηρήσιμο κώδικα σε επιλεγμένα σημεία.

Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now