- เพิ่ม parser ใหม่ Prism: เป็น recursive descent parser ที่พร้อมใช้งานใน production และมาแทนที่ Ripper
- เปลี่ยน parser generator จาก Bison เป็น Lrama: รองรับ error-tolerant ใช้งานได้ดี ดูแลรักษาง่าย และเป็น Universal parser ที่สามารถนำไปใช้กับเครื่องมืออื่นได้
- ปรับปรุงประสิทธิภาพของ YJIT: เร็วขึ้นและใช้หน่วยความจำน้อยลง
- เพิ่ม RJIT ซึ่งเป็น JIT compiler ที่เขียนด้วย Ruby ล้วน และมาแทนที่ MJIT: รองรับเฉพาะ x86-64 แต่ต่างจาก MJIT ตรงที่ไม่ต้องใช้ C compiler ระหว่าง runtime ตอนนี้ยังเป็นฟีเจอร์สำหรับการทดลอง และใน production ควรใช้ YJIT
- เพิ่มตัวจัดตารางเวลาเธรดแบบ M:N: จัดการ Ruby thread จำนวน M ตัวด้วย native thread (OS thread) จำนวน N ตัว จึงช่วยลดต้นทุนในการสร้างและจัดการเธรด
2 ความคิดเห็น
ดูเหมือนว่า
RUBY_GC_HEAP_INIT_SLOTSก็ถูกแทนที่ด้วยRUBY_GC_HEAP_INIT_SIZE_%d_SLOTSเหมือนกันนะครับ จุดที่เคยจูน GC ไว้คงต้องเปลี่ยนกันหน่อยแล้วhttps://bugs.ruby-lang.org/issues/19785
ตามธรรมเนียมที่เปิดตัวทุกวันที่ 25/12 ของทุกปี ปีนี้ก็มี 3.3 ออกมาแล้วเช่นกัน