Ħruġ tal-lingwa ta' programmar Perl 5.30.0

Wara 11 xhur ta 'żvilupp seħħet rilaxx ta 'fergħa stabbli ġdida tal-lingwa ta' programmar Perl - 5.30. Fit-tħejjija tar-rilaxx il-ġdid, madwar 620 elf linja ta 'kodiċi nbidlu, il-bidliet affettwaw 1300 fajl, u 58 żviluppatur ħadu sehem fl-iżvilupp.

Il-fergħa 5.30 ġiet rilaxxata skont l-iskeda fissa tal-iżvilupp approvata sitt snin ilu, li timplika r-rilaxx ta 'fergħat stabbli ġodda darba fis-sena u rilaxxi korrettivi kull tliet xhur. F'madwar xahar, huwa ppjanat li tirrilaxxa l-ewwel rilaxx korrettiv ta 'Perl 5.30.1, li se tikkoreġi l-iżbalji l-aktar sinifikanti identifikati matul l-implimentazzjoni ta' Perl 5.30.0. Flimkien mar-rilaxx ta 'Perl 5.30, l-appoġġ għall-fergħa 5.26 twaqqaf, li għaliha jistgħu jiġu rilaxxati aġġornamenti fil-futur biss jekk jiġu identifikati problemi ta' sigurtà kritiċi. Beda wkoll il-proċess ta 'żvilupp tal-fergħa sperimentali 5.31, li fuq il-bażi tiegħu se jiġi ffurmat rilaxx stabbli ta' Perl 2020 f'Mejju 5.32.

Ewlenin bidliet:

  • Appoġġ sperimentali għall-operazzjonijiet "" ġie miżjud ma 'espressjonijiet regolari.(?‹!mudell)"U"(?‹=mudell)» għal aċċess limitat għal mudelli msemmijin ipproċessati qabel. Id-definizzjoni tal-mudell għandha tkun f'255 karattru tal-punt ta' referenza;
  • Il-valur massimu tal-ispeċifikazzjoni tad-daqs (“n”) fi blokki tal-espressjoni regolari “{m,n}” żdied għal 65534;
  • Miżjud limitat appoġġ maskri biex jenfasizzaw ċerti kategoriji ta’ karattri f’espressjonijiet regolari, li jkopru settijiet Unicode differenti. Pereżempju, l-espressjoni “qr! \p{nv= /(?x) \A [0-5] \z / }!” jippermettilek tagħżel il-karattri Unicode kollha li jiddefinixxu n-numri minn 0 sa 5, inklużi ortografiji Tajlandiż jew Bengali tan-numri;
  • Appoġġ miżjud għall-karattri msemmija fl-espressjonijiet regolari
    mudelli ta' ġewwa delimitati minn kwotazzjonijiet singoli (qr'\N{isem}');

  • Appoġġ għall-ispeċifikazzjoni Unicode aġġornat għall-verżjoni 12.1. Il-bandiera tal-iżvilupp sperimentali tneħħiet mis-sejħiet sv_utf8_downgrade u sv_utf8_decode, użat fl-iżvilupp ta 'estensjonijiet fil-lingwa C;
  • Miżjud il-kapaċità li tibni perl bl-implimentazzjoni ta 'operazzjonijiet b'local li jappoġġja operazzjoni multi-threaded (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Preċedentement, implimentazzjoni bħal din kienet tintuża biss meta tinbena verżjoni multi-threaded ta 'Perl, iżda issa tista' tkun attivata għal kwalunkwe bini;
  • Il-kombinazzjoni tal-bnadar "-Dv" (output imtejjeb tad-debugging) u "-Dr" (debugging regex) issa tikkawża l-attivazzjoni tal-modi kollha possibbli tad-debugging tal-espressjonijiet regolari;
  • Karatteristiċi li qabel kienu mħassra tneħħew:
    • Issa disponibbli bħala separatur tal-linja u karattri wildcard permess uża biss grafemi (Mhumiex permessi karattri Unicode komposti).
    • Twaqqaf appoġġ għal xi forom skaduti fit-tul ta 'użu tal-karattru "{" f'espressjonijiet regolari mingħajr ma jaħrab minnu.
    • Huwa pprojbit bl-użu tal-funzjonijiet sysread(), syswrite(), recv() u send() bi ":utf8" handlers.
    • Huwa pprojbit li tuża definizzjonijiet ta' "tiegħi" f'dikjarazzjonijiet kundizzjonali foloz inerenti (pereżempju, "$x tiegħi jekk 0").
    • L-appoġġ għall-varjabbli speċjali “$*” u “$#” tneħħa.
      L-appoġġ għas-sejħa impliċita tal-funzjoni dump() twaqqaf (issa trid tispeċifika espliċitament CORE::dump()).

    • Il-funzjoni File::Glob::glob tneħħiet (għandek tuża File::Glob::bsd_glob).
    • Protezzjoni miżjuda mal-pack() kontra r-ritorn ta' sekwenzi Unicode mhux korretti.
    • It-tmiem ta 'appoġġ għall-użu ta' macros li jwettqu operazzjonijiet b'UTF-8 f'kodiċi XS (blokki C) ġie pospost għar-rilaxx li jmiss.
  • Ottimizzazzjonijiet tal-Prestazzjoni:
    • L-operazzjonijiet tat-traduzzjoni minn UTF-8 għat-tqassim tal-karattri ġew aċċellerati (punt tal-kodiċi), pereżempju, it-twettiq tal-operazzjoni ord(“\x7fff”) issa jeħtieġ 12% inqas istruzzjonijiet. Il-prestazzjoni tal-operazzjonijiet li jiċċekkjaw il-korrettezza tas-sekwenzi tal-karattri UTF-8 żdiedet ukoll;
    • Sejħiet rikorsivi fil-funzjoni finalize_op() ġew eliminati;
    • Għamel ottimizzazzjonijiet minuri għall-kodiċi għall-kollass ta 'karattri identiċi u d-definizzjoni ta' klassijiet ta 'karattri f'espressjonijiet regolari;
    • Ottimizzat il-konverżjoni tad-definizzjonijiet tat-tip iffirmat għal dawk mhux iffirmati (IV għal UV);
    • L-algoritmu għall-konverżjoni ta 'numri interi f'sekwenza ġie aċċellerat bl-ipproċessar ta' żewġ ċifri f'daqqa minflok waħda;
    • Sar titjib ippreparat ibbażata fuq analiżi minn LGTM;
    • Kodiċi ottimizzat fil-fajls regcomp.c, regcomp.h u regexec.c;
    • F'espressjonijiet regolari, l-ipproċessar ta 'mudelli bħal "qr/[^a]/" b'karattri ASCII ġie aċċellerat b'mod sinifikanti.
  • L-appoġġ għall-pjattaforma Minix3 ġie restawrat. Huwa possibbli li tibni bl-użu tal-kompilatur Microsoft Visual Studio 2019 (Visual C++ 14.2);
  • Verżjonijiet aġġornati tal-moduli inklużi fil-pakkett bażiku. Il-moduli tneħħew mill-kompożizzjoni prinċipali B::Debug и Lokal::Kodiċi.

Sors: opennet.ru

Żid kumment