3

Бир жылдык өнүгүүдөн кийин жарыяланган Perl программалоо тилинин жаңы туруктуу бутагын чыгаруу - 5.44. боюнча даярдоо Жаңы чыгарылышта болжол менен 270 000 сап код өзгөртүлдү (документацияны жана автоматтык түрдө түзүлгөн кодду кошпогондо - 110 000), өзгөртүүлөр 860 файлга таасир этти жана иштеп чыгууга 71 иштеп чыгуучу катышты.

5.44 бутагы он үч жыл мурун түзүлгөн туруктуу өнүктүрүү графигине ылайык чыгарылды, ал жылына бир жолу жаңы туруктуу бутактарды жана үч ай сайын кошумча чыгарылыштарды чыгарууну талап кылат. Биринчи кошумча чыгарылыш, Perl 5.44.1, болжол менен бир айдан кийин чыгарылышы пландаштырылууда, анда Perl 5.44.0 ишке ашыруу учурунда табылган эң маанилүү каталар оңдолот. Perl 5.44 чыгарылышы менен 5.40 бутагын колдоо токтотулду; келечекте анын жаңыртуулары коопсуздуктун олуттуу көйгөйлөрү табылган учурда гана чыгарылышы мүмкүн. Башталган эгерде чечим кабыл алынбаса, 2027-жылдын биринчи жарымында Perl 5.46нын туруктуу чыгарылышына негиз боло турган эксперименталдык 5.45 бутагын иштеп чыгуу процесси барып, 7.x номерлөөсүнө чейин.

Ачкыч өзгөрүүлөр:

  • Кошулган аталган параметрлерди колдонуунун эксперименталдык мүмкүнчүлүгү кол тамгалар Функциянын денесинде эмес, аны жарыялоо учурунда функцияга өткөрүлүп берилген өзгөрмөлөрдүн тизмесин аныктоочу функциялар. Бул жаңы функция параметрлерди ачкыч/маани жуптарын жана хэштерде элементтерди дайындоого окшош синтаксисти колдонуп, катуу тартипте эмес, каалаган тартипте өткөрүүгө мүмкүндүк берет:
    • эски синтаксис: sub f { my ($x, $y) = @_; …} f(1, 2);
    • кол тамгалар: sub f ($x, $y) { … } f(1, 2);
    • аттары аталган параметрлери бар кол тамгалар: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Бир нече өзгөрмөлүү foreach циклдеринде псевдонимдерди (көрсөткүчтөргө көрсөткүчтөрдү) колдонуу үчүн эксперименталдык колдоо кошулду. Бул функция бир цикл итерациясында бир нече маанилерди алууда foreach циклинде псевдоним түзүүгө мүмкүндүк берет. Мисалы, хэштин ачкычтары жана маанилери боюнча итерациялоодо массиви бар хэш элементи үчүн псевдоним түзө аласыз: v5.44 колдонуу; feature qw(refaliasing declared_refs); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "$key массиви төмөнкүлөрдү камтыйт: @items"; } # 5.44 версиясына чейин шилтемелерди ажыратуу талап кылынат: foreach my ( $key, $var ) ( %hash ) { say "$key массиви төмөнкүлөрдү камтыйт: @$var"; } # Эксперименталдык кайра даректөө жана declared_refs функциялары жок: foreach my $key (keys %hash) { say "$key массиви төмөнкүлөрдү камтыйт: @{$hash{$key}}"; }
  • Туруктуу сөз айкаштарында ишке ашырылган Эксперименталдык 'enhanced_xx' режими /xx модификаторун төрт бурчтуу кашаанын ичиндеги символ класстары ([a-zA-Z]) менен бирге колдонуп, аларды бир нече саптарга бөлүүгө же комментарийлерди киргизүүгө мүмкүндүк берет. Мисалы, if ($text =~ m/[a-zA-Z]/){ шартын төмөнкүдөй жазууга болот: if ($text =~ m/[a-z # кичине тамгалар A-Z # чоң тамгалар ]/xx) {
  • Псевдо-кокустук сан генератору аны колдогон системаларда энтропияны алуу үчүн getentropy() системалык чакыруу функциясын колдонот (Linux, BSD, macOSБашка системаларда энтропия /dev/urandom түзмөгүнөн окуу же убакыттын хэшин, процесстин идентификаторун жана көрсөткүч маанисин колдонуу менен алынат.
  • Кошулган спецификацияны колдоо Юникод эмес 17.0.
  • Идентификаторлордун аталыштары жана туруктуу туюнтма топтору үчүн Юникод эрежелерин катуу сактоо камсыз кылынды, мурда w классы менен камтылган болжол менен 160 Юникод символу эми тыюу салынган. Мисалы, бардык тамгаларды, сандарды жана астыңкы сызыкча белгисин камтыган w классы эми чыныгы тамгаларга окшош, бирок андай эмес тегеректелген латын тамгаларын камтыбайт. Бул жүрүм-турумдун өзгөрүшү utf8 режимин колдонгон программаларга гана таасир этет.
  • Perl_study_chunk функцияларындагы буфердин ашып кетишинен келип чыккан алсыздыктар оңдолду (CVE-2026-8376, 32-биттик чогулуштарда пайда болот) жана S_measure_struct (CVE-2026-57432), ошондой эле Regex кыймылдаткычындагы 16-биттик эсептегичтин ашып кетиши (CVE-2026-13221), бул кадимки туюнтманын иштебей калышына алып келиши мүмкүн.
  • Циклдердин ичиндеги позицияларга жана блоктук конструкцияларга goto операторун колдонуп секирүүгө тыюу салынат. Бул функция 2010-жылы алынып салынган.
  • Бүтүн сандарды кошууну, кемитүүнү жана көбөйтүүнү, функциянын кол тамгасын иштетүүнү жана ачкыч/маани тизмелеринен хэштерди компиляция учурунда белгилүү болгон сап ачкычтары менен толтурууну тездетүү үчүн иштин натыйжалуулугун оптималдаштыруулар жасалган.

Source: linux.org.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster