Python dili için bir derleyici olan Nuitka 2.0'nin piyasaya sürülmesi

Nuitka 2.0 projesinin bir sürümü mevcuttur, Python betiklerini bir C temsiline çevirmek için bir derleyici geliştirir, bu daha sonra CPython ile maksimum uyumluluk için libpython kullanılarak yürütülebilir bir dosyada derlenebilir (nesneleri işlemek için yerel CPython araçları kullanılır). Python 2.6, 2.7, 3.3 - 3.11'un güncel sürümleriyle tam uyumluluk sağlanmıştır. CPython ile karşılaştırıldığında, derlenmiş betikler, pystone testlerinde %335'lik bir performans artışı gösteriyor. Proje kodu, Apache lisansı altında dağıtılır.

Yeni sürümdeki değişiklikler arasında:

  • Paket yapılandırmasında değişkenleri kullanma yeteneği eklendi; derleme zamanında kurulu paketlerdeki değerleri sorgulamanıza ve bu değerleri arka ucu tanımlamak için kullanmanıza olanak tanıdı. Yapılandırmadaki değişkenlere yönelik destek, daha önce eklentilerin bağlanmasını gerektiren birçok görevi standart yollarla çözmenize olanak tanır.
  • Her paketin yapılandırmasını etkilemek amacıyla kullanıcı tanımlı parametreler için destek eklendi. Parametreler yeni get_parameter işlevi kullanılarak okunabilir ve modüllerin davranışını seçmek için kullanılabilir (örneğin, Numba JIT veya Torch JIT'i devre dışı bırakmak için bir parametre ayarlayabilirsiniz).
  • Yapılandırmada tanımlanan ancak tek dosya modunda oluştururken yürütülebilir dosyadan ayrı olarak sağlanması gereken veri dosyası şablonlarını belirtmek için "--include-onefile-external-data" seçeneği eklendi.
  • GCC'de normal yürütme sırasının (kontrol akışı) ihlallerini engelleyen CFI (Kontrol Akışı Bütünlüğü) koruma modunu ayarlamak için “--cf-protection” seçeneği eklendi.
  • Eklenti yaml dosyaları için, gelecekte çalışma zamanı doğrulamasını organize etmek için kullanmayı planladıkları bütünlük kontrolleri için sağlama toplamları oluşturma yeteneği uygulandı.
  • Eylemler, satırlarla ayrılmış birden çok seçeneğin belirtilmesine olanak tanır (sınırlayıcı olarak yeni bir satır kullanılır). Örneğin: include-data-dir: | a=bc=d
  • Gelecekte seçici optimizasyonların uygulanmasında kullanılacak olan döngü türlerinin bir analizi uygulanmıştır.
  • Paylaşılmayan ve kaçışlı değişkenlerle çalışmayı hızlandırmak için optimizasyonlar eklendi.
  • Şişme önleme eklentisinin yetenekleri genişletildi; bu artık Streamlit, Torch, Knetworkx, dağıtılmış, skimage, bitsandbytes, tf_keras, pip, networkx ve pywt kitaplıklarını (temel olarak bağlama) kullanırken paket sayısını azaltmak için kullanılabilir. pytest'e, IPython, burun, triton hariç tutulur ve dask).

Kaynak: opennet.ru

Yorum ekle