Perl 5.30.0 programazio hizkuntzaren kaleratzea

11 hilabeteko garapenaren ondoren ospatu Perl programazio-lengoaiaren adar egonkor berri baten kaleratzea - 5.30. Bertsio berria prestatzerakoan, 620 mila kode lerro inguru aldatu ziren, aldaketek 1300 fitxategiri eragin zien eta 58 garatzailek hartu zuten parte garapenean.

5.30 adarra duela sei urte onartutako garapen finkoko egutegiaren arabera kaleratu zen, hau da, urtean behin adar egonkor berriak kaleratzea eta hiru hilean behin kaleratze zuzentzaileak. Hilabete inguru barru, Perl 5.30.1-en lehen bertsio zuzentzailea kaleratzea aurreikusten da, Perl 5.30.0 inplementatzean identifikatutako akats esanguratsuenak zuzenduko dituena. Perl 5.30 kaleratzearekin batera, 5.26 adarraren euskarria eten egin zen, eta eguneratzeak etorkizunean segurtasun-arazo kritikoak identifikatzen badira soilik kaleratu daitezke. 5.31 adar esperimentalaren garapen-prozesua ere hasi da, eta horren oinarrian Perl 2020-ren bertsio egonkor bat osatuko da 5.32ko maiatzean.

Gakoa aldaketak:

  • Adierazpen erregularrei "" eragiketen euskarria esperimentala gehitu zaie.(?β€Ή!eredua)"Eta"(?β€Ή=eredua)Β» aurretik prozesatutako txantiloi izendunetarako sarbide mugatua lortzeko. Ereduaren definizioak erreferentzia puntutik 255 karaktere izan behar du;
  • "{m,n}" adierazpen erregular blokeetan tamaina-zehaztatzailearen ("n") gehienezko balioa 65534ra igo da;
  • Gehitu mugatua onartzen maskarak adierazpen erregularretan karaktere-kategoria batzuk nabarmentzeko, Unicode multzo desberdinak estaliz. Adibidez, β€œqr! \p{nv= /(?x) \A [0-5] \z / }!" 0tik 5era bitarteko zenbakiak definitzen dituzten Unicode karaktere guztiak hautatzeko aukera ematen du, zenbakien thailandiera edo bengalera barne;
  • Adierazpen erregularretan izendun karaktereentzako laguntza gehitu da
    komatxo bakarrez mugatutako ereduen barnean (qr'\N{izena}');

  • Unicode zehaztapenen euskarria bertsiora eguneratu da 12.1. Garapen esperimentalaren bandera kendu da deietatik sv_utf8_downgrade eta sv_utf8_decode, C hizkuntzan luzapenen garapenean erabilia;
  • Perl eraikitzeko gaitasuna gehitu da hari anitzeko eragiketa onartzen duen lokal batekin eragiketak inplementatzen dituena (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Lehen, inplementazio hori Perl-en hari anitzeko bertsioa eraikitzean bakarrik erabiltzen zen, baina orain edozein eraikuntzarako gaitu daiteke;
  • "-Dv" (arazketa-irteera hobetua) eta "-Dr" (regex arazketa) banderak konbinatuz, orain adierazpen erregular-arazketa modu posible guztiak gaituta egotea eragiten du;
  • Aurretik zaharkituta zeuden eginbideak kendu egin dira:
    • Orain lerro bereizle eta komodin gisa erabilgarri baimenduta bakarrik erabili grafemak (Unicode karaktere konposatuak ez dira onartzen).
    • Etenda Adierazpen erregularretan "{" karakterea ihes egin gabe erabiltzeko forma zaharkitu batzuetarako laguntza.
    • Debekatuta dago sysread(), syswrite(), recv() eta send() funtzioak erabiliz ":utf8" kudeatzaileekin.
    • Debekatuta dago β€œnire”-ren definizioak erabiltzea berez faltsu diren baldintzazko adierazpenetan (adibidez, β€œnire $x 0 bada”).
    • "$*" eta "$#" aldagai berezietarako laguntza kendu da.
      Dump() funtzioaren dei inplizituetarako laguntza eten egin da (orain esplizituki zehaztu behar duzu CORE::dump()).

    • File::Glob::glob funtzioa kendu da (Fitxategi::Glob::bsd_glob erabili behar duzu).
    • Babesa gehitu zaio pack() Unicode sekuentzia okerrak itzultzeko.
    • XS kodean (C blokeak) UTF-8rekin eragiketak egiten dituzten makroak erabiltzeko laguntzaren amaiera hurrengo bertsiora arte atzeratu da.
  • Errendimenduaren optimizazioak:
    • Itzulpen-eragiketak UTF-8tik karaktere diseinura bizkortu egin dira (kode puntua), adibidez, ord(β€œ\x7fff”) eragiketa egiteko orain %12 argibide gutxiago behar dira. UTF-8 karaktere-sekuentzien zuzentasuna egiaztatzen duten eragiketen errendimendua ere handitu da;
    • Finalize_op() funtzioko dei errekurtsiboak ezabatu dira;
    • Optimizazio txikiak egin dizkiote kodeari karaktere berdinak tolestu eta adierazpen erregularretan karaktere klaseak definitzeko;
    • Optimizatua sinatutako motako definizioak sinatu gabekoetara bihurtzea (IV UVra);
    • Zenbaki osoak kate batean bihurtzeko algoritmoa bi digitu bat izan beharrean aldi berean prozesatuz bizkortu da;
    • Hobekuntzak egin dira prestatuta LGTMk egindako analisian oinarrituta;
    • Kode optimizatua regcomp.c, regcomp.h eta regexec.c fitxategietan;
    • Adierazpen erregularretan, ASCII karaktereekin β€œqr/[^a]/” bezalako ereduen prozesamendua nabarmen azkartu da.
  • Minix3 plataformarako euskarria leheneratu da. Microsoft Visual Studio 2019 konpilatzailea erabiliz eraiki daiteke (Visual C++ 14.2);
  • Oinarrizko paketean sartutako moduluen bertsio eguneratuak. Konposizio nagusitik moduluak kendu dira B::Araztu ΠΈ Tokia::Kodeak.

Iturria: opennet.ru

Gehitu iruzkin berria