2 คะแนน โดย xguru 2023-12-26 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เพิ่ม 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 ความคิดเห็น

 
heka1024 2023-12-28

ดูเหมือนว่า RUBY_GC_HEAP_INIT_SLOTS ก็ถูกแทนที่ด้วย RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS เหมือนกันนะครับ จุดที่เคยจูน GC ไว้คงต้องเปลี่ยนกันหน่อยแล้ว

https://bugs.ruby-lang.org/issues/19785

 
xguru 2023-12-26

ตามธรรมเนียมที่เปิดตัวทุกวันที่ 25/12 ของทุกปี ปีนี้ก็มี 3.3 ออกมาแล้วเช่นกัน