การเปิดตัว Nuitka 1.1 คอมไพเลอร์สำหรับภาษา Python

มีการเปิดตัวโครงการ 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

เพิ่มความคิดเห็น