LOWNLAB News
โปรแกรมมิ่งระดับ 7/10GitHub — rust-lang/rust-project-goals

Rust รับข้อเสนอ "immobile types" และ "guaranteed destructors" เป็นเป้าหมายโปรเจกต์ปี 2026-2027

Immobile types and guaranteed destructors

เอกสารเป้าหมายโปรเจกต์ของ Rust สำหรับปี 2026-2027 หัวข้อ "Immobile types and guaranteed destructors" ได้รับสถานะ Accepted แล้ว โดยมี @lcnr เป็นผู้ประสานงานหลักและ types champion ส่วน @jackh726 เป็น lang champion

ข้อเสนอนี้ต้องการเพิ่ม trait ที่ให้ type สามารถ "ถอนตัว" จากสมมติฐานพื้นฐานสองข้อของ Rust ได้ คือสมมติฐานที่ว่าค่าทุกค่าย้ายตำแหน่งในหน่วยความจำได้ และสมมติฐานที่ว่าค่าทุกค่าถูกลืมทิ้งได้ผ่าน mem::forget

สำหรับ immobile types ปัจจุบัน Rust ใช้ Pin เพื่อเข้ารหัสความ "ย้ายไม่ได้" ในระดับตำแหน่งจัดเก็บ (storage location) แทนที่จะเป็นคุณสมบัติของตัว type เอง ซึ่งสร้างความซับซ้อนมาก โดยเฉพาะกับโครงสร้างข้อมูลที่อ้างอิงตัวเอง (self-referential) ซึ่งจำเป็นในระบบอย่าง Linux kernel ส่วน guaranteed destructors หมายถึง type ที่รับประกันว่า destructor ต้องทำงานก่อนถูกทำลาย ซึ่งเปิดทางให้เขียนรูปแบบอย่าง scoped task spawning ได้อย่างปลอดภัย เพราะ destructor ของ handle จะการันตีว่าได้ join งานที่ spawn ไว้ก่อนออกจาก scope

ดีไซน์ที่เสนอประกอบด้วย auto-trait สามตัว ได้แก่ Move (type ย้ายตำแหน่งในหน่วยความจำได้), Destruct (type ถูก drop โดยปริยายได้) และ Forget (type อยู่รอดจาก mem::forget ได้โดยไม่ต้องรัน destructor) โดย type ที่ประกาศ !Move หรือ !Forget จะถอนตัวออกจากพฤติกรรมเหล่านั้น

ข้อเสนอนี้ถือเป็นการเปลี่ยนแปลงระดับรากฐานที่สุดครั้งหนึ่งของภาษา และมีผลโดยตรงต่อ ecosystem ของ async Rust และงานเขียนโปรแกรมระบบระดับล่าง

แหล่งอ้างอิง

อ่านต้นฉบับที่ GitHub — rust-lang/rust-project-goals

https://github.com/rust-lang/rust-project-goals/blob/main/src/2026/move-trait.md