Útgáfa forritunarmálsins Perl 5.30.0

Eftir 11 mánaða þróun fór fram útgáfa af nýrri stöðugri grein af Perl forritunarmálinu - 5.30. Við undirbúning nýju útgáfunnar var um 620 þúsund línum af kóða breytt, breytingarnar höfðu áhrif á 1300 skrár og 58 forritarar tóku þátt í þróuninni.

Útibú 5.30 var gefið út í samræmi við fasta þróunaráætlun sem samþykkt var fyrir sex árum, sem felur í sér útgáfu nýrra hesthúsagreina einu sinni á ári og leiðréttingar á þriggja mánaða fresti. Eftir um það bil mánuð er áætlað að gefa út fyrstu leiðréttingarútgáfuna af Perl 5.30.1, sem mun leiðrétta mikilvægustu villurnar sem komu fram við innleiðingu Perl 5.30.0. Samhliða útgáfu Perl 5.30 var stuðningur við 5.26 útibúið hætt, sem uppfærslur kunna að verða gefnar út í framtíðinni aðeins ef mikilvæg öryggisvandamál koma í ljós. Þróunarferli tilraunaútibúsins 5.31 er einnig hafið, á grundvelli þess verður stöðug útgáfa af Perl 2020 mynduð í maí 5.32.

Lykill breytingar:

  • Tilraunastuðningur fyrir "" aðgerðir hefur verið bætt við venjulegar tjáningar.(?‹!mynstur)"Og"(?‹=mynstur)» fyrir takmarkaðan aðgang að áður unnum nafngreindum sniðmátum. Mynsturskilgreiningin verður að vera innan við 255 stafir frá viðmiðunarpunktinum;
  • Hámarksgildi stærðarforskriftarinnar („n“) í „{m,n}“ reglubundnum tjáningarreitum hefur verið hækkað í 65534;
  • Bætt við takmarkað styðja grímur til að auðkenna ákveðna flokka stafa í venjulegum tjáningum, sem ná yfir mismunandi Unicode sett. Til dæmis, orðatiltækið „qr! \p{nv= /(?x) \A [0-5] \z / }!” gerir þér kleift að velja alla Unicode stafi sem skilgreina tölurnar frá 0 til 5, þar með talið taílenska eða bengalska stafsetningu á tölum;
  • Bætti við stuðningi við nafngreinda stafi í venjulegum tjáningum
    inni mynstur afmörkuð með stökum gæsalöppum (qr'\N{name}');

  • Unicode forskriftarstuðningur uppfærður í útgáfu 12.1. Tilraunaþróunarfáninn hefur verið fjarlægður úr útköllum sv_utf8_downgrade og sv_utf8_decode, notað við þróun framlenginga á C tungumálinu;
  • Bætti við hæfileikanum til að byggja upp perl með útfærslu aðgerða með svæði sem styður fjölþráða aðgerð (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Áður fyrr var slík útfærsla aðeins notuð þegar byggð var fjölþráða útgáfa af Perl, en nú er hægt að virkja hana fyrir hvaða smíði sem er;
  • Sameining "-Dv" (auka villuleitarúttak) og "-Dr" (regex villuleit) fánanna veldur því að allar mögulegar villuleitarstillingar fyrir reglulegar tjáningar verða virkar;
  • Eiginleikar sem áður hafa verið úreltir hafa verið fjarlægðir:
    • Nú fáanlegt sem línuskil og jokerstafir leyfilegt nota eingöngu grafemum (samsettir Unicode stafir eru ekki leyfðir).
    • Hætt stuðningur við sumar löngu úreltar tegundir af því að nota „{“ stafinn í reglulegum tjáningum án þess að sleppa því.
    • Það er bannað með því að nota sysread(), syswrite(), recv() og send() aðgerðirnar með ":utf8" meðhöndlum.
    • Það er bannað að nota skilgreiningar á „mín“ í eðli sínu rangar skilyrtar staðhæfingar (til dæmis „my $x ef 0“).
    • Stuðningur við sérstakar breytur „$*“ og „$#“ hefur verið fjarlægður.
      Stuðningur við óbeina köllun á dump() fallinu hefur verið hætt (þú verður nú að tilgreina sérstaklega CORE::dump()).

    • File::Glob::glob aðgerðin hefur verið fjarlægð (þú ættir að nota File::Glob::bsd_glob).
    • Bætti vörn við pack() gegn því að skila röngum Unicode röðum.
    • Lokum stuðnings við notkun fjölva sem framkvæma aðgerðir með UTF-8 í XS kóða (C blokkum) hefur verið frestað þar til næstu útgáfu.
  • Hagræðingar afkasta:
    • Þýðingaraðgerðum frá UTF-8 yfir í stafaútlit hefur verið flýtt (kóða punktur), til dæmis, að framkvæma ord(“\x7fff”) aðgerðina þarf nú 12% færri leiðbeiningar. Frammistaða aðgerða sem athugar réttmæti UTF-8 stafaraðanna hefur einnig verið aukinn;
    • Endurkvæm símtöl í finalize_op() fallinu hafa verið eytt;
    • Gerði minniháttar fínstillingar á kóðanum til að fella saman eins stafi og skilgreina stafaflokka í reglulegum tjáningum;
    • Bjartsýni umbreyta skilgreiningum á merktum gerðum í óundirritaðar (IV í UV);
    • Reikniritinu til að breyta heiltölum í streng hefur verið flýtt með því að vinna tvo tölustafi í einu í stað eins;
    • Úrbætur hafa verið gerðar undirbúinn byggt á greiningu LGTM;
    • Bjartsýni kóða í skrám regcomp.c, regcomp.h og regexec.c;
    • Í reglulegum tjáningum hefur vinnsla mynstur eins og „qr/[^a]/“ með ASCII stöfum verið hraðað verulega.
  • Stuðningur fyrir Minix3 pallinn hefur verið endurheimtur. Það er hægt að byggja með Microsoft Visual Studio 2019 þýðanda (Visual C++ 14.2);
  • Uppfærðar útgáfur af einingum sem fylgja grunnpakkanum. Einingar hafa verið fjarlægðar úr aðalsamsetningunni B::Kemba и Staður::Kóðar.

Heimild: opennet.ru

Bæta við athugasemd