11 hónapos fejlesztés után került sor a Perl programozási nyelv új stabil ágának kiadása - 5.30. Az új kiadás előkészítése során mintegy 620 ezer kódsort változtattak meg, a változtatások 1300 fájlt érintettek, a fejlesztésben 58 fejlesztő vett részt.
A Branch 5.30 a hat éve jóváhagyott fix fejlesztési ütemtervnek megfelelően jelent meg, ami magában foglalja az új stabil ágak kiadását évente egyszer, illetve a korrekciós kiadásokat háromhavonta. Körülbelül egy hónap múlva a tervek szerint kiadják a Perl 5.30.1 első javító kiadását, amely kijavítja a Perl 5.30.0 implementációja során feltárt legjelentősebb hibákat. A Perl 5.30 kiadásával együtt megszűnt az 5.26-os ág támogatása, amelyhez a jövőben csak kritikus biztonsági problémák észlelése esetén kerülhet sor frissítés. Megkezdődött a kísérleti ág 5.31 fejlesztési folyamata is, amely alapján 2020 májusában kialakul a Perl 5.32 stabil kiadása.
A "" műveletek kísérleti támogatása hozzáadásra került a reguláris kifejezésekhez.(?<!minta)"És"(?‹=minta)» korlátozott hozzáférést biztosít a korábban feldolgozott elnevezett sablonokhoz. A mintadefiníciónak 255 karakteren belül kell lennie a referenciaponttól;
A méretmeghatározó ("n") maximális értéke az "{m,n}" reguláris kifejezés blokkokban 65534-re nőtt;
Korlátozottan hozzáadva támogatás maszkok a karakterek bizonyos kategóriáinak kiemelésére a reguláris kifejezésekben, lefedve a különböző Unicode-készleteket. Például a „qr! \p{nv= /(?x) \A [0-5] \z / }!” lehetővé teszi az összes Unicode karakter kiválasztását, amely 0 és 5 között határozza meg a számokat, beleértve a thai vagy bengáli számok írásmódját is;
Támogatás hozzáadva a reguláris kifejezésekben elnevezett karakterekhez
idézőjelekkel határolt belső minták (qr’\N{név}’);
A Unicode specifikáció támogatása frissítve a verzióra 12.1. A kísérleti fejlesztési jelző eltávolítva a hívásokból sv_utf8_downgrade és sv_utf8_decode, a C nyelv kiterjesztéseinek fejlesztésében használatos;
Hozzáadtuk a perl felépítésének lehetőségét olyan műveletek végrehajtásával, amelyek támogatják a többszálú műveletet (-Accflags=’-DUSE_THREAD_SAFE_LOCALE’). Korábban ezt a megvalósítást csak a Perl többszálas verziójának elkészítésekor használták, de mostanra minden összeállításhoz engedélyezhető;
A "-Dv" (bővített hibakereső kimenet) és a "-Dr" (regex hibakeresés) jelzők kombinálásával az összes lehetséges reguláris kifejezés hibakeresési mód engedélyezve lesz;
A korábban elavult funkciókat eltávolítottuk:
Mostantól sorelválasztóként és helyettesítő karakterként is elérhető megengedett Csak használatra grafémák (Az összetett Unicode karakterek nem megengedettek).
Megszakított a „{” karakter reguláris kifejezésekben való használatának néhány régen elavult formájának támogatása anélkül, hogy elkerülné azt.
Tilos a sysread(), syswrite(), recv() és send() függvények használatával ":utf8" kezelőkkel.
Tilos az „én” definícióinak használata eredendően hamis feltételes állításokban (például „az én $x, ha 0”).
A „$*” és „$#” speciális változók támogatása megszűnt.
A dump() függvény implicit meghívásának támogatása megszűnt (most már kifejezetten meg kell adni a CORE::dump()-t).
A File::Glob::glob függvényt eltávolítottuk (használja a File::Glob::bsd_glob-ot).
Védelem a pack() számára a helytelen Unicode-szekvenciák visszaküldésével szemben.
Az UTF-8-cal műveleteket XS-kódban (C blokkok) végrehajtó makrók használatának támogatásának megszűnését a következő kiadásra halasztották.
Teljesítményoptimalizálás:
A fordítási műveletek UTF-8-ról karakterelrendezésre felgyorsultak (kódpont), például az ord(“\x7fff”) művelet végrehajtásához most 12%-kal kevesebb utasításra van szükség. Növelték az UTF-8 karaktersorozatok helyességét ellenőrző műveletek teljesítményét is;
A finalize_op() függvény rekurzív hívásait megszüntettük;
Kisebb optimalizálásokat hajtott végre a kódon az azonos karakterek összecsukására és a reguláris kifejezésekben szereplő karakterosztályok meghatározására;