Mojo 1.2 เพิ่ม Pattern Matching พร้อมอัปเกรดการประมวลผล GPU
หลังจากที่ Mojo 1.1 ได้เปิดโอเพนซอร์สคอมไพเลอร์ให้ภายนอกเข้ามามีส่วนร่วม ล่าสุด Mojo ภาษาโปรแกรมที่ออกแบบมาเพื่อรวมจุดเด่นด้านไวยากรณ์ของ Python เข้ากับประสิทธิภาพระดับภาษา System Programming ได้ประกาศปล่อยเวอร์ชัน 1.2 อย่างเป็นทางการแล้ว
ฟีเจอร์ใหม่ที่โดดเด่นที่สุดคือระบบ Pattern Matching ผ่านคำสั่ง match และ case ช่วยให้นักพัฒนาสามารถเปรียบเทียบค่ากับรูปแบบต่างๆ ได้หลากหลาย ทั้ง literals, tuples, structures รวมถึงการใช้ conditional guards โดยระบบจะเลือกประมวลผลตามรูปแบบแรกที่จับคู่สำเร็จทันที
นอกจากนี้ยังรองรับ comptime match สำหรับการประเมินค่าในช่วง Compile-time ช่วยให้นักพัฒนาเลือกรูปแบบการ Implement ตามค่าหรือประเภทข้อมูลที่ระบุไว้ล่วงหน้าได้อย่างแม่นยำ พร้อมทั้งเปิดตัวโครงสร้าง if case และ while case รวมถึงการทำ list destructuring เพื่อดึงข้อมูลออกจากคอลเลกชันได้อย่างสะดวกยิ่งขึ้น
ด้านการประมวลผลบน GPU มีการปรับปรุงครั้งสำคัญ โดยฟังก์ชันในไลบรารีคณิตศาสตร์มาตรฐานกว่า 20 รายการ ได้เปลี่ยนมาใช้การ Implement บน Mojo โดยตรง แทนการพึ่งพาไลบรารีของระบบ ส่งผลให้ฟังก์ชันอย่าง atan(), tan(), log10(), hypot() และฟังก์ชัน Bessel หลายรายการ สามารถรันบน GPU ได้ด้วยมาตรฐานเดียวกับ CPU ซึ่งช่วยลดความเหลื่อมล้ำของผลลัพธ์ตัวเลขระหว่างสองสถาปัตยกรรม แม้ว่าอาจมีความแตกต่างเล็กน้อยตามข้อจำกัดของฮาร์ดแวร์
ในส่วนของประสิทธิภาพ คอมไพเลอร์เวอร์ชันนี้สามารถจัดการแพ็คเกจขนาดใหญ่ได้รวดเร็วขึ้นอย่างเห็นได้ชัด โดยการคอมไพล์แพ็คเกจ nn ใช้เวลาลดลงเหลือ 61 วินาที จากเดิม 98 วินาที หรือเร็วขึ้นเกือบ 38% สำหรับผู้ใช้ Linux ยังได้ประโยชน์จากการเปลี่ยนไปใช้ตัวจัดสรรหน่วยความจำ jemalloc ซึ่งช่วยให้การคอมไพล์ไฟล์ GPU kernel ขนาดใหญ่เร็วขึ้นประมาณ 10% ถึง 13%
ไลบรารีมาตรฐานยังได้รับการปรับแต่งให้ทำงานได้รวดเร็วยิ่งขึ้น เช่น การดำเนินการเติมช่องว่างสตริง (String padding) ที่เร็วขึ้นสูงสุดถึง 86 เท่าในบางกรณี ขณะที่การทำซ้ำสตริง (String repetition) ขนาดใหญ่ก็เร็วขึ้นกว่าเดิมสองเท่า นอกจากนี้ยังเพิ่มความสามารถในการทำ array slicing, ปรับปรุงการจัดการ tuple และเพิ่มวิธีทำงานกับ memory spans ให้มีประสิทธิภาพกว่าเดิม
สำหรับการเขียนโปรแกรมแบบ Generic ได้มีการปรับปรุงระบบตรวจสอบข้อจำกัด (constraint diagnostics) ให้ชัดเจนขึ้นผ่าน where clauses เวอร์ชันอัปเดต และอนุญาตให้ structures เลือกไม่ใช้งาน (opt out) trait บางอย่างได้ตามต้องการ ปิดท้ายด้วยการขยายเนื้อหาเอกสารประกอบภาษา Mojo ทั้งส่วนของ pattern matching และคู่มือสำหรับนักพัฒนา Python ที่ต้องการเปลี่ยนมาใช้งานภาษา Mojo
สำหรับผู้ที่สนใจรายละเอียดเชิงลึกสามารถตรวจสอบข้อมูลเพิ่มเติมได้ที่ see the release notes

ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
