มีล่าม mruby 3.2 ในตัว

เปิดตัว mruby 3.2 ซึ่งเป็นล่ามแบบฝังสำหรับภาษาการเขียนโปรแกรมเชิงวัตถุแบบไดนามิก Ruby Mruby จัดเตรียมความเข้ากันได้ทางไวยากรณ์พื้นฐานที่ระดับ Ruby 3.x ยกเว้นการรองรับการจับคู่รูปแบบ (“case ..in”) ล่ามมีการใช้หน่วยความจำน้อยและมุ่งเน้นไปที่การฝังการสนับสนุนภาษา Ruby ลงในแอปพลิเคชันอื่น ล่ามที่สร้างไว้ในแอปพลิเคชันสามารถรันทั้งซอร์สโค้ดในภาษา Ruby และ bytecode ที่ได้รับโดยใช้คอมไพเลอร์ "mrbc" ที่พัฒนาโดยโปรเจ็กต์ ซอร์สโค้ด mruby ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT

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

การเปลี่ยนแปลงที่ไม่เกี่ยวกับความปลอดภัยได้แก่:

  • รองรับการส่งผ่านข้อโต้แย้งที่ไม่ระบุชื่อ (*, **, &)
  • รองรับจำนวนเต็มขนาดใหญ่ (mruby-bigint)
  • รองรับการดาวน์โหลดไบนารีที่คอมไพล์แล้วด้วยนามสกุล ".mrb"
  • การเพิ่มตัวเลือก "--no-optimize" เพื่อปิดใช้งานการปรับให้เหมาะสมในคอมไพเลอร์ mrbc
  • การใช้งานเมธอด Class#subclasses และ Module#undef_instance_methods ใน mruby-class-ext
  • ไลบรารี่ในตัวใหม่ mruby-errno, mruby-set, mruby-dir และ mruby-data

ที่มา: opennet.ru

เพิ่มความคิดเห็น