Se ha lanzado mruby 3.0, un intérprete embebido del lenguaje de programación orientado a objetos dinámico Ruby. Mruby garantiza la compatibilidad de sintaxis con Ruby 1.9, pero también soporta algunas características de versiones más nuevas. El intérprete se destaca por su bajo consumo de memoria y la posibilidad de integrarse en otras aplicaciones. Además, soporta la compilación de programas Ruby en bytecode mediante el compilador «mrbc» desarrollado por el proyecto. El código de mruby se distribuye bajo la licencia MIT.
En esta nueva versión, se ha reducido significativamente el consumo de memoria utilizada en la máquina virtual mruby. Las versiones anteriores requerían varios cientos de KB de RAM, mientras que mruby 3.0 consume alrededor de 100 KB de RAM. Mejores mejoras:
- Se ha reducido el consumo de RAM mediante la optimización de la asignación de memoria para objetos de la clase Symbols. Se ha disminuido el consumo de memoria por objetos de la clase Hash. Se ha optimizado la llamada a métodos.
- Se ha añadido soporte para la definición de métodos en una sola línea sin usar la palabra clave «end»: def square(x) = x * x
- Se ha añadido el operador «=>» (valores => variable), que se utiliza para la asignación de valores en el lado derecho. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Soporte para la construcción heredocs.
- Se han actualizado los archivos de construcción del intérprete. Se ha añadido compilación con gprof. GCC ahora puede compilar en modo de 32 bits en plataformas de 64 bits. Ha aparecido soporte para Address Sanitizer en clang.
- Cambio que rompe la compatibilidad: la constante RITE_VM_VER ahora tiene el valor 0300, y RITE_BINARY_FORMAT_VER es 0200, lo que excluye la posibilidad de ejecutar bytecode de versiones anteriores.
- La clase Fixnum se ha convertido en parte de Integer, al igual que en Ruby 3.0. La clase Integral ha sido eliminada.
Fuente: opennet.ru
