Perl 7 hladce naváže na vývoj Perl 5 bez porušení zpětné kompatibility

Správní rada projektu Perl shrnula plány pro další vývoj větve Perl 5 a vytvoření větve Perl 7. Během diskuzí se správní rada shodla, že není přijatelné porušovat kompatibilitu s již napsaným kódem pro Perl 5, s výjimkou případů, kdy je porušení kompatibility nezbytné k odstranění zranitelností. Rada také dospěla k závěru, že jazyk by měl pokračovat v rozvoji a je třeba intenzivněji propagovat nové funkce, přičemž by se měla zjednodušit dostupnost nových inovací a podpořit jejich zavádění.

Na rozdíl od původních záměrů, které umožňovaly zařazení změn porušujících zpětnou kompatibilitu do větve Perl 7 jako výchozí, nový plán předpokládá postupné transformování větve Perl 5 na Perl 7 bez porušení zpětné kompatibility s již existujícím kódem. Verze Perl 7.0 nebude koncepčně odlišná od další větve Perl 5.xx.

Vývoj nových verzí Perl 5 bude pokračovat tak, jak byl - nové funkce přidávané do větve, které nejsou kompatibilní se starým kódem, budou jako předtím zahrnuty pouze při výslovném označení v kódu pragmou „use version“ nebo „use feature možnost“. Například ve verzi Perl 5.010 bylo představeno nové klíčové slovo „say“, ale protože v existujícím kódu mohly být používány funkce s názvem „say“, podpora nového klíčového slova byla zahrnuta pouze při výslovném označení pragmy „use feature ‘say'“.

Nový syntax přidávaný do jazyka, který v předchozích verzích vedl k vyvolání chyby, je nyní k dispozici okamžitě bez nutnosti značení speciálními pragmy. Například ve verzi Perl 5.36 se objeví zjednodušená syntaxe pro jednorázové zpracování více hodnot seznamu („foreach my ($key, $value) (%hash) {„), která bude dostupná okamžitě, i v kódu bez pragmy „use v5.36“.

V aktuálním vydání Perl 5.36 se při použití pragmatu „use v5.36“ aktivuje 13 funkcí porušujících kompatibilitu (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ a ‘unicode_strings’), nastavují se ve výchozím nastavení režimy „use strict“ a „use warnings“ a vypíná se podpora zastaralé nepřímé notace pro volání objektů (kdy místo „->“ se používá mezera) a vícerozměrných polí a hashů ve stylu Perl 4 („$hash{1, 2}“).

Když se nahromadí dostatek změn, místo dalšího vydání Perl 5.x bude vytvořena verze Perl 7.0, která se stane jakýmsi řezem stavu, ale zůstane plně zpětně kompatibilní s Perl 5. Pro zahrnutí porušujících kompatibilitu změn a nastavení bude vyžadováno explicitní přidání pragmatu „use v7“ do kódu. Tedy kód s pragmatem „use v7“ lze chápat jako „moderní Perl“, ve kterém jsou dostupné změny jazyka, které porušují kompatibilitu, zatímco bez – „konzervativní Perl“, který zůstane plně zpětně kompatibilní s předchozími vydáními.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster