Perl 5.44


3

Po roku vývoja bol zverejnený nová stabilná verzia programovacieho jazyka Perl — 5.44. Pri príprave nového vydania bolo zmenených približne 270 tisíc riadkov kódu (bez dokumentácie a automaticky generovaného kódu — 110 tisíc), zmeny sa dotkli 860 súborov a na vývoji sa podieľalo 71 vývojárov.

Verzia 5.44 bola vydaná v súlade s predtým schváleným harmonogramom vývoja, ktorý bol prijatý pred trinástimi rokmi a predpokladá vydávanie nových stabilných verzií raz ročne a opravných vydaní — každé tri mesiace. Približne o mesiac sa plánuje vydanie prvého opraveného vydania Perl 5.44.1, v ktorom budú opravené najvýznamnejšie chyby zistené počas zavádzania Perl 5.44.0. S vydaním Perl 5.44 sa zároveň končí podpora verzie 5.40, pre ktorú môžu byť aktualizácie vydané v budúcnosti iba v prípade zistenia kritických bezpečnostných problémov. Začal sa proces vývoja experimentálnej verzie 5.45, na základe ktorej bude v prvej polovici roka 2027 vytvorené stabilné vydanie Perl 5.46, pokiaľ nebude prijaté rozhodnutie prejsť na číslovanie 7.x.

Kľúčové zmeny:

  • Pridaná experimentálna možnosť použitia pomenovaných parametrov v podpisoch funkcií, ktoré definujú zoznam premenných predávaných funkcii nie v tele funkcie, ale pri jej deklarácii. Nová funkcia umožňuje predávať parametre nie v prísnom poradí, ale v ľubovoľnom poradí s využitím párov kľúč/hodnota a syntaxe ako pri priraďovaní prvkov v hash:
    • starý zápis: sub f { my ($x, $y) = @_; …} f(1, 2);
    • podpisy: sub f ($x, $y) { … } f(1, 2);
    • podpisy s pomenovanými parametrami: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Pridaná experimentálna funkcia na používanie aliasov (ukazovateľov na ukazovatele) v cykloch foreach s viacerými premennými. Implementovaná funkcia umožňuje vytvárať alias v cykle foreach pri súčasnom získavaní viacerých hodnôt v jednom cykle. Napríklad, je možné vytvoriť alias pre prvok hash s poliami pri prechádzaní kľúčov a hodnôt hashu: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Array $key obsahuje: @items"; } # Pred verziou 5.44 by bolo potrebné vykonávať odkazovanie: foreach my ( $key, $var ) ( %hash ) { say "Array $key obsahuje: @$var"; } # Bez experimentálnych funkcií refaliasing a declared_refs: foreach my $key (keys %hash) { say "Array $key obsahuje: @{$hash{$key}}"; }
  • Vo regulárnych výrazoch implementovaný experimentálny mód ‘enhanced_xx’, ktorý umožňuje používať modifikátor /xx s triedami znakov v hranatých zátvorkách ([a-zA-Z]) na ich rozdelenie na viacero riadkov alebo na vkladanie komentárov. Napríklad, podmienka if ($text =~ m/[a-zA-Z]/) sa dá upraviť takto: if ($text =~ m/[ a-z # malé písmená A-Z # veľké písmená ]/xx) {
  • V generátore pseudonáhodných čísel sa na získanie entropie využíva systémový hovor getentropy() na systémoch, ktoré ho podporujú (Linux, BSD, macOS). Na ostatných systémoch sa entropia získava čítaním z zariadenia /dev/urandom alebo použitím hashovacej funkcie na základe času, identifikátora procesu a hodnoty ukazovateľa.
  • Pridaná podpora špecifikácie Unicode 17.0.
  • Bol zabezpečený prísny súlad s pravidlami Unicode pre mená identifikátorov a triedy regulárnych výrazov, v ktorých je teraz zakázané používať približne 160 Unicode-symbolov, ktoré predtým patrili pod triedu w. Napríklad, z pôsobnosti triedy w, ktorá pokrýva všetky písmená, číslice a podčiarkovník, boli vylúčené latinské písmená v kruhoch, ktoré pripomínajú skutočné písmená, ale nie sú nimi. Zmena správania sa týka iba programov, ktoré používajú režim use utf8.
  • Boli odstránené zraniteľnosti spôsobené pretečením vyrovnávacej pamäte vo funkciách Perl_study_chunk (CVE-2026-8376, ktoré sa prejavuje v 32-bitových zostaveniach) a S_measure_struct (CVE-2026-57432), ako aj pretečenie 16-bitového čítača v Regex-engíne (CVE-2026-13221), čo môže viesť k nesprávnemu vyhodnoteniu regulárneho výrazu.
  • Použitie operátora goto na pozície v cykloch a blokových konštrukciách je zakázané. Táto možnosť bola vyhlásená za zastaranú v roku 2010.
  • Boli vykonané optimalizácie výkonu, ktoré urýchlili operácie sčítania, odčítania a násobenia celých čísel, spracovanie podpisov funkcií a vyplnenie hashov zo zoznamov vo formáte kľúč/hodnota so známymi reťazcovými kľúčmi už v čase kompilácie.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster