Το Perl 7 θα συνεχίσει απρόσκοπτα την ανάπτυξη του Perl 5 χωρίς να σπάσει τη συμβατότητα προς τα πίσω

Το Διοικητικό Συμβούλιο του Έργου Perl περιέγραψε σχέδια για περαιτέρω ανάπτυξη του κλάδου Perl 5 και τη δημιουργία ενός κλάδου Perl 7. Κατά τη διάρκεια των συζητήσεων, το Διοικητικό Συμβούλιο συμφώνησε ότι δεν είναι αποδεκτό να διακοπεί η συμβατότητα με κώδικα που έχει ήδη γραφτεί για το Perl 5, εκτός και αν σπάσει η συμβατότητα είναι απαραίτητη για τη διόρθωση ευπαθειών. Το Συμβούλιο κατέληξε επίσης στο συμπέρασμα ότι η γλώσσα πρέπει να εξελιχθεί και τα νέα χαρακτηριστικά θα πρέπει να προωθηθούν εντατικότερα, καθιστώντας παράλληλα ευκολότερη την πρόσβαση στις αναδυόμενες καινοτομίες και ενθαρρύνοντας την υιοθέτησή τους.

Σε αντίθεση με τις αρχικές προθέσεις να επιτρέπεται η εξ ορισμού συμπερίληψη αλλαγών που διακόπτουν τη συμβατότητα προς τα πίσω στον κλάδο Perl 7, το νέο σχέδιο είναι η σταδιακή μετάβαση του κλάδου Perl 5 σε Perl 7 χωρίς διακοπή της συμβατότητας προς τα πίσω με τον υπάρχοντα κώδικα. Η έκδοση του Perl 7.0 δεν θα διαφέρει εννοιολογικά από τον επόμενο κλάδο Perl 5.xx.

Η ανάπτυξη νέων εκδόσεων του Perl 5 θα συνεχιστεί όπως πριν - νέα χαρακτηριστικά που προστέθηκαν στον κλάδο που δεν είναι συμβατά με τον παλιό κώδικα θα συμπεριληφθούν, όπως και πριν, μόνο εάν ορίζεται ρητά η πρακτική "έκδοση χρήσης" ή "λειτουργία χρήσης" στον κώδικα. Για παράδειγμα, η Perl 5.010 εισήγαγε μια νέα λέξη-κλειδί "say", αλλά δεδομένου ότι ο υπάρχων κώδικας μπορούσε να χρησιμοποιήσει συναρτήσεις με το όνομα "say", η υποστήριξη για τη νέα λέξη-κλειδί ενεργοποιήθηκε μόνο προσδιορίζοντας ρητά το "use χαρακτηριστικό "say" pragma.

Νέα σύνταξη που προστέθηκε στη γλώσσα, η οποία όταν υποβλήθηκε σε επεξεργασία σε προηγούμενες εκδόσεις οδήγησε σε σφάλμα, γίνεται άμεσα διαθέσιμη χωρίς να χρειάζεται να καθοριστούν ειδικές πρακτικές. Για παράδειγμα, η Perl 5.36 θα εισαγάγει μια απλοποιημένη σύνταξη για την επεξεργασία πολλαπλών τιμών λίστας ταυτόχρονα ("foreach my ($key, $value) (%hash) {") που θα είναι άμεσα διαθέσιμη, ακόμη και σε κώδικα χωρίς τη "χρήση v5.36” pragma.

Στην τρέχουσα μορφή του, το Perl 5.36 χρησιμοποιεί το "use v5.36" pragma για να ενεργοποιήσει 13 χαρακτηριστικά που διασπούν τη διαλειτουργικότητα ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa' ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' και 'unicode_strings'), ενεργοποιήστε τις λειτουργίες "χρήση αυστηρών" και "χρήση προειδοποιήσεων" από προεπιλογή και απενεργοποιήστε την υποστήριξη για τον έμμεσο συμβολισμό παλαιού τύπου για κλήση αντικειμένων (όταν αντί για "- >" χρησιμοποιεί κενό) και πολυδιάστατους πίνακες και κατακερματισμούς στυλ Perl 4 ("$hash{1, 2}").

Όταν συγκεντρωθούν αρκετές αλλαγές, αντί για την επόμενη έκδοση του Perl 5.x, θα δημιουργηθεί μια έκδοση του Perl 7.0, η οποία θα γίνει ένα είδος στιγμιότυπου κατάστασης, αλλά θα παραμείνει πλήρως συμβατή με το Perl 5. Για να ενεργοποιήσετε αλλαγές και ρυθμίσεις ότι η συμβατότητα διακοπής, θα χρειαστεί να προσθέσετε ρητά το pragma "use v7" στον κώδικα. Εκείνοι. Ο κώδικας με το "use v7" pragma μπορεί να αντιμετωπιστεί ως "σύγχρονο Perl", στο οποίο είναι διαθέσιμες αλλαγές στη γλώσσα που παραβιάζουν τη συμβατότητα και χωρίς - "συντηρητικό Perl", το οποίο θα παραμείνει πλήρως συμβατό με προηγούμενες εκδόσεις.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο