Perl 5.30.0 programlama dilinin piyasaya sürülmesi

11 aylık geliştirme sürecinin ardından yer aldı Perl programlama dilinin yeni ve kararlı bir dalının piyasaya sürülmesi - 5.30. Yeni sürümün hazırlanmasında yaklaşık 620 bin satır kod değiştirildi, değişiklikler 1300 dosyayı etkiledi ve geliştirmede 58 geliştirici görev aldı.

Şube 5.30, altı yıl önce onaylanan sabit geliştirme planına uygun olarak piyasaya sürüldü; bu, yeni istikrarlı şubelerin yılda bir kez ve her üç ayda bir düzeltici sürümlerin piyasaya sürülmesi anlamına geliyor. Yaklaşık bir ay içinde Perl 5.30.1'ın uygulanması sırasında tespit edilen en önemli hataları düzeltecek olan Perl 5.30.0'in ilk düzeltici sürümünün yayınlanması planlanıyor. Perl 5.30'un piyasaya sürülmesiyle birlikte 5.26 şubesine yönelik destek de durduruldu ve bu şube için güncellemeler yalnızca kritik güvenlik sorunlarının belirlenmesi durumunda gelecekte yayınlanabilecek. Mayıs 5.31'de Perl 2020'nin istikrarlı bir sürümünün oluşturulacağı deneysel şube 5.32'in geliştirme süreci de başladı.

Anahtar değişiklikler:

  • Normal ifadelere "" işlemleri için deneysel destek eklendi.(?<!model)"Ve"(?‹=desen)» daha önce işlenmiş adlandırılmış şablonlara sınırlı erişim için. Desen tanımı referans noktasından itibaren 255 karakter içerisinde olmalıdır;
  • “{m,n}” düzenli ifade bloklarındaki boyut belirtecinin (“n”) maksimum değeri 65534'e yükseltildi;
  • Sınırlı eklendi destek Farklı Unicode kümelerini kapsayan, normal ifadelerdeki belirli karakter kategorilerini vurgulamak için maskeler. Örneğin “qr! \p{nv= /(?x) \A [0-5] \z / }!” sayıların Tayca veya Bengalce yazılışları dahil, 0'dan 5'e kadar sayıları tanımlayan tüm Unicode karakterleri seçmenize olanak tanır;
  • Normal ifadelerde adlandırılmış karakterler için destek eklendi
    tek tırnak işaretleri ile sınırlandırılmış iç kalıplar (qr'\N{name}');

  • Unicode spesifikasyon desteği sürüme güncellendi 12.1. Deneysel geliştirme bayrağı çağrılardan kaldırıldı sv_utf8_downgrade ve sv_utf8_decodeC dilinde uzantıların geliştirilmesinde kullanılan;
  • Çok iş parçacıklı işlemi destekleyen bir yerel ayarla (-Accflags='-DUSE_THREAD_SAFE_LOCALE') işlemlerin uygulanmasıyla perl oluşturma yeteneği eklendi. Daha önce böyle bir uygulama yalnızca Perl'in çok iş parçacıklı bir sürümünü oluştururken kullanılıyordu, ancak artık herhangi bir yapı için etkinleştirilebiliyor;
  • "-Dv" (gelişmiş hata ayıklama çıkışı) ve "-Dr" (regex hata ayıklama) bayraklarının birleştirilmesi artık tüm olası düzenli ifade hata ayıklama modlarının etkinleştirilmesine neden oluyor;
  • Daha önce kullanımdan kaldırılan özellikler kaldırıldı:
    • Artık satır ayırıcı ve joker karakterler olarak mevcut izin verildi sadece kullan grafikler (bileşik Unicode karakterlere izin verilmez).
    • Durduruldu Düzenli ifadelerde “{” karakterini kaçmadan kullanmanın uzun süredir kullanılmayan bazı biçimleri için destek.
    • Yasak sysread(), syswrite(), recv() ve send() işlevlerini ":utf8" işleyicileriyle kullanarak.
    • Doğası gereği yanlış koşullu ifadelerde "benim" tanımlarının kullanılması yasaktır (örneğin, "0 ise benim $x'im").
    • “$*” ve “$#” özel değişkenlerine yönelik destek kaldırıldı.
      dump() işlevinin örtülü çağrılması desteği durduruldu (artık CORE::dump()'u açıkça belirtmeniz gerekiyor).

    • File::Glob::glob işlevi kaldırıldı (File::Glob::bsd_glob kullanmalısınız).
    • Yanlış Unicode dizilerinin döndürülmesine karşı pack()'e koruma eklendi.
    • XS kodunda (C blokları) UTF-8 ile işlem yapan makroların kullanımına yönelik desteğin sonu bir sonraki sürüme ertelendi.
  • Performans Optimizasyonları:
    • UTF-8'den karakter düzenine çeviri işlemleri hızlandırıldı (kod noktası), örneğin ord(“\x7fff”) işlemini gerçekleştirmek artık %12 daha az talimat gerektiriyor. UTF-8 karakter dizilerinin doğruluğunu kontrol eden işlemlerin performansı da artırıldı;
    • finalize_op() işlevindeki özyinelemeli çağrılar ortadan kaldırıldı;
    • Aynı karakterleri daraltmak ve normal ifadelerde karakter sınıflarını tanımlamak için kodda küçük optimizasyonlar yapıldı;
    • Optimize edilmiş imzalı tür tanımlarını imzasız olanlara (IV'den UV'ye) dönüştürme;
    • Tam sayıları bir dizeye dönüştürmeye yönelik algoritma, bir yerine iki rakamın aynı anda işlenmesiyle hızlandırıldı;
    • İyileştirmeler yapıldı eğitilmiş LGTM tarafından yapılan analize dayanmaktadır;
    • Regcomp.c, regcomp.h ve regexec.c dosyalarındaki kod optimize edildi;
    • Düzenli ifadelerde ASCII karakterli “qr/[^a]/” gibi kalıpların işlenmesi önemli ölçüde hızlandırıldı.
  • Minix3 platformu desteği yeniden sağlandı. Microsoft Visual Studio 2019 derleyicisini (Visual C++ 14.2) kullanarak derleme yapmak mümkündür;
  • Temel pakette yer alan modüllerin güncellenmiş sürümleri. Modüller ana bileşimden kaldırıldı B::Hata ayıklama и Yerel ayar::Kodlar.

Kaynak: opennet.ru

Yorum ekle