El intérprete Ruby de Matz o Ruby MRI (también llamado CRuby ) es una implementación del lenguaje de programación Ruby que lleva el nombre del creador de Ruby, Yukihiro Matsumoto ("Matz"). Hasta la especificación del lenguaje Ruby en 2012, [3] la implementación de MRI se consideraba la referencia de facto , especialmente porque un intento independiente de crear la especificación ( RubySpec ) había fracasado. [4] A partir de Ruby 1.9 y continuando con Ruby 2.x y posteriores, el intérprete Ruby oficial ha sido YARV ("Yet Another Ruby VM"). [5]
Ruby 1.8 es la última versión que utiliza MRI.
Yukihiro Matsumoto ("Matz") comenzó a trabajar en Ruby el 24 de febrero de 1993 y lo lanzó al público en 1995. "Ruby" recibió el nombre de piedra preciosa debido a una broma dentro del círculo de amigos de Matsumoto que aludía al nombre del lenguaje de programación Perl . [6]
La rama 1.8 se mantuvo hasta junio de 2013, [7] y se lanzaron versiones 1.8.7 desde abril de 2008. [8] [9] Esta versión proporciona correcciones de errores, pero también muchas mejoras de funciones de Ruby.
El proyecto RubySpec ha creado de forma independiente un conjunto de pruebas de gran tamaño que captura el comportamiento de las versiones 1.8.6/1.8.7/1.9 como herramienta de conformidad de referencia. Ruby MRI 1.9.2 aprobó más del 99 % de RubySpec. [10] MRI Ruby 2.2 falló en una de las pruebas. Como resultado de la limitada aceptación por parte de los desarrolladores de MRI, el proyecto RubySpec se suspendió a fines de 2014. [4]
Antes de la versión 1.9.3, el intérprete y las bibliotecas de Ruby se distribuían como software libre y de código abierto con doble licencia , bajo la Licencia Pública General GNU o la Licencia Ruby. [11] En la versión 1.9.3, la Licencia de Ruby ha cambiado de una licencia dual con GPLv2 a una licencia dual con la licencia BSD de 2 cláusulas . [12]
Ruby MRI está disponible para los siguientes sistemas operativos (las versiones de Ruby compatibles pueden ser diferentes):
Esta lista puede no ser exhaustiva.
Las limitaciones más comunes incluyen:
Los programas con subprocesos no pueden utilizar más de un núcleo de CPU debido al bloqueo del intérprete global .
nueva versión de Ruby incluye muchas correcciones de errores, muchas mejoras de funciones y algunas mejoras de rendimiento desde la versión 1.8.6, manteniendo la estabilidad y la compatibilidad con versiones anteriores en un alto grado, aunque hay esfuerzos en curso que deben realizarse para adoptar RubySpec.
{{cite web}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite web}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite web}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite web}}
: CS1 maint: varios nombres: lista de autores ( enlace )