انتشار Nuitka 1.1، یک کامپایلر برای زبان پایتون

نسخه‌ای از پروژه Nuitka 1.1 در دسترس است، که یک کامپایلر برای ترجمه اسکریپت‌های پایتون به یک نمایش C توسعه می‌دهد، که سپس می‌تواند با استفاده از libpython در یک فایل اجرایی برای حداکثر سازگاری با CPython (با استفاده از ابزارهای بومی CPython برای دستکاری اشیا) کامپایل شود. سازگاری کامل با نسخه های فعلی Python 2.6، 2.7، 3.3 - 3.10 ارائه شده است. در مقایسه با CPython، اسکریپت های کامپایل شده 335% بهبود عملکرد را در تست های پیستون نشان می دهند. کد پروژه تحت مجوز آپاچی توزیع می شود.

از جمله تغییرات نسخه جدید:

  • امکانات برای تعیین پیکربندی در فرمت Yaml گسترش یافته است.
  • بهینه‌سازی‌هایی در رابطه با حذف مؤلفه‌های بلااستفاده کتابخانه استاندارد (zoneinfo، همزمان، asyncio و غیره) انجام شده است که امکان کاهش اندازه فایل‌های اجرایی حاصل را فراهم می‌کند.
  • پشتیبانی از نحو جایگزین ("|") در مطابقت های الگو بر اساس عملگر "مطابقت" معرفی شده در Python 3.10 اضافه شده است.
  • سازگاری با jinja2.PackageLoader تضمین شده است.
  • قابلیت تغییر اندازه ویژگی __defaults__ را پیاده سازی کرد.
  • پشتیبانی از توابع importlib.metadata.distribution، importlib_metadata.distribution، importlib.metadata.metadata و importlib_metadata.metadata اضافه شد.
  • پشتیبانی از گنجاندن فایل های باینری اضافی در فایل اجرایی اصلی به حالت کامپایل Onefile اضافه شده است.
  • ماژول های کامپایل شده توانایی استفاده از تابع importlib.resources.files را پیاده سازی می کنند.
  • گزینه "--include-package-data" اجازه می دهد تا ماسک های فایل را مشخص کنید، به عنوان مثال، "--include-package-data=package_name=*.txt".
  • برای macOS، پشتیبانی از امضای دیجیتالی فایل‌های اجرایی اجرا شده است.
  • روشی برای پلاگین ها برای لغو توابع برای فایل اجرایی ارائه شده است.
  • قابلیت های پلاگین ضد نفخ افزایش یافته است که اکنون می توان از آن برای کاهش تعداد بسته ها هنگام استفاده از کتابخانه های غنی، pyrec و pytorch استفاده کرد. قابلیت استفاده از عبارات منظم در قوانین جایگزین پیاده سازی شده است.
  • تغییرات رگرسیون ناشی از بهینه سازی های قابل توجهی که در آخرین نسخه اجرا شده اند حل شده اند.

منبع: opennet.ru

اضافه کردن نظر