Va tenir lloc el llançament de mruby 3.0, un intèrpret integrat per al llenguatge de programació dinàmic orientat a objectes Ruby. Mruby proporciona compatibilitat de sintaxi al nivell de Ruby 1.9, però també admet funcions seleccionades de les versions més noves. L'intèrpret es caracteritza per un baix consum de memòria i la capacitat d'integrar-se en altres aplicacions. A més, la compilació de programes Ruby en bytecode és compatible amb el compilador "mrbc" desenvolupat pel projecte. El codi mruby es distribueix sota la llicència MIT.
La nova versió redueix significativament el consum de memòria de mruby VM. Les versions anteriors requerien diversos centenars de KB de RAM i mruby 3.0 consumeix uns 100 KB de RAM. Millores clau:
- Reducció del consum de memòria RAM optimitzant l'assignació de memòria per als objectes de la classe Símbols. Reducció del consum de memòria dels objectes de classe Hash. Les trucades de mètodes s'han optimitzat.
- S'ha afegit suport per a la definició del mètode d'una línia sense utilitzar la paraula clau "end": def square(x) = x * x
- S'ha afegit l'operador "=>" (valors => variable), que s'utilitza per a l'assignació de valors per la dreta. 0 => apa #=> 0 {b: 0, c: 1} => {b:} pb #=> 0
- Suport al disseny Heredocs.
- Els fitxers de compilació de l'intèrpret s'han actualitzat. S'ha afegit una compilació amb gprof. GCC ara es pot compilar en mode de 32 bits en plataformes de 64 bits. S'ha afegit suport per a Address Sanitizer a clang.
- Canvi de compatibilitat: la constant RITE_VM_VER ara té un valor de 0300, i RITE_BINARY_FORMAT_VER té un valor de 0200, la qual cosa elimina la possibilitat d'executar bytecode de versions anteriors.
- La classe Fixnum va passar a formar part d'Integer, igual que a Ruby 3.0. S'ha eliminat la classe Integral.
Font: opennet.ru
