Ieviests mruby 3.2, iegultÄ tulka dinamiskajai objektorientÄtai programmÄÅ”anas valodai Ruby izlaiÅ”anai. Mruby nodroÅ”ina pamata sintakses saderÄ«bu Ruby 3.x lÄ«menÄ«, izÅemot atbalstu modeļu saskaÅoÅ”anai (ācase .. inā). Tulkam ir mazs atmiÅas patÄriÅÅ”, un tas ir vÄrsts uz Ruby valodas atbalsta iegulÅ”anu citÄs lietojumprogrammÄs. LietojumprogrammÄ iebÅ«vÄtais tulks var izpildÄ«t gan pirmkodu Ruby valodÄ, gan baitkodu, kas iegÅ«ts, izmantojot projekta izstrÄdÄto kompilatoru āmrbcā. Mruby pirmkods tiek izplatÄ«ts saskaÅÄ ar MIT licenci.
JaunajÄ laidienÄ ir novÄrstas 19 ievainojamÄ«bas, kas var izraisÄ«t bufera pÄrpildes, nulles rÄdÄ«tÄju atsauÄu vai piekļuvi atmiÅai pÄc atbrÄ«voÅ”anas, kad tulks apstrÄdÄ Ä«paÅ”i formatÄtu Ruby kodu.
Ar droŔību nesaistÄ«tas izmaiÅas ietver:
- Atbalsts anonīmu argumentu nodoŔanai (*, **, &),
- Atbalsts lieliem veseliem skaitļiem (mruby-bigint).
- Atbalsts kompilÄtu binÄro failu lejupielÄdei ar paplaÅ”inÄjumu ".mrb".
- Pievienojot opciju "--no-optimize", lai atspÄjotu optimizÄciju mrbc kompilatorÄ.
- Metožu Class#subclasses un Module#undefined_instance_methods ievieŔana mruby-class-ext.
- Jaunas iebÅ«vÄtÄs bibliotÄkas mruby-errno, mruby-set, mruby-dir un mruby-data.
Avots: opennet.ru
