Ngaleupaskeun basa programming Perl 5.30.0

Sanggeus 11 bulan pangwangunan lumangsung ngaleupaskeun cabang stabil anyar tina basa programming Perl - 5.30. Dina Nyiapkeun release anyar, ngeunaan 620 sarébu garis kode anu robah, parobahan mangaruhan 1300 file, sarta 58 pamekar nyandak bagian dina pangwangunan.

Cabang 5.30 dileupaskeun saluyu sareng jadwal pangembangan tetep anu disatujuan genep taun ka pengker, anu nunjukkeun sékrési cabang stabil énggal sataun sakali sareng sékrési koréksi unggal tilu bulan. Dina ngeunaan sabulan, éta rencanana ngaleupaskeun release corrective mimiti Perl 5.30.1, nu bakal ngabenerkeun kasalahan paling signifikan dicirikeun salila palaksanaan Perl 5.30.0. Marengan sékrési Perl 5.30, rojongan pikeun cabang 5.26 ieu dilanjutkeun, nu apdet bisa dileupaskeun dina mangsa nu bakal datang ngan lamun masalah kaamanan kritis dicirikeun. Prosés pamekaran cabang ékspérimén 5.31 ogé parantos dimimitian, dumasar kana sékrési stabil Perl 2020 bakal kabentuk dina Méi 5.32.

konci parobahan:

  • Pangrojong ékspérimén pikeun operasi "" geus ditambahkeun kana éksprési biasa.(?‹!pola)"Jeung"(?‹=pola)»Pikeun aksés kawates kana citakan anu diprosés saméméhna. Watesan pola kedah aya dina 255 karakter tina titik rujukan;
  • Nilai maksimum tina specifier ukuran ("n") dina "{m,n}" blok éksprési biasa geus ngaronjat nepi ka 65534;
  • Ditambahkeun kawates sokongan masker pikeun nyorot sababaraha kategori karakter dina ekspresi biasa, ngawengku set Unicode béda. Contona, babasan “qr! \p{nv= /(?x) \A [0-5] \z / }!” ngidinan Anjeun pikeun milih sakabeh karakter Unicode nu nangtukeun angka ti 0 nepi ka 5, kaasup Thailand atawa Bengali ejaan angka;
  • Ditambahkeun dukungan pikeun karakter anu namina dina ekspresi biasa
    pola jero dibatesan ku tanda petik tunggal (qr'\N{name}');

  • Rojongan spésifikasi Unicode diropéa kana versi 12.1. Bandéra pamekaran ékspérimén parantos dipiceun tina telepon sv_utf8_downgrade sareng sv_utf8_decode, dipaké dina ngembangkeun ekstensi dina basa C;
  • Ditambahkeun kamampuan ngawangun perl kalayan palaksanaan operasi sareng lokal anu ngadukung operasi multi-threaded (-Accflags = '-DUSE_THREAD_SAFE_LOCALE'). Saméméhna, palaksanaan misalna hiji ngan dipaké nalika ngawangun versi multi-threaded of Perl, tapi ayeuna bisa diaktipkeun pikeun sagala wangunan;
  • Ngagabungkeun umbul "-Dv" (kaluaran debugging ditingkatkeun) jeung "-Dr" (debugging regex) ayeuna ngabalukarkeun sagala mungkin mode debugging ekspresi reguler diaktipkeun;
  • Fitur anu sateuacana dileungitkeun parantos dipupus:
    • Ayeuna sayogi salaku pemisah garis sareng karakter wildcard diidinan make wungkul graphémes (karakter Unicode komposit teu diwenangkeun).
    • Diteruskeun rojongan pikeun sababaraha formulir lila-usang ngagunakeun karakter "{" dina éksprési biasa tanpa escaping eta.
    • Hal ieu dilarang ngagunakeun sysread (), syswrite (), recv () sarta ngirim () fungsi kalawan ": utf8" pawang.
    • Dilarang ngagunakeun definisi "abdi" dina pernyataan kondisional anu palsu (contona, "abdi $ x upami 0").
    • Rojongan pikeun variabel husus "$*" jeung "$#" geus dihapus.
      Rojongan pikeun nelepon implisit tina dump () fungsi geus dilanjutkeun (anjeun ayeuna kudu eksplisit nangtukeun CORE :: dump ()).

    • The File :: Glob :: fungsi glob geus dihapus (anjeun kudu make File :: Glob :: bsd_glob).
    • Ditambahkeun panyalindungan ka pak () ngalawan balik runtuyan Unicode salah.
    • Tungtung dukungan pikeun panggunaan makro anu ngalaksanakeun operasi sareng UTF-8 dina kode XS (blok C) ditunda dugi ka rilis salajengna.
  • Optimasi Kinerja:
    • Operasi tarjamahan tina UTF-8 kana perenah karakter parantos gancangan (titik kode), contona, ngajalankeun operasi ord("\x7fff") ayeuna merlukeun 12% leuwih saeutik parentah. Kinerja operasi mariksa kabeneran urutan karakter UTF-8 ogé parantos ningkat;
    • Telepon recursive dina fungsi finalize_op () geus ngaleungitkeun;
    • Dijieun optimizations minor kana kode pikeun collapsing karakter idéntik jeung nangtukeun kelas karakter dina ekspresi biasa;
    • Dioptimalkeun ngarobah definisi tipe ditandatanganan kana leuwih unsigned (IV kana UV);
    • Algoritma pikeun ngarobah integer jadi string geus gancangan ku ngolah dua digit sakaligus tinimbang hiji;
    • Perbaikan parantos dilakukeun disiapkeun dumasar kana analisis LGTM;
    • Kode dioptimalkeun dina file regcomp.c, regcomp.h na regexec.c;
    • Dina ekspresi biasa, ngolah pola sapertos "qr/[^a]/" sareng karakter ASCII parantos gancangan sacara signifikan.
  • Rojongan pikeun platform Minix3 parantos dibalikeun. Kasebut nyaéta dimungkinkeun pikeun ngawangun nganggo kompiler Microsoft Visual Studio 2019 (Visual C ++ 14.2);
  • Vérsi diropéa tina modul kaasup dina pakét dasar. Modul parantos dipiceun tina komposisi utama B:: Debug и Lokal:: Kodeu.

sumber: opennet.ru

Tambahkeun komentar