Pagpagawas sa programming language Perl 5.30.0

Pagkahuman sa 11 ka bulan nga pag-uswag nahitabo pagpagawas sa usa ka bag-ong stable nga sanga sa Perl programming language - 5.30. Sa pag-andam sa bag-ong pagpagawas, mga 620 ka libo nga linya sa code ang nabag-o, ang mga pagbag-o nakaapekto sa 1300 nga mga file, ug 58 nga mga developer ang miapil sa pag-uswag.

Ang Branch 5.30 gi-release subay sa fixed development schedule nga gi-aprobahan unom ka tuig na ang milabay, nga nagpasabot sa pagpagawas sa bag-ong stable nga mga branch kausa sa usa ka tuig ug corrective releases matag tulo ka bulan. Sa mga usa ka bulan, giplano nga ipagawas ang unang corrective release sa Perl 5.30.1, nga magtul-id sa labing mahinungdanon nga mga sayop nga giila sa panahon sa pagpatuman sa Perl 5.30.0. Kauban sa pagpagawas sa Perl 5.30, ang suporta alang sa 5.26 nga sanga gihunong, diin ang mga pag-update mahimong ipagawas sa umaabot kung nahibal-an ang mga kritikal nga problema sa seguridad. Nagsugod usab ang proseso sa pag-uswag sa eksperimento nga sanga 5.31, nga gibase sa usa ka lig-on nga pagpagawas sa Perl 2020 nga maporma sa Mayo 5.32.

yawe mga pagbag-o:

  • Ang eksperimento nga suporta alang sa "" nga mga operasyon gidugang sa regular nga mga ekspresyon.(?β€Ή!pattern)"Ug"(?β€Ή=pattern)Β» alang sa limitado nga pag-access sa kaniadto giproseso nga mga templates. Ang depinisyon sa pattern kinahanglang sulod sa 255 ka karakter sa reference point;
  • Ang kinatas-ang bili sa gidak-on nga espesipika (β€œn”) sa β€œ{m,n}” nga regular nga mga bloke sa ekspresyon gipataas ngadto sa 65534;
  • Gidugang limitado pagsuporta mga maskara aron ipasiugda ang pipila ka mga kategorya sa mga karakter sa mga regular nga ekspresyon, nga naglangkob sa lainlaing mga set sa Unicode. Pananglitan, ang ekspresyong β€œqr! \p{nv= /(?x) \A [0-5] \z / }!” nagtugot kanimo sa pagpili sa tanang Unicode nga mga karakter nga naghubit sa mga numero gikan sa 0 ngadto sa 5, lakip ang Thai o Bengali nga mga spelling sa mga numero;
  • Gidugang nga suporta alang sa ginganlan nga mga karakter sa regular nga mga ekspresyon
    sulod nga mga pattern nga gilimitahan sa usa ka kinutlo (qr'\N{name}');

  • Ang suporta sa espesipikasyon sa Unicode gi-update sa bersyon 12.1. Ang bandila sa pag-uswag sa eksperimento gikuha gikan sa mga tawag sv_utf8_downgrade ug sv_utf8_decode, gigamit sa pagpalambo sa mga extension sa C nga pinulongan;
  • Gidugang ang abilidad sa paghimo og perl nga adunay pagpatuman sa mga operasyon nga adunay usa ka lokal nga nagsuporta sa multi-threaded nga operasyon (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Kaniadto, ang ingon nga pagpatuman gigamit lamang sa pagtukod sa usa ka multi-threaded nga bersyon sa Perl, apan karon mahimo na alang sa bisan unsang mga pagtukod;
  • Ang paghiusa sa "-Dv" (gipalambo nga debugging output) ug "-Dr" (regex debugging) nga mga bandila karon maoy hinungdan sa tanang posible nga regular nga ekspresyon nga debugging mode nga ma-enable;
  • Ang mga feature nga wala na gigamit kaniadto gitangtang:
    • Anaa na karon isip line separator ug wildcard nga mga karakter gitugotan gamita lang mga grapheme (dili gitugutan ang mga komposit nga Unicode nga mga karakter).
    • Gihunong suporta alang sa pipila ka dugay na nga mga porma sa paggamit sa "{" nga karakter sa regular nga mga ekspresyon nga dili makalikay niini.
    • Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ gamit ang sysread(), syswrite(), recv() ug send() functions uban sa ":utf8" handlers.
    • Gidili ang paggamit sa mga depinisyon sa "akong" sa kinaiyanhong bakak nga kondisyon nga mga pahayag (pananglitan, "akong $x kung 0").
    • Ang suporta alang sa mga espesyal nga variable nga "$*" ug "$#" gitangtang.
      Ang suporta alang sa implicit nga pagtawag sa dump() function gihunong na (kinahanglan nimo karon nga tin-aw nga ipiho ang CORE::dump()).

    • Ang File::Glob::glob function gitangtang na (kinahanglan nimong gamiton ang File::Glob::bsd_glob).
    • Gidugang nga proteksyon sa pack() batok sa pagbalik sa dili husto nga Unicode sequence.
    • Ang pagtapos sa suporta alang sa paggamit sa mga macros nga naghimo sa mga operasyon sa UTF-8 sa XS code (C blocks) gi-postpone hangtod sa sunod nga pagpagawas.
  • Mga Pag-optimize sa Pagganap:
    • Ang mga operasyon sa paghubad gikan sa UTF-8 ngadto sa layout sa karakter gipaspasan (code nga punto), pananglitan, ang paghimo sa ord("\x7fff") nga operasyon nanginahanglan na karon og 12% nga mas gamay nga mga instruksyon. Ang paghimo sa mga operasyon nga nagsusi sa pagkahusto sa UTF-8 nga mga han-ay sa karakter gidugangan usab;
    • Ang mga recursive nga tawag sa finalize_op() function giwagtang;
    • Naghimo ug ginagmay nga mga pag-optimize sa code alang sa paghugno sa parehas nga mga karakter ug pagtino sa mga klase sa karakter sa mga regular nga ekspresyon;
    • Gi-optimize pag-convert sa gipirmahan nga tipo sa mga kahulugan ngadto sa wala pirmahi (IV ngadto sa UV);
    • Ang algorithm sa pag-convert sa mga integer ngadto sa usa ka hilo gipaspasan pinaagi sa pagproseso sa duha ka digit sa usa ka higayon imbes sa usa;
    • Nahimo ang mga pag-ayo giandam base sa pagtuki sa LGTM;
    • Na-optimize nga code sa mga file regcomp.c, regcomp.h ug regexec.c;
    • Sa regular nga mga ekspresyon, ang pagproseso sa mga pattern sama sa "qr/[^a]/" nga adunay ASCII nga mga karakter gipaspasan pag-ayo.
  • Ang suporta alang sa plataporma sa Minix3 gipahiuli. Posible nga magtukod gamit ang Microsoft Visual Studio 2019 compiler (Visual C++ 14.2);
  • Gi-update nga mga bersyon sa mga module nga gilakip sa sukaranan nga pakete. Ang mga module gikuha gikan sa panguna nga komposisyon B:: Pag-debug ΠΈ Lokal:: Mga Kodigo.

Source: opennet.ru

Idugang sa usa ka comment