Perl 7 va continua fără probleme dezvoltarea Perl 5, fără a întrerupe compatibilitatea cu înapoi

Consiliul de Guvernare al Proiectului Perl a schițat planuri pentru dezvoltarea ulterioară a ramurii Perl 5 și crearea unei ramuri Perl 7. În timpul discuțiilor, Consiliul de Guvernare a convenit că nu este acceptabil să se rupă compatibilitatea cu codul deja scris pentru Perl 5, cu excepția cazului în care se rupe. compatibilitatea este necesară pentru a remedia vulnerabilitățile. Consiliul a concluzionat, de asemenea, că limba ar trebui să evolueze și că noile funcții ar trebui promovate mai intens, facilitând accesul inovațiilor emergente și încurajând adoptarea.

Spre deosebire de intențiile inițiale de a permite ca modificările care încalcă compatibilitatea inversă să fie incluse implicit în ramura Perl 7, noul plan este de a trece treptat ramura Perl 5 în Perl 7 fără a întrerupe compatibilitatea cu codul existent. Versiunea Perl 7.0 nu va fi diferită conceptual de următoarea ramură Perl 5.xx.

Dezvoltarea noilor versiuni ale Perl 5 va continua ca și înainte - noile caracteristici adăugate la ramură care sunt incompatibile cu vechiul cod vor fi incluse, ca și înainte, numai dacă pragma „utilizare versiune” sau „utilizare caracteristică” este specificată în mod explicit în cod. De exemplu, Perl 5.010 a introdus un nou cuvânt cheie „spune”, dar deoarece codul existent putea folosi funcții numite „spune”, suportul pentru noul cuvânt cheie a fost activat doar prin specificarea explicită a pragma „utilizați caracteristica „spune””.

Noua sintaxă adăugată limbajului, care, atunci când a fost procesată în versiunile anterioare, a condus la o eroare, devine imediat disponibilă, fără a fi nevoie să specificați pragmate speciale. De exemplu, Perl 5.36 va introduce o sintaxă simplificată pentru procesarea mai multor valori de listă simultan („foreach my ($key, $value) (%hash) {”) care va fi disponibilă imediat, chiar și în cod fără „utilizare v5.36” pragma.

În forma sa actuală, Perl 5.36 folosește pragma „utilizați v5.36” pentru a activa 13 caracteristici de întrerupere a interoperabilității („spune”, „state”, „sub_actual”, „fc”, „subs lexical”, „semnături”, „isa”. ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' and 'unicode_strings'), activați modurile „utilizați strict” și „utilizați avertismente” în mod implicit și dezactivați suportul pentru notația indirectă moștenită pentru apelarea obiectelor (când în loc de „- >” folosește un spațiu) și tablouri și hashuri multidimensionale în stil Perl 4 ("$hash{1, 2}").

Când s-au acumulat suficiente modificări, în loc de următoarea ediție a Perl 5.x, va fi generată o versiune de Perl 7.0, care va deveni un fel de instantaneu de stare, dar va rămâne pe deplin compatibil cu Perl 5. Pentru a activa modificările și setările care întrerupe compatibilitatea, va trebui să adăugați în mod explicit pragma „utilizați v7” la cod. Acestea. codul cu pragma „utilizați v7” poate fi tratat ca „Perl modern”, în care sunt disponibile modificări de limba care distrug compatibilitatea, și fără - „Perl conservator”, care va rămâne pe deplin compatibil cu versiunile anterioare.

Sursa: opennet.ru

Adauga un comentariu