Ruby 3 แสดงตัวอย่างการทำงานแบบขนาน

Ruby 3.0.0 ซึ่งเป็นแผนอัปเกรดเป็นภาษาไดนามิกโอเพนซอร์สที่มีมายาวนานพร้อมให้ดูตัวอย่างแล้ว จุดเด่นของเวอร์ชันใหม่ ได้แก่ การดำเนินการแบบขนานและความสามารถในการพิมพ์คำอธิบาย

การดำเนินการแบบขนานมาในรูปแบบของคุณลักษณะทดลองที่เรียกว่า "Ractor" ซึ่งเป็นนามธรรมการทำงานพร้อมกันแบบจำลองแบบนักแสดงที่มีวัตถุประสงค์เพื่อให้การดำเนินการแบบขนานโดยไม่ต้องกังวลเรื่องความปลอดภัย นักพัฒนาสามารถสร้างแรร์เตอร์หลายตัวและรันแบบขนานกันได้ โปรแกรมคู่ขนานเหล่านี้สามารถทำให้เธรดปลอดภัยได้เนื่องจาก ractors ไม่สามารถแบ่งปันวัตถุปกติได้ การสื่อสารระหว่าง ractors ได้รับการสนับสนุนโดยการส่งข้อความ

Ruby 3.0.0 ยังแนะนำ RBS ซึ่งเรียกเก็บเงินเป็นภาษาเพื่ออธิบายประเภทของโปรแกรม Ruby Ruby 3.0.0 มาพร้อมกับอัญมณี rbs ซึ่งอนุญาตให้แยกวิเคราะห์และประมวลผลคำจำกัดความประเภทที่เขียนด้วย RBS ตัวตรวจสอบประเภทรวมถึง type profilers และเครื่องมืออื่น ๆ ที่รองรับ RBS จะเข้าใจโปรแกรม Ruby ได้ดีขึ้นด้วยคำจำกัดความ RBS

RBS มีไว้เพื่อรองรับรูปแบบที่พบเห็นได้ทั่วไปในโปรแกรม Ruby ประเภทขั้นสูงสามารถเขียนได้รวมถึงประเภทยูเนี่ยนวิธีการโอเวอร์โหลดและข้อมูลทั่วไป นอกจากนี้ยังรองรับการพิมพ์เป็ดด้วยประเภทอินเทอร์เฟซ 

นอกเหนือจาก Ractor และ RBS แล้วรุ่น Ruby 3.0.0 ยังมีกำหนดให้นำเสนอความสามารถอื่น ๆ อีกมากมาย:

  • ตัวกำหนดตารางเวลายังอยู่ในขั้นทดลองเพื่อสกัดกั้นการดำเนินการบล็อก ระบุว่าเป็นThread#schedulerความสามารถนี้ช่วยให้สามารถใช้งานพร้อมกันได้โดยไม่ต้องเปลี่ยนรหัสที่มีอยู่
  • มุมมองหน่วยความจำซึ่งเป็นคุณลักษณะการทดลองอื่นคือชุด C-API เพื่อแลกเปลี่ยนพื้นที่หน่วยความจำดิบเช่นอาร์เรย์ตัวเลขหรือภาพบิตแมประหว่างไลบรารีส่วนขยาย ไลบรารีเหล่านี้ยังสามารถแชร์ข้อมูลเมตาของพื้นที่หน่วยความจำที่ประกอบด้วยรูปร่างรูปแบบองค์ประกอบ ฯลฯ
  • ปรับปรุงประสิทธิภาพในคอมไพเลอร์ Ruby MJIT (Just In Time)
  • การแยกอาร์กิวเมนต์คำหลักจากอาร์กิวเมนต์อื่น ๆ
  • Hash#except สร้างขึ้นใน.
  • คำสั่งมอบหมายที่ถูกต้อง
  • นิยามวิธีการที่ไม่มีที่สิ้นสุด
  • เพิ่มรูปแบบการค้นหา

เปิดตัวเมื่อวันที่ 25 กันยายนสามารถดาวน์โหลดตัวอย่าง Ruby 3.0.0 ได้จาก ruby-lang.org สำหรับการแสดงตัวอย่างครั้งที่สองผู้สร้างของ Ruby วางแผนที่จะรวม type profiler ซึ่งทำหน้าที่เป็นคุณสมบัติการวิเคราะห์แบบคงที่ Ruby เวอร์ชันเสถียรในปัจจุบันคือเวอร์ชัน 2.7.1 และ 2.6.6