deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Python 3.15.0 lazy imports, frozendict ve varsayılan UTF-8 ile geldi

Python'ın yıllık özellik sürümü, sürpriz bir üçüncü release candidate'nın ardından bir hafta gecikmeyle yayımlandı; lazy imports, frozendict, varsayılan kodlama olarak UTF-8 ve JIT hızlandırmalarını getiriyor.

Python 3.15.0 lazy imports, frozendict ve varsayılan UTF-8 ile geldi

Python 3.15.0 çalkantılı bir son virajın ardından yayımlandı

Python 3.15.0, dilin yıllık özellik sürümü olarak 9 Ekim 2026'da çıktı. Orijinal plana göre bir hafta sonra yayımlandı; çünkü yeni lazy-imports mekanizmasındaki geç hataları düzeltmek için planlanmamış bir üçüncü release candidate gerekti — bu bilgiye göre Tech AI Wire'ın dev.to'daki yazısından. Sürüm, 1.012 katkıcından gelen 5.643 commit'i bir araya getiriyor; bu rakamları sürüm yöneticisi Hugo van Kemenade Python Insider'da paylaştı.

Öne çıkan özellikler

Her büyük değişiklik bir Python Enhancement Proposal'a (PEP) dayanıyor:

  • PEP 810, açık lazy imports getiriyor; programların bir modülü gerçekten kullanılana kadar yüklemeyi ertelemesini sağlıyor ve bu da başlatma süresini kısaltıyor.
  • PEP 814, oluşturulduktan sonra değiştirilemeyen yerleşik bir sözlük türü olan frozendict'i ekliyor.
  • PEP 661, benzersiz işaretleyici değerler için yerleşik bir Sentinel türü sunuyor.
  • PEP 686, kod aksini belirtmedikçe UTF-8'i varsayılan metin kodlaması yapıyor.
  • PEP 798, comprehension'ların içinde unpacking'e izin veriyor.
  • PEP 829, paketler için başlatma yapılandırma dosyalarını tanımlıyor.
  • PEP 799, Tachyon örnekleme profilleyicisini bir paket olarak ekliyor.
  • PEP 803, 820 ve 793, serbest iş parçacıklı (free-threaded) kararlı bir ABI oluşturuyor; böylece tek bir derlenmiş extension serbest iş parçacıklı yapıların tamamında çalışabiliyor.
  • PEP 831, yapılarda frame pointer'ları varsayılan olarak etkinleştiriyor.

PEP 728, 747 ve 800 kapsamında typing üç ek değişiklik daha kazanırken, makalede atıf yapılan What's New belgelerine göre deneysel JIT derleyici, hata mesajları ve komut satırı renkleri de ilgi gördü.

Kodlama değişimi

UTF-8 değişikliğinin en geniş etkisi Windows'ta görülüyor; Linux Compatible'ın bildirdiğine göre metin işleme orada daha önce farklı bir varsayılana dayanıyordu. Eski davranışa bağımlı uygulamalar onu geri getirmek için PYTHONUTF8=0 ayarlayabilir, ancak makale bunu bir çözüm değil geçici bir önlem olarak niteliyor.

İş yüküne bağlı olarak daha hızlı

Program çalışırken sık yürütülen Python kodunu makine koduna derleyen JIT daha da hızlandı. Python Insider'ın geometrik ortalamasına göre standart interpreter'a karşı x86-64 Linux'ta yüzde 7-8, tail-calling interpreter'a karşı AArch64 macOS'ta yüzde 11-12 kazanç var. Dağılım geniş: Linux Compatible'ın bildirdiğine göre tekil benchmark'lar yaklaşık yüzde 15 yavaşlamadan yüzde 100'den fazla hızlanmaya kadar uzanıyor.

Resmi yükleyiciler de değişti. Windows 64-bit yapıları artık tail-calling interpreter kullanıyor; Linux Compatible'ın ölçümüne göre bu yüzde 15-20 değerinde, küçük ve uzun süre çalışan saf Python betiklerinde ise yüzde 40'a varan kazanç sağlıyor. macOS yükleyicileri artık varsayılan olarak free-threading ile geliyor; yani Python, global interpreter lock olmadan kodu birden fazla CPU çekirdeğinde çalıştırabiliyor.

Mac kullanıcıları için bir uyarı

macOS 27.0'da IDLE ve diğer tkinter uygulamaları, bir menü komutu bir iletişim kutusu tetiklediğinde kilitlenebiliyor ve tek çıkar yol zorla kapatmak kalıyor. Python ekibi sorunun bir işletim sistemi değişikliğinden kaynaklandığını ve tkinter'ın altındaki araç takımı olan Tk'nin her sürümünü etkilediğini söylüyor. Sorun #158053 numarasıyla takip ediliyor ve sürüm sayfası, Tk uygulamalarına bel bağlayanlara macOS 27.0'a geçmemeyi öneriyor.

Emekliye ayrılanlar

Sürüm notlarına ve Linux Compatible'a göre üç öge yolun sonunda: saf Python profile modülü kullanımdan kaldırıldı ve Python 3.17'de kaldırılacak, cProfile geriye kalıyor; .pth dosyalarındaki kod çalıştıran satırlar yeni PEP 829 başlatma dosyaları lehine kullanımdan kaldırıldı; PyGILState_* C fonksiyonları ise soft-deprecated durumda ama kaldırılmadı.

Python 3.15, Linux Compatible'ın aktardığı PEP 602 takvimine göre iki yıl hata düzeltmesi, ardından yaklaşık Ekim 2031'e kadar güvenlik düzeltmesi alacak.

Neden önemli

Lazy imports, modül düzeyi kodun ne zaman çalışacağını değiştiriyor; bu yüzden import zamanı yan etkilerine bel bağlayan her araç bu özelliği benimsemeden önce test edilmeli ve ağır import'ları olan komut satırı araçları en çok yararlananlar olacak. UTF-8 varsayılanı metin işlemeyi platformlar arasında daha öngörülebilir hale getiriyor ama eski kodlamayı varsayan Windows kodunu bozabilir; oradaki dosya girdi-çıktısı testlerini yapmakta fayda var. Free-threading'in varsayılan macOS yükleyicilerinde görünmesi, dilin yönünü gösteriyor ve donmuş sözlük türü sabit yapılandırma için daha güvenli bir container sunuyor. Kullanımdan kaldırmalar net bir geçiş penceresi veriyor ve her zamanki tavsiye geçerli: üretim sistemlerini yükseltmeden önce ana bağımlılıkların 3.15'i desteklediğini doğrulayın.

  • #python
  • #programming-languages
  • #open-source
  • #release
  • #performance

İlgili yazılar