Rilis saka basa pamrograman Perl 5.30.0

Sawise 11 sasi pembangunan dumadi release saka cabang stabil anyar saka basa pemrograman Perl - 5.30. Nalika nyiapake rilis anyar, udakara 620 ewu baris kode diganti, owah-owahan kena pengaruh 1300 file, lan 58 pangembang melu pangembangan.

Cabang 5.30 dirilis miturut jadwal pembangunan tetep sing disetujoni enem taun kepungkur, sing nuduhake rilis cabang stabil anyar setaun lan rilis korektif saben telung wulan. Kira-kira sasi, direncanakake ngeculake release korektif pisanan Perl 5.30.1, sing bakal mbenerake kesalahan sing paling penting sing diidentifikasi sajrone implementasi Perl 5.30.0. Bebarengan karo release saka Perl 5.30, dhukungan kanggo cabang 5.26 dihentikan, sing nganyari bisa uga dirilis ing mangsa ngarep mung yen masalah keamanan kritis diidentifikasi. Proses pangembangan cabang eksperimen 5.31 uga wis diwiwiti, kanthi basis rilis stabil Perl 2020 bakal dibentuk ing Mei 5.32.

Kunci ganti:

  • Dhukungan eksperimental kanggo operasi "" wis ditambahake menyang ekspresi reguler.(?β€Ή!pola)"Lan"(?β€Ή=pola)Β»kanggo akses winates menyang cithakan sing diproses sadurunge. DhΓ©finisi pola kudu ana ing 255 karakter saka titik referensi;
  • Nilai maksimum saka specifier ukuran ("n") ing "{m,n}" pamblokiran ekspresi reguler wis tambah kanggo 65534;
  • Ditambahake winates dhukungan topeng kanggo nyorot kategori karakter tartamtu ing ekspresi reguler, nyakup set Unicode sing beda. Contone, ungkapan "qr! \p{nv= /(?x) \A [0-5] \z / }!” ngidini sampeyan milih kabeh karakter Unicode sing nemtokake angka saka 0 nganti 5, kalebu ejaan angka Thai utawa Bengali;
  • Ditambahake dhukungan kanggo karakter sing dijenengi ing ekspresi reguler
    pola ing njero diwatesi nganggo tanda kutip tunggal (qr'\N{name}');

  • Dhukungan spesifikasi Unicode dianyari dadi versi 12.1. GendΓ©ra pangembangan eksperimen wis dibusak saka telpon sv_utf8_downgrade lan sv_utf8_decode, digunakake ing pangembangan ekstensi ing basa C;
  • Nambahake kemampuan kanggo mbangun perl kanthi implementasine operasi kanthi lokal sing ndhukung operasi multi-threaded (-Accflags = '-DUSE_THREAD_SAFE_LOCALE'). Sadurunge, implementasine kuwi mung digunakake nalika mbangun versi multi-threaded saka Perl, nanging saiki bisa diaktifake kanggo mbangun sembarang;
  • Nggabungake gendera "-Dv" (output debugging ditingkatake) lan "-Dr" (debugging regex) saiki nyebabake kabeh mode debugging ekspresi reguler bisa diaktifake;
  • Fitur sing sadurunge ora digunakake wis dibusak:
    • Saiki kasedhiya minangka pemisah baris lan karakter wildcard diijini nggunakake mung grafem (karakter Unicode komposit ora diidini).
    • diterusake Dhukungan kanggo sawetara wangun sing wis suwe nggunakake karakter "{" ing ekspresi reguler tanpa uwal.
    • Punika ingkang boten pareng nggunakake sysread (), syswrite (), recv () lan ngirim () fungsi karo ": utf8" handler.
    • Dilarang nggunakake definisi "my" ing statement kondisional sing palsu (contone, "my $x yen 0").
    • Dhukungan kanggo variabel khusus "$*" lan "$#" wis dibusak.
      Dhukungan kanggo panggilan implisit saka dump () fungsi wis mandhek (sampeyan saiki kudu tegas nemtokake CORE :: dump ()).

    • Fungsi File::Glob::glob wis dibusak (sampeyan kudu nggunakake File::Glob::bsd_glob).
    • pangayoman ditambahakΓ© kanggo Pack () marang bali urutan Unicode ora bener.
    • Pungkasan dhukungan kanggo panggunaan makro sing nindakake operasi karo UTF-8 ing kode XS (blok C) wis ditundha nganti rilis sabanjure.
  • Optimasi Kinerja:
    • Operasi terjemahan saka UTF-8 menyang tata letak karakter wis digawe cepet (titik kode), contone, nindakake operasi ord("\x7fff") saiki mbutuhake 12% instruksi luwih sithik. Kinerja operasi mriksa kabeneran urutan karakter UTF-8 uga wis tambah;
    • Telpon rekursif ing fungsi finalize_op () wis ngilangi;
    • Nggawe optimizations suntingan kanggo kode kanggo collapsing karakter podho rupo lan nemtokake kelas karakter ing ekspresi biasa;
    • Dioptimalake ngowahi definisi jinis sing ditandatangani dadi sing ora ditandatangani (IV dadi UV);
    • Algoritma kanggo ngowahi integer dadi senar wis digawe cepet kanthi ngolah rong digit bebarengan tinimbang siji;
    • Dandan wis ditindakake disiapake adhedhasar analisis dening LGTM;
    • Kode Optimized ing file regcomp.c, regcomp.h lan regexec.c;
    • Ing ekspresi reguler, pangolahan pola kaya "qr/[^a]/" kanthi karakter ASCII wis cepet banget.
  • Dhukungan kanggo platform Minix3 wis dibalΓ¨kakΓ©. Sampeyan bisa mbangun nggunakake kompiler Microsoft Visual Studio 2019 (Visual C ++ 14.2);
  • Versi modul sing dianyari kalebu ing paket dhasar. Modul wis dibusak saka komposisi utama B:: Debug ΠΈ Lokal:: Kode.

Source: opennet.ru

Add a comment