Ukukhishwa kolimi lohlelo Perl 5.30.0

Ngemuva kwezinyanga eziyisi-11 zokuthuthukiswa kwenzeka ukukhululwa kwegatsha elisha elizinzile lolimi lokuhlela lwe-Perl - 5.30. Ekulungiseleleni ukukhululwa okusha, cishe imigqa yekhodi eyizinkulungwane ezingu-620 yashintshwa, izinguquko zathinta amafayela angu-1300, futhi abathuthukisi be-58 babambe iqhaza ekuthuthukisweni.

Igatsha elingu-5.30 lakhululwa ngokuhambisana nohlelo lwentuthuko olungaguquki olwagunyazwa eminyakeni eyisithupha edlule, okusho ukukhululwa kwamagatsha amasha azinzile kanye ngonyaka kanye nokukhishwa kokulungisa njalo ngemva kwezinyanga ezintathu. Esikhathini esingangenyanga, kuhlelwe ukukhulula ukukhishwa kokulungisa kokuqala kwe-Perl 5.30.1, okuzolungisa amaphutha abaluleke kakhulu akhonjwe ngesikhathi sokusetshenziswa kwe-Perl 5.30.0. Kanye nokukhishwa kwe-Perl 5.30, ukusekelwa kwegatsha le-5.26 kuye kwanqanyulwa, okungase kukhishwe izibuyekezo ngokuzayo kuphela uma izinkinga zokuphepha ezibucayi zikhonjwa. Inqubo yokuthuthukiswa kwegatsha lokuhlola 5.31 nayo isiqalile, ngesisekelo lapho kuzokwakhiwa ukukhululwa okuzinzile kwe-Perl 2020 ngoMeyi 5.32.

Ukhiye shintsha:

  • Usekelo lokuhlola lwemisebenzi ethi "" lwengezwe kuzinkulumo ezivamile.(?‹!iphethini)"Futhi"(?‹=iphethini)» ukuze uthole ukufinyelela okulinganiselwe kuzifanekiso eziqanjwe ngaphambilini. Incazelo yephethini kufanele ibe phakathi kwezinhlamvu ezingu-255 zephoyinti lesithenjwa;
  • Inani eliphakeme kakhulu lesicacisi sikasayizi (“n”) kokuthi “{m,n}” emabhuloki enkulumo avamile lenyuswe laya ku-65534;
  • Kwengezwe kukhawulelwe ukwesekwa imaski yokugqamisa izigaba ezithile zezinhlamvu ezenzweni ezijwayelekile, ezimboza amasethi ahlukene e-Unicode. Ngokwesibonelo, inkulumo ethi “qr! \p{nv= /(?x) \A [0-5] \z / }!" ikuvumela ukuthi ukhethe zonke izinhlamvu ze-Unicode ezichaza izinombolo ukusuka ku-0 kuye ku-5, kufaka phakathi ukupela kwezinombolo zesiThai noma zesiBengali;
  • Kwengezwe ukusekelwa kwezinhlamvu eziqanjwe ngamagama ezisho ezivamile
    amaphethini angaphakathi ahlukaniswe izingcaphuno ezizodwa (qr'\N{name}');

  • Usekelo lokucaciswa kwe-Unicode lubuyekezelwe enguqulweni 12.1. Ifulegi lokuthuthukisa isilingo lisusiwe kumakholi sv_utf8_downgrade kanye ne-sv_utf8_decode, esetshenziswa ekuthuthukisweni kwezandiso ngolimi C;
  • Kwengezwe ikhono lokwakha i-perl ngokusetshenziswa kwemisebenzi ngendawo esekela ukusebenza kwemicu eminingi (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Ngaphambilini, ukuqaliswa okunjalo kwakusetshenziselwa kuphela lapho kwakhiwa inguqulo ye-Perl enezintambo eziningi, kodwa manje inganikwa amandla kunoma yisiphi isakhiwo;
  • Ukuhlanganisa amafulegi okuthi "-Dv" (okuthuthukisiwe kokukhipha iphutha) kanye nefulegi elithi "-Dr" (regex debugging) manje kubangela ukuthi zonke izindlela zokususa iphutha ezivamile zinikwe amandla;
  • Izici ezehlisiwe ngaphambilini zisusiwe:
    • Manje iyatholakala njengesihlukanisi somugqa nezinhlamvu ze-wildcard kuvunyelwe sebenzisa kuphela ama-graphem (izinhlamvu ze-Unicode eziyinhlanganisela azivunyelwe).
    • Kunqanyuliwe ukusekelwa kwezinye izinhlobo eziphelelwe isikhathi zokusebenzisa uhlamvu oluthi “{” ezenzweni ezivamile ngaphandle kokulubalekela.
    • Akuvunyelwe usebenzisa imisebenzi ye-sysread(), syswrite(), recv() kanye nesend() enezibambi ze-":utf8".
    • Akuvunyelwe ukusebenzisa izincazelo zelithi “wami” ezitatimendeni ezinemibandela ngokwemvelo ezingamanga (ngokwesibonelo, “my $x if 0”).
    • Ukusekela okuhlukile okukhethekile okuthi “$*” kanye “$#” kususiwe.
      Ukusekela ukubizwa okuyimfihlo komsebenzi wokulahla () kunqanyuliwe (manje kuzomele ucacise ngokucacile i-CORE::lahla()).

    • Umsebenzi wefayela::Glob::glob ususiwe (kufanele usebenzise Ifayela::Glob::bsd_glob).
    • Kungezwe isivikelo ku-pack() ekubuyiseleni ukulandelana okungalungile kwe-Unicode.
    • Ukuphela kokusekelwa kokusetshenziswa kwama-macros enza imisebenzi nge-UTF-8 kukhodi ye-XS (amabhulokhi C) kuhlehlisiwe kuze kube ukukhishwa okulandelayo.
  • Ukuthuthukisa Ukusebenza:
    • Imisebenzi yokuhumusha isuka ku-UTF-8 iye esakhiweni sohlamvu isheshisiwe (ikhodi iphuzu), isibonelo, ukwenza umsebenzi we-ord(“\x7fff”) manje kudinga imiyalelo embalwa ngo-12%. Ukusebenza kwemisebenzi ebheka ukulunga kokulandelana kwezinhlamvu ze-UTF-8 nakho kunyusiwe;
    • Izingcingo eziphindaphindwayo kumsebenzi we-finalize_op() zisusiwe;
    • Wenze ukulungiselelwa okuncane kukhodi yokugoqa izinhlamvu ezifanayo nokuchaza izigaba zezinhlamvu ezenzweni ezivamile;
    • Kulungiselelwe ukuguqula izincazelo zohlobo olusayiniwe zibe ezingabhalisiwe (IV zibe UV);
    • I-algorithm yokuguqula izinombolo zibe iyunithi yezinhlamvu isheshiswe ngokucubungula amadijithi amabili ngesikhathi esisodwa esikhundleni seyodwa;
    • Intuthuko yenziwe ilungisiwe ngokusekelwe ekuhlaziyweni kwe-LGTM;
    • Ikhodi ethuthukisiwe kumafayela regcomp.c, regcomp.h kanye ne-regexec.c;
    • Ngezinkulumo ezivamile, ukucutshungulwa kwamaphethini afana ne-“qr/[^a]/” anezinhlamvu ze-ASCII kusheshiswe kakhulu.
  • Usekelo lwenkundla ye-Minix3 lubuyiselwe. Kungenzeka ukwakha usebenzisa i-Microsoft Visual Studio 2019 compiler (Visual C++ 14.2);
  • Izinguqulo ezibuyekeziwe zamamojula afakwe kuphakheji eyisisekelo. Amamojula akhishiwe ekwakhiweni okuyinhloko B::Susa iphutha и Indawo::Amakhodi.

Source: opennet.ru

Engeza amazwana