Verëffentlechung vun der Programméiersprooch Perl 5.30.0

No 11 Méint Entwécklung stattfonnt huet Verëffentlechung vun enger neier stabiler Branche vun der Perl Programmiersprache - 5.30. Bei der Virbereedung vun der neier Verëffentlechung goufen ongeféier 620 Tausend Zeilen vum Code geännert, d'Ännerunge betraff 1300 Dateien, an 58 Entwéckler hunn un der Entwécklung deelgeholl.

Branch 5.30 gouf verëffentlecht am Aklang mat dem fixen Entwécklungsplang viru sechs Joer guttgeheescht, wat d'Verëffentlechung vun neie stabile Filialen eemol d'Joer implizéiert a Korrekturverëffentlechungen all dräi Méint. An ongeféier engem Mount ass et geplangt fir déi éischt Korrekturverëffentlechung vu Perl 5.30.1 ze verëffentlechen, wat déi bedeitendst Feeler korrigéiert, déi während der Ëmsetzung vu Perl 5.30.0 identifizéiert goufen. Zesumme mat der Verëffentlechung vu Perl 5.30 gouf d'Ënnerstëtzung fir d'5.26 Branche gestoppt, fir déi Aktualiséierunge kënnen an Zukunft nëmme verëffentlecht ginn wann kritesch Sécherheetsproblemer identifizéiert ginn. Den Entwécklungsprozess vun der experimenteller Branche 5.31 huet och ugefaang, op Basis vun deem eng stabil Verëffentlechung vu Perl 2020 am Mee 5.32 geformt gëtt.

Schlëssel änneren:

  • Experimentell Ënnerstëtzung fir "" Operatiounen gouf zu reguläre Ausdréck bäigefüügt.(?‹!muster)"An"(?‹=Muster)»fir limitéiert Zougang zu virdru veraarbechte genannte Templates. D'Musterdefinitioun muss bannent 255 Zeeche vum Referenzpunkt sinn;
  • De maximale Wäert vum Gréisstspezifizéierer ("n") an "{m,n}" reguläre Ausdrockblocken ass op 65534 erhéicht ginn;
  • Limitéiert dobäigesat ënnerstëtzen Masken fir bestëmmte Kategorien vu Charaktere a reguläre Ausdréck ze markéieren, déi verschidde Unicode-Sets ofdecken. Zum Beispill, den Ausdrock "qr! \p{nv= /(?x) \A [0-5] \z / }!" erlaabt Iech all Unicode Zeechen ze wielen déi d'Zuelen vun 0 bis 5 definéieren, dorënner Thai oder Bengalesch Schreifweis vun Zuelen;
  • Zousätzlech Ënnerstëtzung fir benannt Zeechen a reguläre Ausdréck
    bannenzeg Mustere begrenzt duerch eenzel Zitater (qr'\N{Numm}');

  • Unicode Spezifizéierung Ënnerstëtzung op Versioun aktualiséiert 12.1. Den experimentellen Entwécklungsfändel gouf vun den Uruff geläscht sv_utf8_downgrade an sv_utf8_decode, benotzt an der Entwécklung vun Extensiounen an der C Sprooch;
  • D'Fäegkeet bäigefüügt fir Perl mat Ëmsetzung vun Operatiounen mat enger Lokalitéit ze bauen déi Multi-threaded Operatioun ënnerstëtzt (-Accflags = '-DUSE_THREAD_SAFE_LOCALE'). Virdrun gouf sou eng Ëmsetzung nëmme benotzt wann Dir eng Multi-threaded Versioun vu Perl baut, awer kann elo fir all Build aktivéiert ginn;
  • D'Kombinatioun vun den "-Dv" (verstäerkte Debugging Output) an "-Dr" (Regex Debugging) Fändelen bewierkt elo datt all méiglech regulär Ausdrock Debugging Modi aktivéiert ginn;
  • Features, déi virdru ofgeschaaft goufen, goufen ewechgeholl:
    • Elo verfügbar als Zeilseparator a Wildcard Charaktere erlaabt benotzen nëmmen graphemes (Komposit Unicode Zeeche sinn net erlaabt).
    • Opgehalen Ënnerstëtzung fir e puer laang verouderte Forme fir de "{" Charakter a reguläre Ausdréck ze benotzen ouni et z'entkommen.
    • Et ass verbueden benotzt de sysread (), syswrite (), recv () a schécken () Funktiounen mat ": utf8" Handler.
    • Et ass verbueden Definitioune vu "meng" an inherent falsch bedingte Aussoen ze benotzen (zum Beispill "meng $x wann 0").
    • Ënnerstëtzung fir speziell Variabelen "$*" an "$#" gouf geläscht.
      Ënnerstëtzung fir implizit Uruff vun der Dump () Funktioun gouf gestoppt (Dir musst elo explizit CORE :: dump () spezifizéieren).

    • D'Fichier :: Glob :: glob Funktioun gouf geläscht (Dir sollt Datei :: Glob :: bsd_glob benotzen).
    • Zousätzlech Schutz fir ze packen () géint déi falsch Unicode Sequenzen zréckzekommen.
    • D'Enn vun der Ënnerstëtzung fir d'Benotzung vu Makroen déi Operatiounen mat UTF-8 am XS Code (C Blocks) ausféieren ass bis déi nächst Verëffentlechung ausgestallt ginn.
  • Leeschtung Optimisatiounen:
    • Iwwersetzungsoperatioune vun UTF-8 op Charakter Layout goufen beschleunegt (Code Punkt), zum Beispill, d'Operatioun ord ("\x7fff") auszeféieren erfuerdert elo 12% manner Instruktiounen. D'Performance vun Operatiounen, déi d'Korrektheet vun UTF-8 Charaktersequenzen iwwerpréift, gouf och erhéicht;
    • Rekursiv Uriff an der finalize_op () Funktioun goufen éliminéiert;
    • Huet kleng Optimisatiounen un de Code fir Zesummebroch identesch Zeechen an Definitioun Charakter Klassen am reguläre Ausdrock;
    • Optimiséiert Konvertéieren ënnerschriwwen Typdefinitiounen op net ënnerschriwwen (IV op UV);
    • Den Algorithmus fir ganz Zuelen an eng String ëmzewandelen gouf beschleunegt andeems zwee Ziffere gläichzäiteg veraarbecht ginn anstatt eng;
    • Verbesserunge goufen gemaach virbereet baséiert op Analyse vun LGTM;
    • Optimiséiert Code an Fichieren regcomp.c, regcomp.h an regexec.c;
    • A reguläre Ausdréck ass d'Veraarbechtung vu Mustere wéi "qr/[^a]/" mat ASCII Charaktere wesentlech beschleunegt ginn.
  • Ënnerstëtzung fir d'Minix3 Plattform gouf restauréiert. Et ass méiglech ze bauen mat dem Microsoft Visual Studio 2019 Compiler (Visual C++ 14.2);
  • Aktualiséiert Versioune vu Moduler am Basispaket abegraff. Moduler goufen aus der Haapt Zesummesetzung geläscht B :: Debug и Locale :: Coden.

Source: opennet.ru

Setzt e Commentaire