มีการเปิดตัวโครงการ Nuitka 1.1 โดยพัฒนาคอมไพเลอร์สำหรับแปลสคริปต์ Python เป็นตัวแทน C ซึ่งสามารถรวบรวมเป็นไฟล์ปฏิบัติการได้โดยใช้ libpython เพื่อความเข้ากันได้สูงสุดกับ CPython (ใช้เครื่องมือ CPython ดั้งเดิมสำหรับจัดการวัตถุ) ให้ความเข้ากันได้อย่างสมบูรณ์กับ Python 2.6, 2.7, 3.3 - 3.10 รุ่นล่าสุด เมื่อเทียบกับ CPython สคริปต์ที่คอมไพล์แสดงการปรับปรุงประสิทธิภาพ 335% ในการทดสอบ pystone รหัสโครงการแจกจ่ายภายใต้ใบอนุญาต Apache
ท่ามกลางการเปลี่ยนแปลงในเวอร์ชันใหม่:
- ความเป็นไปได้ในการระบุการกำหนดค่าในรูปแบบ Yaml ได้รับการขยายแล้ว
- มีการปรับปรุงให้เหมาะสมโดยแยกส่วนประกอบที่ไม่ได้ใช้ของไลบรารีมาตรฐาน (zoneinfo, concurrent, asyncio เป็นต้น) ซึ่งทำให้สามารถลดขนาดของไฟล์ปฏิบัติการที่เป็นผลลัพธ์ได้
- เพิ่มการรองรับไวยากรณ์ทางเลือก ("|") ในการจับคู่รูปแบบตามตัวดำเนินการ "match" ที่นำมาใช้ใน 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 มีการรองรับไฟล์ปฏิบัติการที่เซ็นชื่อแบบดิจิทัลแล้ว
- มีวิธีการสำหรับปลั๊กอินเพื่อแทนที่ฟังก์ชันสำหรับการเรียกทำงาน
- ความสามารถของปลั๊กอินป้องกันการขยายตัวได้รับการขยาย ซึ่งตอนนี้สามารถใช้เพื่อลดจำนวนแพ็คเกจเมื่อใช้ไลบรารี่ rich, pyrect และ pytorch มีการใช้ความสามารถในการใช้นิพจน์ทั่วไปในกฎการแทนที่แล้ว
- การเปลี่ยนแปลงแบบถดถอยอันเป็นผลมาจากการปรับปรุงประสิทธิภาพที่สำคัญที่นำมาใช้ในรุ่นล่าสุดได้รับการแก้ไขแล้ว
ที่มา: opennet.ru