Nakon 11 mjeseci razvoja odvijao izdanje nove stabilne grane programskog jezika Perl - 5.30. U pripremi novog izdanja promijenjeno je oko 620 tisuća linija koda, promjene su zahvatile 1300 datoteka, au razvoju je sudjelovalo 58 programera.
Grana 5.30 objavljena je u skladu s fiksnim planom razvoja odobrenim prije šest godina, koji podrazumijeva izdavanje novih stabilnih grana jednom godišnje i korektivna izdanja svaka tri mjeseca. Za otprilike mjesec dana planira se izdati prvo korektivno izdanje Perla 5.30.1, koje će ispraviti najznačajnije greške uočene tijekom implementacije Perla 5.30.0. Zajedno s izdanjem Perla 5.30, obustavljena je podrška za ogranak 5.26, za koji se ažuriranja mogu objaviti u budućnosti samo ako se identificiraju kritični sigurnosni problemi. Započeo je i razvojni proces eksperimentalne grane 5.31, na temelju koje će u svibnju 2020. biti formirano stabilno izdanje Perla 5.32.
Eksperimentalna podrška za operacije "" dodana je regularnim izrazima.(?<!uzorak)"A"(?‹=uzorak)» za ograničeni pristup prethodno obrađenim imenovanim predlošcima. Definicija uzorka mora biti unutar 255 znakova od referentne točke;
Maksimalna vrijednost specifikatora veličine (“n”) u “{m,n}” blokovima regularnih izraza povećana je na 65534;
Dodano ograničeno podržati maske za isticanje određenih kategorija znakova u regularnim izrazima, pokrivajući različite Unicode skupove. Na primjer, izraz “qr! \p{nv= /(?x) \A [0-5] \z / }!" omogućuje odabir svih Unicode znakova koji definiraju brojeve od 0 do 5, uključujući tajlandski ili bengalski način pisanja brojeva;
Dodana podrška za imenovane znakove u regularnim izrazima
unutar uzoraka razgraničenih jednostrukim navodnicima (qr'\N{name}');
Podrška za specifikaciju Unicode ažurirana na verziju 12.1. Oznaka eksperimentalnog razvoja uklonjena je iz poziva sv_utf8_downgrade i sv_utf8_decode, koji se koristi u razvoju ekstenzija u jeziku C;
Dodana je mogućnost izrade perla s implementacijom operacija s lokalizacijom koja podržava rad s više niti (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Prethodno se takva implementacija koristila samo pri izradi višenitne verzije Perla, ali sada se može omogućiti za bilo koju izgradnju;
Kombinacija zastavica "-Dv" (poboljšani izlaz za otklanjanje pogrešaka) i "-Dr" (otklanjanje pogrešaka regularnog izraza) sada uzrokuje da svi mogući načini otklanjanja pogrešaka regularnih izraza budu omogućeni;
Značajke koje su prethodno zastarjele su uklonjene:
Sada dostupan kao razdjelnik retka i zamjenski znakovi dopušteno koristiti samo grafemi (složeni Unicode znakovi nisu dopušteni).
Ukinuto podrška za neke davno zastarjele oblike korištenja znaka “{” u regularnim izrazima bez njegovog izbjegavanja.
To je zabranjeno pomoću funkcija sysread(), syswrite(), recv() i send() s rukovateljima ":utf8".
Zabranjeno je koristiti definicije "my" u inherentno lažnim uvjetnim izjavama (na primjer, "my $x if 0").
Podrška za posebne varijable “$*” i “$#” je uklonjena.
Podrška za implicitno pozivanje funkcije dump() je ukinuta (sada morate eksplicitno navesti CORE::dump()).
Funkcija File::Glob::glob je uklonjena (trebali biste koristiti File::Glob::bsd_glob).
Dodana zaštita za pack() protiv vraćanja netočnih Unicode nizova.
Prestanak podrške za korištenje makronaredbi koje izvode operacije s UTF-8 u XS kodu (C blokovi) odgođen je do sljedećeg izdanja.
Optimizacija izvedbe:
Operacije prevođenja s UTF-8 na raspored znakova su ubrzane (kodna točka), na primjer, izvođenje operacije ord(“\x7fff”) sada zahtijeva 12% manje instrukcija. Također je povećana izvedba operacija provjere ispravnosti nizova znakova UTF-8;
Rekurzivni pozivi u funkciji finalize_op() su eliminirani;
Napravljene manje optimizacije koda za sažimanje identičnih znakova i definiranje klasa znakova u regularnim izrazima;
Optimizirano pretvaranje definicija tipa s predznakom u one bez predznaka (IV u UV);
Algoritam za pretvaranje cijelih brojeva u niz je ubrzan obradom dvije znamenke odjednom umjesto jedne;
Napravljena su poboljšanja pripremljeni na temelju analize LGTM;
Optimiziran kod u datotekama regcomp.c, regcomp.h i regexec.c;
U regularnim izrazima, obrada uzoraka poput "qr/[^a]/" s ASCII znakovima znatno je ubrzana.
Podrška za Minix3 platformu je vraćena. Moguće je graditi pomoću kompilatora Microsoft Visual Studio 2019 (Visual C++ 14.2);
Ažurirane verzije modula uključenih u osnovni paket. Moduli su uklonjeni iz glavnog sastava B::Debug и Lokalizacija::Kodovi.