โหมด No-GIL สำหรับ Python กำลังมาถึง
(lwn.net)- CPython กำลังมุ่งไปสู่การทำให้ Global Interpreter Lock(GIL) เป็นตัวเลือก จึงมีสัญญาณว่าจะเกิดการเปลี่ยนแปลงครั้งใหญ่ในโมเดลการรันแบบขนานของ Python
- Python Steering Council ระบุว่ามีเจตนาจะรับ PEP 703 และการรองรับระยะแรกอาจถูกรวมเข้าไปใน Python 3.13
- ประเด็นสำคัญอยู่ที่ว่า no-GIL build และ with-GIL build เดิมจะสามารถรองรับการเปลี่ยนแปลงโค้ดของเธิร์ดปาร์ตี้ร่วมกันได้หรือไม่
- Steering Council พยายามหลีกเลี่ยง “สถานการณ์แบบ Python 3 อีกครั้ง” และกำลังพิจารณาข้อกำหนดด้านความเข้ากันได้ย้อนหลังและ ABI compatibility อย่างรอบคอบ
- การนำ no-GIL มาใช้ไม่ใช่การเปลี่ยนผ่านไป Python 4 ดังนั้นปัญหาความเข้ากันได้กับ Python เวอร์ชันเก่าต้องแก้ไขแยกต่างหาก
เจตนาที่จะรับ PEP 703
- Python Steering Council ระบุว่ามีเจตนาจะรับ PEP 703: Making the Global Interpreter Lock Optional in CPython
- PEP 703 เป็นข้อเสนอให้ทำให้ Global Interpreter Lock เป็นตัวเลือกใน CPython
- การรองรับระยะแรกอาจถูกรวมอยู่ในรีลีส Python 3.13
ประเด็นด้านความเข้ากันได้และการไมเกรต
- Steering Council ต้องการจัดการ ความเข้ากันได้ย้อนหลัง ในการเปลี่ยนผ่านสู่ no-GIL อย่างระมัดระวังมาก
- การเปลี่ยนแปลงโค้ดของเธิร์ดปาร์ตี้ที่จำเป็นเพื่อให้เข้ากับ no-GIL build ต้องทำงานได้เหมือนเดิมบน with-GIL build ด้วย
- อย่างไรก็ตาม ความเข้ากันได้ย้อนหลังกับ Python เวอร์ชันที่เก่ากว่านั้นต้องแก้ไขแยกต่างหาก
- มีการย้ำว่าการเปลี่ยนแปลงครั้งนี้ ไม่ใช่ Python 4
- ข้อกำหนดด้าน ABI compatibility ระหว่างทั้งสอง build และผลกระทบต่อความเข้ากันได้ย้อนหลังยังอยู่ระหว่างการพิจารณา
1 ความคิดเห็น
ความคิดเห็นบน Hacker News