Python хэлний хөрвүүлэгч Nuitka 2.0 хувилбар

Nuitka 2.0 төслийн хувилбар бэлэн байгаа бөгөөд Python скриптүүдийг C дүрслэл болгон хөрвүүлэх хөрвүүлэгчийг хөгжүүлж, дараа нь CPython-той хамгийн их нийцтэй байхын тулд libpython ашиглан гүйцэтгэгдэх файл болгон хөрвүүлэх боломжтой (объектуудыг удирдахад уугуул CPython хэрэгслийг ашиглан). Python 2.6, 2.7, 3.3 - 3.11-ийн одоогийн хувилбаруудтай бүрэн нийцтэй байдлыг хангасан. CPython-той харьцуулахад эмхэтгэсэн скриптүүд нь pystone тестийн гүйцэтгэлийн 335% сайжирсан байна. Төслийн кодыг Apache лицензийн дагуу түгээдэг.

Шинэ хувилбарт орсон өөрчлөлтүүдийн дунд:

  • Багцын тохиргоонд хувьсагчийг ашиглах чадварыг нэмсэн нь хөрвүүлэх үед суулгасан багцуудаас утгыг асууж, тэдгээрийн утгыг арын хэсгийг тодорхойлох боломжийг олгоно. Тохиргоонд байгаа хувьсагчдыг дэмжих нь өмнө нь залгаасуудыг холбох шаардлагатай байсан олон ажлыг стандарт аргаар шийдвэрлэх боломжийг олгодог.
  • Багц бүрийн тохиргоонд нөлөөлөхийн тулд хэрэглэгчийн тодорхойлсон параметрүүдийн дэмжлэгийг нэмсэн. Параметрүүдийг шинэ get_parameter функцийг ашиглан уншиж, модулиудын үйл ажиллагааг сонгоход ашиглаж болно (жишээлбэл, та Numba JIT эсвэл Torch JIT-ийг идэвхгүй болгох параметрийг тохируулж болно).
  • "--include-onefile-external-data" сонголтыг нэмсэн бөгөөд тохиргоонд тодорхойлогдсон өгөгдлийн файлын загваруудыг зааж өгөх боловч onefile горимд бүтээх үед гүйцэтгэх файлаас тусад нь нийлүүлэх ёстой.
  • GCC-д CFI (Удирдлагын урсгалын бүрэн бүтэн байдал) хамгаалалтын горимыг тохируулахын тулд "--cf-protection" сонголтыг нэмсэн бөгөөд энэ нь хэвийн гүйцэтгэлийн дарааллын (хяналтын урсгал) зөрчлийг блоклодог.
  • Plugin yaml файлуудын хувьд бүрэн бүтэн байдлыг шалгах хяналтын нийлбэр үүсгэх чадварыг хэрэгжүүлсэн бөгөөд ирээдүйд тэд ажиллах цагийн баталгаажуулалтыг зохион байгуулахад ашиглахаар төлөвлөж байна.
  • Үйлдлүүд нь мөрөөр тусгаарлагдсан олон сонголтыг зааж өгөх боломжийг олгодог (шинэ мөрийг хязгаарлагч болгон ашигладаг). Жишээ нь: include-data-dir: | a=bc=d
  • Давталтын төрлүүдийн шинжилгээг хэрэгжүүлсэн бөгөөд цаашид сонгомол оновчлолыг хэрэгжүүлэхэд ашиглах болно.
  • Хуваалцаагүй болон зугтсан хувьсагчтай ажиллахыг хурдасгахын тулд оновчлолыг нэмсэн.
  • Bloat-ийн эсрэг залгаасын боломжуудыг өргөтгөсөн бөгөөд үүнийг одоо streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx болон pywt номын сангуудыг (үндсэндээ холбох) ашиглах үед пакетуудын тоог багасгахад ашиглаж болно. to pytest, IPython, nose, triton хасагдсан ба dask).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх