Izšla je različica mruby 3.0, vgrajenega interpreterja dinamičnega objektno usmerjenega programskega jezika Ruby. Mruby zagotavlja skladnost sintakse na ravni Ruby 1.9, hkrati pa podpira tudi nekatere funkcionalnosti iz novejših različic. Interpreter se ponaša z nizko rabo pomnilnika in možnostjo vgradnje v druge aplikacije. Poleg tega podpora za prevajanje programov Ruby v bajtkodo poteka s pomočjo razvitega prevajalnika „mrbc“. Koda mruby se distribuira pod licenco MIT.
V novi izdaji je bila znatno zmanjšana raba pomnilnika, ki ga uporablja mruby VM. Prejšnje različice so potrebovale več sto KB pomnilnika, medtem ko mruby 3.0 porabi le okoli 100 KB RAM-a. Ključna izboljšanja:
- Zmanjšana poraba pomnilnika z optimizacijo dodeljevanja pomnilnika za objekte razreda Symbols. Zmanjšana poraba pomnilnika z objekti razreda Hash. Potekala je optimizacija klicev metod.
- Dodana je podpora za enovrstično določitev metode brez uporabe ključne besede „end“: def square(x) = x * x
- Dod operator „=>“ (vrednosti => spremenljivka), ki se uporablja za desno stanovanjstvo vrednosti. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Podpora za konstrukcijo heredocs.
- Posodobljeni so bili gradbeni datoteki interpreterja. Dodano je zbiranje s gprof. GCC zdaj lahko gradi v 32-bitnem načinu na 64-bitnih platformah. Pojavila se je podpora za Address Sanitizer v clang.
- Sprememba, ki krši združljivost: konstanta RITE_VM_VER ima zdaj vrednost 0300, RITE_BINARY_FORMAT_VER pa 0200, kar izključuje možnost izvajanja bajtkode prejšnjih različic.
- Razred Fixnum je postal del Integer, tako kot v Ruby 3.0. Odstranjen je razred Integral.
Izvor: opennet.ru
