Bylo vydáno mruby 3.0, vestavěného interpretu dynamického objektově orientovaného programovacího jazyka Ruby. Mruby zajišťuje syntaktickou kompatibilitu na úrovni Ruby 1.9, ale také podporuje jednotlivé funkce z novějších verzí. Interpret se vyznačuje nízkou spotřebou paměti a možností vestavění do jiných aplikací. Dále je podporována kompilace Ruby programů do bajtkódu pomocí vyvíjeného kompilátoru „mrbc“. Kód mruby se distribuuje pod licencí MIT.
V nové verzi byla výrazně snížena spotřeba paměti, kterou používá mruby VM. Předchozí verze vyžadovaly několik stovek KB operační paměti, zatímco mruby 3.0 spotřebovává přibližně 100 KB RAM. Hlavní vylepšení:
- Snížena spotřeba operační paměti optimalizací alokace paměti pro objekty třídy Symbols. Snížena spotřeba paměti objekty třídy Hash. Byla optimalizována volání metod.
- Byla přidána podpora pro jednořádkové definice metod bez použití klíčového slova „end“: def square(x) = x * x
- Byl přidán operátor „=>“ (hodnoty => proměnná), který se používá pro pravostranné přidělování hodnot. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Podpora konstrukce heredocs.
- Aktualizovány soubory pro sestavení interpretu. Přidána kompilace s gprof. GCC nyní může kompilovat v 32bitovém režimu na 64bitových platformách. Přidána podpora Address Sanitizer v clang.
- Změna, která narušuje zpětnou kompatibilitu: konstanta RITE_VM_VER nyní má hodnotu 0300, a RITE_BINARY_FORMAT_VER — 0200, což vylučuje možnost vykonávání bajtkódu z minulých verzí.
- Třída Fixnum se stala součástí Integer, stejně jako v Ruby 3.0. Třída Integral byla odstraněna.
Zdroj: opennet.ru
