Liberazione di a lingua di prugrammazione Perl 5.30.0

Dopu à 11 mesi di sviluppu hè accadutu liberazione di una nova branca stabile di a lingua di prugrammazione Perl - 5.30. In a preparazione di a nova versione, circa 620 mila linee di codice sò state cambiate, i cambiamenti anu affettatu i schedari 1300, è i sviluppatori 58 anu participatu à u sviluppu.

Branch 5.30 hè stata liberata in cunfurmità cù u prugramma di sviluppu fissu appruvatu sei anni fà, chì implica a liberazione di novi rami stabili una volta à l'annu è e versioni currettivi ogni trè mesi. In circa un mesi, hè previstu di liberà a prima liberazione correttiva di Perl 5.30.1, chì correggerà l'errori più significati identificati durante l'implementazione di Perl 5.30.0. Inseme cù a liberazione di Perl 5.30, u supportu per u ramu 5.26 hè statu discontinuatu, per quale l'aghjurnamenti ponu esse liberati in u futuru solu s'ellu si identificanu prublemi di sicurezza critichi. U prucessu di sviluppu di u ramu sperimentale 5.31 hè ancu cuminciatu, nantu à a basa di quale una versione stabile di Perl 2020 serà furmatu in maghju 5.32.

Chjave cambià:

  • U supportu sperimentale per l'operazioni "" hè statu aghjuntu à l'espressioni regulare.(?‹!pattern)"E"(?‹ = mudellu)» per un accessu limitatu à mudelli chjamati precedentemente trattati. A definizione di u mudellu deve esse in 255 caratteri di u locu di riferimentu;
  • U valore massimu di u specificatore di taglia ("n") in "{m,n}" blocchi d'espressione regulare hè statu aumentatu à 65534;
  • Aggiuntu limitatu supportu maschere per mette in risaltu certe categurie di caratteri in espressioni regulari, chì coprenu diversi setti Unicode. Per esempiu, l'espressione "qr! \p{nv= /(?x) \A [0-5] \z / }!" permette di selezziunà tutti i caratteri Unicode chì definiscenu i numeri da 0 à 5, cumprese l'ortografia tailandese o bengalese di i numeri;
  • Aghjunghje supportu per i caratteri chjamati in espressioni regulari
    in mudelli delimitati da virgulette singuli (qr'\N{name}');

  • Supportu di specificazione Unicode aghjurnatu à a versione 12.1. A bandiera di sviluppu sperimentale hè stata eliminata da e chjama sv_utf8_downgrade è sv_utf8_decode, usatu in u sviluppu di estensioni in lingua C;
  • Aggiunta l'abilità di custruisce perl cù l'implementazione di operazioni cù un locale chì sustene l'operazione multi-thread (-Accflags = '-DUSE_THREAD_SAFE_LOCALE'). Nanzu, una tale implementazione hè stata aduprata solu quandu custruisce una versione multi-threaded di Perl, ma pò avà esse attivatu per ogni custruzzione;
  • Cumminendu i bandieri "-Dv" (output di debugging rinfurzatu) è "-Dr" (debugging regex) facenu avà l'attivazione di tutti i modi di debugging di espressioni regulari pussibuli;
  • Funzioni prima deprecate sò state eliminate:
    • Avà dispunibule cum'è separatore di linea è caratteri jolly permessu aduprà solu grafemi (I caratteri Unicode cumposti ùn sò micca permessi).
    • Discontinued supportu per alcune forme obsolete longu di utilizà u caratteru "{" in l'espressioni regulare senza scappà.
    • Hè pruibitu utilizendu e funzioni sysread(), syswrite(), recv() è send() cù i gestori ":utf8".
    • Hè pruibitu d'utilizà definizioni di "my" in dichjarazioni cundiziunali inerentemente falsi (per esempiu, "my $x if 0").
    • U supportu per e variàbili spiciali "$*" è "$#" hè statu eliminatu.
      U supportu per a chjama implicita di a funzione dump() hè stata interrotta (avete avà da specificà esplicitamente CORE::dump()).

    • A funzione File::Glob::glob hè stata sguassata (duvete aduprà File::Glob::bsd_glob).
    • Prutezzione aghjunta à pack() contra u ritornu di sequenze Unicode incorrecte.
    • A fine di supportu per l'usu di macros chì realizanu operazioni cù UTF-8 in codice XS (blocchi C) hè stata posposta finu à a prossima versione.
  • Ottimisazioni di u rendiment:
    • L'operazioni di traduzzione da UTF-8 à u layout di caratteri sò state accelerate (puntu di codice), per esempiu, eseguisce l'operazione ord ("\x7fff") avà richiede 12% menu istruzioni. U rendiment di l'operazioni chì verificanu a correttezza di e sequenze di caratteri UTF-8 hè ancu aumentatu;
    • I chjami recursivi in ​​a funzione finalize_op () sò stati eliminati;
    • Fate ottimisazioni minori à u codice per colapsà caratteri identici è definisce classi di caratteri in espressioni regulari;
    • Optimized cunvertisce definizioni di tipu firmatu à quelli senza firma (IV à UV);
    • L'algoritmu per a cunversione di numeri interi in una stringa hè stata accelerata processendu duie cifre à una volta invece di una;
    • I migliori sò stati fatti preparatu basatu annantu à l'analisi da LGTM;
    • Codice ottimisatu in i schedari regcomp.c, regcomp.h è regexec.c;
    • In l'espressioni rigulari, u trattamentu di mudelli cum'è "qr/[^a]/" cù caratteri ASCII hè statu significativamente acceleratu.
  • U supportu per a piattaforma Minix3 hè stata restaurata. Hè pussibule di custruisce cù u compilatore Microsoft Visual Studio 2019 (Visual C ++ 14.2);
  • Versioni aghjurnate di moduli inclusi in u pacchettu di basa. I moduli sò stati eliminati da a cumpusizioni principali B::Debug и Locale::Codici.

Source: opennet.ru

Add a comment