Perl 5.44


3

Pēc gada attīstības publicēta jaunas stabilas Perl programmēšanas valodas filiāles izlaišana - 5.44. Plkst sagatavošana Jaunajā laidienā tika mainītas aptuveni 270 000 koda rindiņu (neskaitot dokumentāciju un automātiski ģenerēto kodu — 110 000), izmaiņas skāra 860 failus, un izstrādē piedalījās 71 izstrādātājs.

5.44 versija ir izlaista saskaņā ar fiksēto izstrādes grafiku, kas tika izveidots pirms trīspadsmit gadiem, kas paredz jaunu stabilu atzaru izlaišanu reizi gadā un nelielu laidienu izlaišanu ik pēc trim mēnešiem. Pirmā mazākā laidiena, Perl 5.44.1, izlaišana ir paredzēta aptuveni mēneša laikā, novēršot būtiskākās kļūdas, kas atklātas Perl 5.44.0 ieviešanas laikā. Līdz ar Perl 5.44 izlaišanu ir beidzies atbalsts 5.40 versijai; tās atjauninājumi nākotnē varētu tikt izlaisti tikai tad, ja tiks atklātas kritiskas drošības problēmas. Ir sācies eksperimentālās 5.45 atzara izstrādes process, kas būs pamats Perl 5.46 stabilai izlaišanai 2027. gada pirmajā pusē, ja vien netiks pieņemts lēmums iet pāri līdz numerācijai 7.x.

Atslēga izmaiņas:

  • Pievienots eksperimentāla iespēja izmantot nosauktos parametrus paraksti Funkcijas, kas definē funkcijai nodoto mainīgo sarakstu nevis funkcijas pamattekstā, bet gan tās deklarēšanas laikā. Šī jaunā funkcija ļauj parametrus nodot nevis stingrā secībā, bet gan jebkurā secībā, izmantojot atslēgu/vērtību pārus un sintaksi, kas ir līdzīga elementu piešķiršanai hešos:
    • vecā sintakse: sub f { my ($x, $y) = @_; …} f(1, 2);
    • paraksti: sub f ($x, $y) { … } f(1, 2);
    • paraksti ar nosauktiem parametriem: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Pievienots eksperimentāls atbalsts aizstājvārdu (rādītāju uz rādītājiem) izmantošanai foreach ciklos ar vairākiem mainīgajiem. Šī funkcija ļauj izveidot aizstājvārdu foreach ciklā, izgūstot vairākas vērtības vienā cikla iterācijā. Piemēram, varat izveidot aizstājvārdu jaucējkoda elementam ar masīvu, iterējot gan jaucējkoda atslēgas, gan vērtības: izmantojiet v5.44; izmantojiet funkciju qw( realiasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "$key masīvs satur: @items"; } # Pirms 5.44 versijas bija nepieciešama atsauču noņemšana: foreach my ( $key, $var ) ( %hash ) { say "$key masīvs satur: @$var"; } # Bez eksperimentālas atkārtotas parādīšanas un declared_refs funkcijām: foreach my $key (keys %hash) { say "$key masīvs satur: @{$hash{$key}}"; }
  • Regulārajās izteiksmēs īstenota Eksperimentālais režīms “enhanced_xx” ļauj izmantot modifikatoru /xx ar rakstzīmju klasēm kvadrātiekavās ([a-zA-Z]), lai tās sadalītu vairākās rindās vai ievietotu komentārus. Piemēram, nosacījumu if ($text =~ m/[a-zA-Z]/){ varētu uzrakstīt šādi: if ($text =~ m/[ a-z # mazie burti A-Z # lielie burti ]/xx) {
  • Pseido-nejaušskaitļu ģenerators izmanto sistēmas izsaukumu getentropy(), lai iegūtu entropiju sistēmās, kas to atbalsta (Linux, BSD, macOSCitās sistēmās entropija tiek iegūta, nolasot no /dev/urandom ierīces vai izmantojot laika, procesa ID un rādītāja vērtības hešu.
  • Pievienots specifikāciju atbalsts Unicode 17.0.
  • Identifikatoru nosaukumiem un regulāro izteiksmju grupām ir nodrošināta stingra Unicode noteikumu ievērošana, un tagad ir aizliegtas aptuveni 160 Unicode rakstzīmes, kuras iepriekš aptvēra w klase. Piemēram, w klase, kas aptver visus burtus, ciparus un pasvītrojuma rakstzīmi, tagad izslēdz apvilktos latīņu burtus, kas atgādina īstus burtus, bet nav tādi. Šīs darbības izmaiņas ietekmē tikai programmas, kas izmanto use utf8 režīmu.
  • Novērstas ievainojamības, ko izraisīja bufera pārpildes Perl_study_chunk funkcijās (CVE-2026-8376, parādās 32 bitu assembleros) un S_measure_struct (CVE-2026-57432), kā arī 16 bitu skaitītāja pārpilde regulārās izteiksmes dzinējā (CVE-2026-13221), kas var izraisīt regulārās izteiksmes kļūmi.
  • Pārlēkšana uz pozīcijām ciklu un bloku konstrukciju ietvaros, izmantojot goto operatoru, ir aizliegta. Šī funkcija tika novecojusi 2010. gadā.
  • Veiktspējas optimizācija tika veikta, lai paātrinātu veselu skaitļu saskaitīšanu, atņemšanu un reizināšanu, funkciju parakstu apstrādi un hešu aizpildīšanu no atslēgu/vērtību sarakstiem ar virkņu atslēgām, kas zināmas kompilēšanas laikā.

Avots: linux.org.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster