Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
3.14 Serisinin 3.13 ile Karşılaştırıldığında Öne Çıkan Yeni Özellikleri
Python 3.14'teki başlıca yeni özellikler ve değişiklikler şunlardır:
Yeni Özellikler
PEP 779: "Free-threaded" (serbest iş parçacıklı) Python artık resmi olarak destekleniyor.
PEP 649: Notasyonların (annotations) değerlendirilmesi artık erteleniyor; bu da notasyon kullanım semantiğini iyileştiriyor.
PEP 750: F-string'lerin tanıdık söz dizimini kullanarak özel metin işleme sağlayan "Template string literals" (t-stringleri).
PEP 734: Standart kütüphanede (stdlib) çoklu yorumlayıcı (multiple interpreters) desteği.
PEP 784: Zstandard sıkıştırma algoritması için destek sağlayan yeni compression.zstd modülü.
PEP 758: except ve except* ifadelerinde artık parantez kullanımı isteğe bağlı (atlanabilir).
Arayüz İyileştirmeleri: PyREPL'de söz dizimi vurgulama; unittest, argparse, json ve calendar komut satırı arayüzlerinde (CLI) renk desteği.
PEP 768: CPython için sıfır maliyetli (zero-overhead) harici hata ayıklayıcı arayüzü.
UUID Güncellemeleri: uuid modülü artık 6-8 arası sürümleri destekliyor; 3-5 arası sürümlerin üretilmesi ise %40'a kadar hızlandırıldı.
PEP 765: Bir finally bloğundan çıkan return/break/continue ifadeleri artık yasaklandı.
PEP 741: Python'u yapılandırmak için geliştirilmiş yeni bir C API.
Yeni Yorumlayıcı Tipi: Belirli yeni derleyiciler için bu yorumlayıcı önemli ölçüde daha iyi performans sağlar. Şimdilik isteğe bağlıdır (opt-in) ve kaynak koddan derleme gerektirir.
Geliştirilmiş hata mesajları.
HMAC Uygulaması: HACL* projesinden gelen resmi olarak doğrulanmış kod ile HMAC'in yerleşik (builtin) uygulaması.
Asenkron Görev Denetimi: Çalışan Python süreçlerini asenkron görevleri kullanarak incelemek için yeni bir komut satırı arayüzü.
pdb Güncellemesi: pdb modülü artık çalışan bir Python sürecine uzaktan bağlanmayı (remote attach) destekliyor.
Derleme (Build) Değişiklikleri
PEP 761: Python 3.14 ve sonrasında yayınlanan dosyalar için artık PGP imzası sağlanmayacak. Bunun yerine doğrulayıcılar için Sigstore öneriliyor.
Resmi macOS ve Windows sürümleri, deneysel bir JIT derleyicisi içerir.
Resmi Android ikili (binary) sürümleri artık mevcut.
Uyumsuz Değişiklikler ve Kaldırılanlar
Uyumsuz değişiklikler, kaldırılan/kullanımdan kaldırılan Python ve C API özellikleri hakkında detaylar mevcuttur.
Python Kurulum Yöneticisi (Install Manager)
Windows için sunduğumuz yükleyici, Windows Store'dan veya indirme sayfasından yüklenebilen yeni "install manager" ile değiştiriliyor. Geleneksel yükleyici, 3.14 ve 3.15 sürümleri boyunca mevcut kalmaya devam edecektir.
Ve Şimdi Tamamen Farklı Bir Şey
4 Nisan itibarıyla, yılın 3.14 ayı (Pi sayısı kadar) geride kalmış oldu.
E-posta başlıklarında güvensiz katlama veya sınırlandırma içeren verilerin serileştirilmesi engellendi (#144125).
E-posta mesajlarındaki çok uzun yorumların hatalı katlanması sonucu oluşan "header injection" (başlık enjeksiyonu) açığı giderildi (#143935).
Veri (data URL medya türlerinde, http.cookies.Morsel alanlarında ve wsgiref başlıklarında kontrol karakterleri reddedilerek güvenlik artırıldı (#143925, #143919, #143916).
Performans ve Kütüphane İyileştirmeleri
io.BufferedReader satır yineleme performansı yaklaşık %49 oranında artırıldı (#144380).
Free-threaded derlemelerde functools.partial() ve atexit.unregister() üzerindeki veri yarışları (data race) giderildi (#143880, #142881).
Argparse performansında, doğrulama için kullanılan formatlayıcının önbelleğe alınmasıyla iyileştirme yapıldı (#142267).
Asenkron REPL (asyncio) artık izole modu (-I) destekliyor ve sessiz modda telif hakkı mesajlarını basmıyor (#140648, #143046).
Kritik Hata ve Çökme Düzeltmeleri
Windows: PyREPL'de satır sonu karakteri içermeyen çıktıların bir sonraki istem tarafından üzerine yazılması hatası giderildi (#128067).
Ctypes: argtypes içinde geçersiz işaretçi türleri kullanıldığında yaşanan çökmeler yerine düzgün Python istisnaları verilmesi sağlandı (#144100).
Multiprocessing: forkserver başlatma yönteminde sys.argv'nin boş olması sorunu giderildi (#143706).
Pickle: C uygulamasında aynı nesne üzerinde eşzamanlı çağrı yapılması durumunda oluşan veri bozulmaları engellendi; artık RuntimeError fırlatılıyor (#143638).
Tkinter: Tcl nesnesine dönüştürme sırasında Python listesi değiştirilirse oluşan çökme giderildi (#143310).
Çekirdek ve Builtin Değişiklikleri
Garbage Collector (Çöp Toplayıcı): Free-threaded derlemelerde performans düşüşüne neden olan nesne sayımı hatası düzeltildi (#142531).
JIT Derleyici: Stencil başlık üretimi deterministik hale getirilerek tekrarlanabilir derlemeler (reproducible builds) sağlandı (#138061).
Traceback sistemi: io.open() kaybedilse bile yedek modda hata izlerini görüntüleyebilecek şekilde güncellendi (#142737).
xml.parsers.expat Güvenlik Düzeltmesi: xml.parsers.expat modülünde, ebeveyn Expat ayrıştırıcılarının (parent Expat parsers), ExternalEntityParserCreate() tarafından oluşturulan alt ayrıştırıcılar tarafından referans gösterilmediği zamanlarda bile çöp toplanmasını engelleyen bir güvenlik düzeltmesi yapıldı.
Araçlar ve Geliştirici Desteği
SBOM (Yazılım Malzeme Listesi) Düzeltmesi: SBOM oluşturma aracı, sürüm ve sağlama toplamı (checksum) değerlerini Modules/expat/refresh.sh betiği ile çapraz kontrol etmediği için bu değerlerin güncel olmama sorununu düzeltildi.
Apple Geliştirmeleri:
XCframeworks artık Apple App Store gönderim gereksinimlerini karşılamak için gizlilik manifestolarını (privacy manifests) içeriyor.
Bir iOS XCframework oluşturma betiği eklendi. Bu değişikliğin bir parçası olarak, üst düzeydeki iOS klasörü, artık Apple klasörünün bir alt dizini haline getirildi.
OpenSSL Güncellemeleri: İkili yapılarda (binary builds) kullanılan OpenSSL sürümü, çeşitli güvenlik açıklarını (CVE'ler) gidermek için 1.1.1u ve 1.1.1t'ye yükseltildi.
Dizin Atlatma (Directory Traversal): uu.decode() metodundaki, çıkış dosyası belirtilmediğinde dizin atlatma saldırılarına izin verebilecek güvenlik açığı giderildi.
Dizin İndeksleri: http.client.SimpleHTTPRequestHandler tarafından oluşturulan dizin indekslerinde, yerel disk konumu artık ifşa edilmeyecek.
URL Ayrıştırma: urllib.parse.urlsplit() metodu, WHATWG'nin URL belirtimine uygun olarak, baştaki C0 kontrol ve boşluk karakterlerini artık kaldırır.
Alt İşlem (Subprocess): subprocess.Popen metodu, shell=True ile başlatılırken cmd.exe dosyasını bulmak için daha güvenli bir yöntem kullanır.
Kütüphane:
ensurepip ile birlikte gelen pip sürümü 23.0.1'e yükseltildi.
Yapı (Build):
GHA CI üzerinde macOS'ta oluşan test_posix hatasını önlemek için uygun macOS SDK'sı kullanılmaya başlandı.
Windows:
Windows yükleyicisi, OpenSSL 1.1.1s sürümüne güncellendi.
Etkileşimli Yorumlayıcı: PyPy tabanlı, çok satırlı düzenleme, renk desteği ve renklendirilmiş hata izleme (traceback) özelliklerine sahip, geliştirilmiş yeni bir etkileşimli yorumlayıcı eklendi.
Kilitsiz Eşzamanlılık: Deneysel, serbest iş parçacıklı bir derleme modu eklendi. Bu mod, Global Interpreter Lock'u (GIL) devre dışı bırakarak iş parçacıklarının daha eşzamanlı çalışmasına olanak tanır ve Windows ile macOS yükleyicilerinde deneysel bir özellik olarak sunulmaktadır.
Deneysel JIT: Önemli performans iyileştirmeleri için temel teşkil eden deneysel bir JIT (Just-In-Time) derleyicisi eklendi.
Mimalloc Bellek Yöneticisi: Geliştirilmiş bir bellek yöneticisi olan mimalloc'un değiştirilmiş bir sürümü, varsayılan olarak etkinleştirilmiş şekilde (desteklenen platformlarda) artık mevcuttur ve serbest iş parçacıklı derleme modu için gereklidir.
Docstring İyileştirmesi: Docstring'lerin başındaki girintiler artık kaldırılıyor, bu da bellek kullanımını ve .pyc dosyalarının boyutunu azaltıyor.
Yeni Dbm Arka Ucu: dbm modülüne, yeni dosyalar oluşturulurken varsayılan olarak kullanılan yeni bir dbm.sqlite3 arka ucu eklendi.