Kutolewa kwa lugha ya programu Perl 5.30.0

Baada ya miezi 11 ya maendeleo ilifanyika kutolewa kwa tawi jipya la lugha ya programu ya Perl - 5.30. Katika kuandaa toleo jipya, takriban mistari elfu 620 ya nambari ilibadilishwa, mabadiliko yaliathiri faili 1300, na watengenezaji 58 walishiriki katika ukuzaji.

Tawi la 5.30 lilitolewa kwa mujibu wa ratiba ya maendeleo iliyoidhinishwa miaka sita iliyopita, ambayo ina maana ya kutolewa kwa matawi mapya imara mara moja kwa mwaka na matoleo ya kurekebisha kila baada ya miezi mitatu. Katika muda wa mwezi mmoja, imepangwa kutoa toleo la kwanza la marekebisho ya Perl 5.30.1, ambayo itasahihisha makosa muhimu zaidi yaliyotambuliwa wakati wa utekelezaji wa Perl 5.30.0. Pamoja na kutolewa kwa Perl 5.30, usaidizi kwa tawi la 5.26 ulikomeshwa, ambayo sasisho zinaweza kutolewa katika siku zijazo ikiwa tu matatizo muhimu ya usalama yatatambuliwa. Mchakato wa ukuzaji wa tawi la majaribio 5.31 pia umeanza, kwa msingi ambao toleo thabiti la Perl 2020 litaundwa mnamo Mei 5.32.

Ufunguo mabadiliko:

  • Usaidizi wa majaribio wa utendakazi "" umeongezwa kwa misemo ya kawaida.(?β€Ή!muundo)"Na"(?β€Ή=muundo)Β»kwa ufikiaji mdogo kwa violezo vilivyochakatwa hapo awali. Ufafanuzi wa muundo lazima uwe ndani ya herufi 255 za sehemu ya marejeleo;
  • Thamani ya juu ya kibainishi cha ukubwa (β€œn”) katika vizuizi vya kawaida vya kujieleza vya β€œ{m,n}” imeongezwa hadi 65534;
  • Imeongezwa kwa ukomo kusaidia vinyago ili kuangazia aina fulani za herufi katika misemo ya kawaida, inayofunika seti tofauti za Unicode. Kwa mfano, usemi β€œqr! \p{nv= /(?x) \A [0-5] \z / }!" hukuruhusu kuchagua herufi zote za Unicode zinazofafanua nambari kutoka 0 hadi 5, pamoja na tahajia za nambari za Thai au Kibangali;
  • Imeongeza usaidizi kwa herufi zilizotajwa katika misemo ya kawaida
    miundo ya ndani iliyotenganishwa na nukuu moja (qr’\N{name}’);

  • Usaidizi wa vipimo vya Unicode umesasishwa hadi toleo 12.1. Alama ya ukuzaji wa majaribio imeondolewa kwenye simu sv_utf8_downgrade na sv_utf8_decode, kutumika katika ukuzaji wa viendelezi katika lugha C;
  • Imeongeza uwezo wa kujenga perl kwa utekelezaji wa utendakazi na lugha inayotumia utendakazi wa nyuzi nyingi (-Accflags=’-DUSE_THREAD_SAFE_LOCALE’). Hapo awali, utekelezaji huo ulitumiwa tu wakati wa kujenga toleo la aina nyingi la Perl, lakini sasa linaweza kuwezeshwa kwa ujenzi wowote;
  • Kuchanganya bendera za "-Dv" (matokeo ya utatuzi yaliyoimarishwa) na "-Dr" (regex debugging) sasa husababisha hali zote za utatuzi wa usemi wa kawaida kuwashwa;
  • Vipengele vilivyoacha kutumika hapo awali vimeondolewa:
    • Sasa inapatikana kama kitenganishi cha laini na herufi za kadi-mwitu ruhusiwa tumia tu michoro (herufi za Unicode za mchanganyiko haziruhusiwi).
    • Imekomeshwa msaada kwa baadhi ya aina za muda mrefu za kutumia herufi ya "{" katika misemo ya kawaida bila kuikwepa.
    • Ni haramu kutumia sysread(), syswrite(), recv() na send() vitendaji vilivyo na vidhibiti ":utf8".
    • Hairuhusiwi kutumia ufafanuzi wa "yangu" katika taarifa za masharti za uwongo za asili (kwa mfano, "$x yangu ikiwa 0").
    • Usaidizi wa vigeu maalum "$*" na "$#" umeondolewa.
      Usaidizi wa upigaji simu kamili wa kitendakazi cha dump() umekatishwa (lazima sasa ubainishe kwa uwazi CORE::dump()).

    • Faili::Glob::kitendakazi cha glob kimeondolewa (unapaswa kutumia Faili::Glob::bsd_glob).
    • Ulinzi ulioongezwa kwa pack() dhidi ya kurudisha mfuatano usio sahihi wa Unicode.
    • Mwisho wa usaidizi wa matumizi ya macros ambayo hufanya shughuli na UTF-8 katika msimbo wa XS (vizuizi vya C) umeahirishwa hadi toleo linalofuata.
  • Uboreshaji wa Utendaji:
    • Shughuli za kutafsiri kutoka UTF-8 hadi mpangilio wa herufi zimeharakishwa (hatua ya kanuni), kwa mfano, kutekeleza ord(β€œ\x7fff”) oparesheni sasa inahitaji 12% maelekezo machache. Utendaji wa shughuli za kuangalia usahihi wa mfuatano wa herufi za UTF-8 pia umeongezwa;
    • Simu za kujirudia katika kipengele cha finalize_op() zimeondolewa;
    • Ilifanya uboreshaji mdogo kwa msimbo wa kukunja herufi zinazofanana na kufafanua aina za wahusika katika misemo ya kawaida;
    • Imeboreshwa kubadilisha ufafanuzi wa aina zilizotiwa saini kuwa zisizo sainiwa (IV hadi UV);
    • Algorithm ya kubadilisha nambari kamili kuwa mfuatano imeharakishwa kwa kuchakata tarakimu mbili mara moja badala ya moja;
    • Maboresho yamefanywa tayari kulingana na uchambuzi wa LGTM;
    • Msimbo ulioboreshwa katika faili regcomp.c, regcomp.h na regexec.c;
    • Katika misemo ya kawaida, uchakataji wa ruwaza kama vile β€œqr/[^a]/” yenye vibambo vya ASCII umeharakishwa kwa kiasi kikubwa.
  • Usaidizi wa jukwaa la Minix3 umerejeshwa. Inawezekana kujenga kwa kutumia mkusanyaji wa Microsoft Visual Studio 2019 (Visual C++ 14.2);
  • Matoleo yaliyosasishwa ya moduli zilizojumuishwa kwenye kifurushi cha msingi. Moduli zimeondolewa kwenye muundo mkuu B::Tatua ΠΈ Eneo::Misimbo.

Chanzo: opennet.ru

Kuongeza maoni