Ukukhutshwa kolwimi lwenkqubo Perl 5.30.0

Emva kweenyanga ezi-11 zophuhliso yathatha indawo ukukhululwa kwesebe elitsha elizinzileyo lolwimi lwenkqubo yePerl - 5.30. Ekulungiseleleni ukukhutshwa okutsha, malunga ne-620 amawaka emigca yekhowudi yatshintshwa, utshintsho luchaphazela iifayile ze-1300, kunye nabaphuhlisi be-58 bathathe inxaxheba ekuphuhlisweni.

Isebe 5.30 lakhutshwa ngokuhambelana neshedyuli yophuhliso esisigxina eyamkelweyo kwiminyaka emithandathu eyadlulayo, nto leyo ethetha ukukhutshwa kwamasebe amatsha azinzileyo kanye ngonyaka kunye nokukhutshwa kwezilungiso rhoqo emva kweenyanga ezintathu. Kwisithuba esingangenyanga, kucetywa ukukhulula ukukhutshwa kokuqala kokulungiswa kwePerl 5.30.1, okuya kulungisa ezona mpazamo zibalulekileyo ezichongiweyo ngexesha lokuphunyezwa kwePerl 5.30.0. Kanye kunye nokukhululwa kwePerl 5.30, ukuxhaswa kwesebe le-5.26 kuyekwa, apho uhlaziyo lunokukhutshwa kwixesha elizayo kuphela xa kuchongwa iingxaki ezibalulekileyo zokhuseleko. Inkqubo yophuhliso yesebe lovavanyo lwe-5.31 sele iqalile, ngesiseko apho ukukhululwa okuzinzile kwePerl 2020 kuya kwenziwa ngoMeyi 5.32.

Isitshixo utshintsho:

  • Inkxaso yovavanyo lwemisebenzi "" yongezwe kwiintetho eziqhelekileyo.(?‹!ipatheni)"Kwaye"(?‹=ipateni)»unikezelo olulinganiselweyo kwiitemplate ezisetyenzisiweyo ngaphambili. Inkcazo yepateni kufuneka ibe phakathi kweempawu ze-255 zendawo yereferensi;
  • Ixabiso eliphezulu lenkcazo yobungakanani ("n") kwi "{m,n}" iibhloko zokubonisa eziqhelekileyo zonyuswe kwi-65534;
  • Kongezwe umda inkxaso iimaski zokuqaqambisa iindidi ezithile zabalinganiswa kwiintetho eziqhelekileyo, ezigquma iiseti ze Unicode. Umzekelo, ibinzana elithi “qr! \p{nv= /(?x) \A [0-5] \z / }!" ikuvumela ukuba ukhethe bonke abasebenzi be-Unicode abachaza amanani ukusuka ku-0 ukuya ku-5, ukuquka upelo lwesiThai okanye lwesiBengali lwamanani;
  • Inkxaso eyongeziweyo yabalinganiswa ababiziweyo kwintetho eqhelekileyo
    iipateni zangaphakathi zohlulwe ngokucaphula okukodwa (qr'\N{igama}');

  • Inkxaso yenkcazo ye-Unicode ihlaziywe kuguqulelo 12.1. Iflegi yophuhliso lovavanyo isusiwe kwiifowuni sv_utf8_downgrade kunye sv_utf8_decode, isetyenziswe kuphuhliso lwezandiso kulwimi C;
  • Kongezwe isakhono sokwakha iperl ngokuphunyezwa kwemisebenzi yendawo exhasa ukusebenza kwemisonto emininzi (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Ngaphambili, ukuphunyezwa okunjalo kwakusetyenziselwa kuphela xa kwakhiwa inguqulo ye-multi-threaded ye-Perl, kodwa ngoku inokuthi inikwe amandla kuyo nayiphi na into yokwakha;
  • Ukudibanisa "-Dv" (imveliso yolungiso lweempazamo ephuculweyo) kunye no "-Dr" (regex debugging) iiflegi ngoku zibangela ukuba zonke iindlela ezinokuthi zenzeke rhoqo zolungiso lweempazamo zenziwe;
  • Iimpawu ebeziyekiwe ngaphambili zisusiwe:
    • Ngoku iyafumaneka njengesahluli somgca kunye nabalinganiswa bekhadi lasendle kuvunyelwe sebenzisa kuphela iigraphem (ababumba be-Unicode abavumelekanga).
    • Iyekisiwe inkxaso kwezinye iindlela eziphelelwe lixesha lokusebenzisa igama elithi "{" kwintetho eqhelekileyo ngaphandle kokubaleka.
    • Singavunyelwa usebenzisa i-sysread(), syswrite(), recv() kunye nokuthumela() imisebenzi ene ":utf8" iziphatho.
    • Akuvumelekanga ukusebenzisa iinkcazelo zika-“yam” kwiingxelo zemeko ezibubuxoki ngokwendalo (umzekelo, “yam i$x ukuba 0”).
    • Inkxaso yeenguqu ezikhethekileyo "$*" kunye ne "$#" isusiwe.
      Inkxaso yobizo olufihlakeleyo lokulahla () umsebenzi uyekiwe (ngoku kufuneka ucacise ngokucacileyo CORE ::lahla ()).

    • IFayile::Glob::glob function isusiwe (kufuneka usebenzise iFayile::Glob::bsd_glob).
    • Ukhuseleko olongeziweyo kwipakethi () ekubuyiseni ulandelelwano olungachanekanga lwe-Unicode.
    • Ukuphela kwenkxaso yokusetyenziswa kwe-macros eyenza imisebenzi kunye ne-UTF-8 kwikhowudi ye-XS (iibhloko ze-C) ihlehlisiwe kude kube ngukukhululwa okulandelayo.
  • ULungiselelo lokuSebenza:
    • Imisebenzi yoguqulelo ukusuka kwi-UTF-8 ukuya kuyilo loonobumba iye yakhawuleziswa (indawo yekhowudi), umzekelo, ukwenza umsebenzi we-ord(“\x7fff”) ngoku kufuna i-12% imiyalelo embalwa. Ukusebenza kwemisebenzi ejonga ukuchaneka kolandelelwano lweempawu ze-UTF-8 kuye kwandiswa;
    • Iifowuni eziphinda-phindayo kwi finalize_op () umsebenzi ziye zacinywa;
    • Kwenziwe ulungiselelo oluncinci kwikhowudi yokudilika koonobumba abafanayo kunye nokuchaza iiklasi zabalinganiswa kwiintetha eziqhelekileyo;
    • Ilungiselelwe ukuguqula iinkcazelo zohlobo olusayiniweyo zibe kwezo zingasayinanga (IV ukuya kwi-UV);
    • I-algorithm yokuguqula ii-integers kumtya iye yakhawuleziswa ngokusetyenzwa kwamanani amabini ngexesha elinye endaweni yesinye;
    • Uphuculo lwenziwe ilungisiwe ngokusekelwe kuhlalutyo lwe-LGTM;
    • Ikhowudi elungiselelwe kwiifayile regcomp.c, regcomp.h kunye neregexec.c;
    • Kwintetho eqhelekileyo, ukusetyenzwa kweepateni ezifana ne "qr/[^a]/" eneempawu ze-ASCII kukhawuleziswe kakhulu.
  • Inkxaso ye-Minix3 yeqonga ibuyiselwe. Kunokwenzeka ukwakha usebenzisa iMicrosoft Visual Studio 2019 compiler (Visual C ++ 14.2);
  • Iinguqulelo ezihlaziyiweyo zeemodyuli ezibandakanyiweyo kwiphakheji esisiseko. Iimodyuli zisusiwe kuyilo oluphambili B::Debug и Indawo::Iikhowudi.

umthombo: opennet.ru

Yongeza izimvo