Keluaran Nuitka 2.0, pengkompil untuk bahasa Python

Keluaran projek Nuitka 2.0 tersedia, membangunkan pengkompil untuk menterjemah skrip Python ke dalam perwakilan C, yang kemudiannya boleh disusun menjadi fail boleh laku menggunakan libpython untuk keserasian maksimum dengan CPython (menggunakan alat CPython asli untuk memanipulasi objek). Menyediakan keserasian penuh dengan keluaran semasa Python 2.6, 2.7, 3.3 - 3.11. Berbanding dengan CPython, skrip yang disusun menunjukkan peningkatan prestasi 335% dalam ujian pystone. Kod projek diedarkan di bawah lesen Apache.

Antara perubahan dalam versi baharu:

  • Menambahkan keupayaan untuk menggunakan pembolehubah dalam konfigurasi pakej, membolehkan anda menanyakan nilai daripada pakej yang dipasang pada masa penyusunan dan menggunakan nilai tersebut untuk menentukan bahagian belakang. Sokongan untuk pembolehubah dalam konfigurasi membolehkan anda menyelesaikan banyak tugas dengan cara standard yang sebelum ini memerlukan pemalam penyambung.
  • Menambah sokongan untuk parameter yang ditentukan pengguna untuk mempengaruhi konfigurasi setiap pakej. Parameter boleh dibaca menggunakan fungsi get_parameter baharu dan digunakan untuk memilih kelakuan modul (contohnya, anda boleh menetapkan parameter untuk melumpuhkan Numba JIT atau Torch JIT).
  • Menambahkan pilihan "--include-onefile-external-data" untuk menentukan templat fail data yang ditakrifkan dalam konfigurasi tetapi mesti dibekalkan secara berasingan daripada fail boleh laku apabila membina dalam mod satu fail.
  • Menambahkan pilihan "--cf-protection" untuk menetapkan mod perlindungan CFI (Control Flow Integrity) dalam GCC, yang menyekat pelanggaran perintah pelaksanaan biasa (aliran kawalan).
  • Untuk fail yaml pemalam, keupayaan untuk mencipta jumlah semak untuk semakan integriti telah dilaksanakan, yang pada masa hadapan mereka merancang untuk menggunakannya untuk mengatur pengesahan masa jalan.
  • Tindakan membenarkan berbilang pilihan untuk ditentukan, dipisahkan oleh baris (baris baharu digunakan sebagai pembatas). Contohnya: include-data-dir: | a=bc=d
  • Analisis jenis gelung telah dilaksanakan, yang akan digunakan pada masa hadapan untuk melaksanakan pengoptimuman terpilih.
  • Menambahkan pengoptimuman untuk mempercepatkan kerja dengan pembolehubah tidak dikongsi dan dilepaskan.
  • Keupayaan pemalam anti-bloat telah diperluaskan, yang kini boleh digunakan untuk mengurangkan bilangan paket apabila menggunakan pustaka streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx dan pywt (pada asasnya, mengikat kepada pytest, IPython, hidung, triton dikecualikan dan dask).

Sumber: opennet.ru

Tambah komen