Megjelent a mruby 3.0, a Ruby dinamikus objektum-orientált programozási nyelvének beágyazható interpreterje. A mruby szintaxis kompatibilitást biztosít a Ruby 1.9 szintjén, de támogat egyes újabb verziókból származó funkciókat is. Az interpreter alacsony memóriafogyasztásról és más alkalmazásokba való beágyazhatóságról ismert. Ezen kívül a Ruby programok bytekódra fordítását is támogatja a "mrbc" nevű projekt által kifejlesztett fordító segítségével. A mruby kódja MIT licenc alatt terjed.
Az új kiadásnál jelentősen csökkent a mruby VM által használt memóriafogyasztás. A korábbi verziók több száz KB RAM-ot igényeltek, míg a mruby 3.0 körülbelül 100 KB-ot fogyaszt. Főbb fejlesztések:
- Csökkent a memóriafogyasztás a Symbol osztályhoz tartozó objektumok memóriaallokációjának optimalizálásával. Csökkent a Hash osztály objektumainak memóriafogyasztása is. Optimalizálták a metódushívásokat.
- Támogatást kaptak az egysoros metódusmeghatározások, a "end" kulcsszó használata nélkül: def square(x) = x * x
- Bevezetésre került a "=>" (értékek => változó) operátor, amely a jobb oldali értékadásra használható. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Heredocs konstrukció támogatása.
- Frissültek az interpreter build fájljai. Gprof fordítás is hozzáadva. A GCC most 32 bites üzemmódot is tud építeni 64 bites platformokon. Address Sanitizer támogatás jelent meg a clang-ban.
- Visszafordíthatatlan változás: a RITE_VM_VER konstans értéke most 0300, és a RITE_BINARY_FORMAT_VER értéke 0200, amely megakadályozza a korábbi verziók bytekódjának végrehajtását.
- A Fixnum osztály az Integer részévé vált, ahogyan az a Ruby 3.0-ban történt. Az Integral osztály eltávolításra került.
Forrás: opennet.ru
