15 คะแนน โดย darjeeling 2025-06-16 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

ด้วยความพยายามของ นาดงฮี ตอนนี้ free-threading ได้หลุดพ้นจากป้ายกำกับแบบทดลองและจะได้รับการรองรับอย่างเป็นทางการแล้ว


Python Steering Council (SC) ได้อนุมัติ PEP 779 เพื่อ ถอดแท็ก “experimental” ออกจากบิลด์ free-threaded ของ Python 3.14 โดยการตัดสินใจนี้มาพร้อมเงื่อนไขว่าต้องบรรลุภารกิจต่อไปนี้ในช่วง Phase II

  1. ความเข้ากันได้ของ C API/ABI และการจัดทำ Stable C API

    • การเปลี่ยนแปลงใด ๆ ที่ทำลายความเข้ากันได้ของ API/ABI เดิม ต้องได้รับความเห็นพ้องล่วงหน้าจาก C API Working Group
    • ภายใน Python 3.15 ต้องนิยามและจัดเตรียม Stable C API สำหรับ free-threading โดยเฉพาะ
  2. เกณฑ์สำหรับโครงการทดลองใหม่

    • โครงการทดลองใหม่ภายใน CPython ต้องเข้ากันได้กับบิลด์ free-threading และพัฒนาโดยยึดสิ่งนี้เป็นพื้นฐาน
    • ลดความซับซ้อนจากการต้องดูแล GIL และ free-threading ควบคู่กันให้น้อยที่สุด
  3. รั้วกันตกด้านประสิทธิภาพและหน่วยความจำ

    • เป้าหมาย: ประสิทธิภาพลดลงไม่เกิน 10% เมื่อเทียบกับบิลด์ GIL
    • หากประสิทธิภาพลดลงได้สูงสุด 15% / หน่วยความจำเพิ่มขึ้น 15% จะต้องได้รับความเห็นชอบล่วงหน้าจาก SC (เพดานหน่วยความจำสูงสุด 20%)
  4. ข้อกำหนดด้านเอกสาร

    • ผู้ใช้ Python: ต้องชี้แจงการรับประกันของ API ในไลบรารีมาตรฐานและการเปลี่ยนแปลงให้ชัดเจน
    • นักพัฒนา Python·C API: ต้องมีเอกสารอธิบายการรับประกันด้าน concurrency เช่น signal และ thread safety
    • นักพัฒนา CPython: ต้องมีเอกสารเกี่ยวกับข้อควรพิจารณาในการ implement
    • ต้องมีหน้า landing page ทางการสำหรับ ‘free-threading’ ที่รวบรวมข้อมูลทั้งหมด
  5. การเตรียม primitive สำหรับ concurrency ระดับสูง

    • โดยมีแพ็กเกจ concurrent เป็นศูนย์กลาง ให้มีการเสนอและทบทวนเครื่องมือ concurrency ระดับสูงที่ผู้ใช้สามารถใช้งานได้โดยไม่ต้องรู้รายละเอียดการทำงานภายใน
  6. ข้อกำหนดด้าน benchmark

    • ต้องตรวจสอบคำกล่าวอ้างด้านประสิทธิภาพ หน่วยความจำ และความถูกต้องด้วยการทดสอบที่ทำซ้ำได้บนพื้นฐานของ pyperformance
    • สนับสนุนการมีส่วนร่วมเพิ่มเติมใน benchmark ที่สะท้อนเวิร์กโหลดจริง

SC แสดงความเชื่อมั่นต่อความคืบหน้าของโครงการ และแนะนำให้ ชุมชน Python ช่วยประชาสัมพันธ์บิลด์ free-threading อย่างจริงจังในฐานะตัวเลือกที่รองรับอย่างเป็นทางการ โดยใน 3.14 beta 3 จะมีการถอดแท็ก “experimental” อย่างเป็นทางการ และประเด็นเรื่อง Phase III (เปลี่ยน free-threading ให้เป็นบิลด์ค่าเริ่มต้นหรือบิลด์เดียว) จะมีการหารือต่อไปในภายหลัง

3 ความคิดเห็น

 
carnoxen 2025-06-20

ทรงพระเจริญแด่ความเป็นอิสระของเธรด!

 
idunno 2025-06-18

เย่!

 
kimjoin2 2025-06-17

ว้าว...!