Programmēšanas valodas Perl 5.30.0 izlaišana

Pēc 11 mēnešu attīstības notika jaunas stabilas Perl programmēšanas valodas filiāles izlaišana - 5.30. Gatavojot jauno laidienu, tika nomainīti aptuveni 620 tūkstoši koda rindu, izmaiņas skāra 1300 failus, un izstrādē piedalījās 58 izstrādātāji.

Branch 5.30 tika izlaists saskaņā ar fiksēto izstrādes grafiku, kas apstiprināts pirms sešiem gadiem, kas nozīmē jaunu stabilu filiāļu izlaišanu reizi gadā un korektīvo izlaidumu reizi trīs mēnešos. Apmēram pēc mēneša plānots izlaist pirmo Perl 5.30.1 koriģējošo laidienu, kas izlabos būtiskākās Perl 5.30.0 ieviešanas laikā konstatētās kļūdas. Līdz ar Perl 5.30 izlaišanu tika pārtraukts atbalsts 5.26 atzaram, kuram turpmāk atjauninājumi var tikt izdoti tikai tad, ja tiks konstatētas kritiskas drošības problēmas. Ir sācies arī eksperimentālās nozares 5.31 izstrādes process, uz kura pamata 2020. gada maijā tiks izveidots stabils Perl 5.32 laidiens.

Atslēga izmaiņas:

  • Eksperimentāls atbalsts operācijām "" ir pievienots regulārajām izteiksmēm.(?‹!raksts)"Un"(?‹=raksts)» ierobežotai piekļuvei iepriekš apstrādātām nosauktajām veidnēm. Modeļa definīcijai jābūt 255 rakstzīmēm no atskaites punkta;
  • Lieluma norādītāja (“n”) maksimālā vērtība “{m,n}” regulārās izteiksmes blokos ir palielināta līdz 65534;
  • Pievienots ierobežots atbalstīt maskas, lai izceltu noteiktas rakstzīmju kategorijas regulārajās izteiksmēs, aptverot dažādas unikoda kopas. Piemēram, izteiciens “qr! \p{nv= /(?x) \A [0-5] \z / }!” ļauj atlasīt visas unikoda rakstzīmes, kas definē skaitļus no 0 līdz 5, ieskaitot ciparu rakstību taju vai bengāļu valodā;
  • Pievienots atbalsts nosauktajām rakstzīmēm regulārajās izteiksmēs
    iekšējie modeļi, kas atdalīti ar atsevišķām pēdiņām (qr'\N{name}');

  • Unikoda specifikācijas atbalsts ir atjaunināts uz versiju 12.1. Eksperimentālās izstrādes karodziņš zvaniem ir noņemts sv_utf8_downgrade un sv_utf8_decode, ko izmanto paplašinājumu izstrādē C valodā;
  • Pievienota iespēja izveidot perl, ieviešot operācijas ar lokalizāciju, kas atbalsta vairāku pavedienu darbību (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Iepriekš šāda ieviešana tika izmantota tikai, veidojot Perl daudzpavedienu versiju, bet tagad to var iespējot jebkurai versijai;
  • Apvienojot karogus "-Dv" (uzlabotā atkļūdošanas izvade) un "-Dr" (regulārā atkļūdošana) tagad tiek iespējoti visi iespējamie regulārās izteiksmes atkļūdošanas režīmi;
  • Iepriekš novecojušās funkcijas ir noņemtas:
    • Tagad pieejams kā rindiņu atdalītājs un aizstājējzīmes atļauts izmantot tikai grafēmas (nav atļautas saliktas unikoda rakstzīmes).
    • Pārtraukts atbalsts dažām sen novecojušām rakstzīmes “{” izmantošanas formām regulārajās izteiksmēs, neizbēgot no tās.
    • Aizliegts izmantojot funkcijas sysread(), syswrite(), recv() un send() ar apdarinātājiem ":utf8".
    • Ir aizliegts izmantot “mans” definīcijas būtībā nepatiesos nosacījumu paziņojumos (piemēram, “mans $x, ja 0”).
    • Īpašo mainīgo “$*” un “$#” atbalsts ir noņemts.
      Funkcijas dump() netiešās izsaukšanas atbalsts ir pārtraukts (tagad jums ir skaidri jānorāda CORE::dump()).

    • Funkcija File::Glob::glob ir noņemta (jums jāizmanto File::Glob::bsd_glob).
    • Pack() pievienota aizsardzība pret nepareizu unikoda secību atgriešanu.
    • Atbalsta beigas makro izmantošanai, kas veic operācijas ar UTF-8 XS kodā (C bloki) ir atliktas līdz nākamajai laidienai.
  • Veiktspējas optimizācija:
    • Tulkošanas darbības no UTF-8 uz rakstzīmju izkārtojumu ir paātrinātas (koda punkts), piemēram, lai veiktu operāciju ord(“\x7fff”), tagad ir nepieciešams par 12% mazāk norādījumu. Palielināta arī UTF-8 rakstzīmju secību pareizības pārbaudes darbību veiktspēja;
    • Rekursīvie izsaukumi funkcijā finalize_op() ir izslēgti;
    • Veiktas nelielas koda optimizācijas, lai sakļautu identiskas rakstzīmes un definētu rakstzīmju klases regulārajās izteiksmēs;
    • Optimizēts parakstīto tipu definīciju pārvēršana par neparakstītām (IV uz UV);
    • Algoritms veselu skaitļu pārvēršanai virknē ir paātrināts, apstrādājot divus ciparus, nevis vienu;
    • Ir veikti uzlabojumi sagatavots pamatojoties uz LGTM analīzi;
    • Optimizēts kods failos regcomp.c, regcomp.h un regexec.c;
    • Regulārajās izteiksmēs ir ievērojami paātrināta tādu modeļu kā “qr/[^a]/” apstrāde ar ASCII rakstzīmēm.
  • Minix3 platformas atbalsts ir atjaunots. Ir iespējams veidot, izmantojot Microsoft Visual Studio 2019 kompilatoru (Visual C++ 14.2);
  • Pamata pakotnē iekļauto moduļu atjauninātās versijas. Moduļi ir izņemti no galvenā sastāva B::Atkļūdošana и Lokalizācija::Kodi.

Avots: opennet.ru

Pievieno komentāru