Ruby Interpreter de Matz o Ruby MRI (también llamado CRuby ) fue la implementación de referencia 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 2011, [ cita requerida ] la implementación de MRI se consideraba la referencia de facto , especialmente porque un intento independiente de crear la especificación ( RubySpec ) había fallado. [3] Comenzando con Ruby 1.9 y continuando con Ruby 2.xy superior, el intérprete oficial de Ruby ha sido YARV ("Otro Ruby VM más").
Desarrollador (es) | Yukihiro Matsumoto (entre otros) |
---|---|
Versión inicial | 04.08.2003 [1] |
Lanzamiento estable | 2.7.0 / 25.12.2019 [2] |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Intérprete del lenguaje de programación Ruby |
Licencia | Licencia Ruby Licencia BSD simplificada Licencia pública general GNU (anterior a 1.9.3) |
Sitio web | www |
La última versión estable es Ruby 3.0.0 [4]
Historia
Yukihiro Matsumoto ("Matz") comenzó a trabajar en Ruby el 24 de febrero de 1993 y lo lanzó al público en 1995. "Ruby" fue nombrado como una piedra preciosa debido a una broma dentro del círculo de amigos de Matsumoto aludiendo al nombre de Perl. lenguaje de programación. [5]
La rama 1.8 se ha mantenido hasta junio de 2013, [6] y las versiones 1.8.7 se han lanzado desde abril de 2008. [7] [8] Esta versión proporciona correcciones de errores, pero también muchas mejoras en las funciones de Ruby.
El proyecto RubySpec ha creado de forma independiente un gran conjunto de pruebas que captura el comportamiento 1.8.6 / 1.8.7 / 1.9 como una herramienta de conformidad de referencia. Ruby MRI 1.9.2 superó el 99% de RubySpec., [9] MRI Ruby 2.2 falló en una de las pruebas. Como resultado de la aceptación limitada por parte de los desarrolladores de MRI, el proyecto RubySpec se suspendió a fines de 2014. [3]
Términos de licencia
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. [10] En la versión 1.9.3, la Licencia de Ruby se ha cambiado de una licencia dual con GPLv2 a una licencia dual con la licencia BSD de 2 cláusulas . [11]
Sistemas operativos
Ruby MRI está disponible para los siguientes sistemas operativos (las versiones compatibles de Ruby pueden ser diferentes):
Es posible que esta lista no sea exhaustiva.
- Rendimiento de PowerPC64
- Desde la versión 2.2.1, [12] se mejoró el rendimiento de Ruby MRI en PowerPC64 . [13] [14] [15]
Crítica
Las limitaciones comúnmente observadas incluyen:
- Compatibilidad con versiones anteriores
- Las versiones 1.9 y 1.8 tienen ligeras diferencias semánticas. [16] El lanzamiento de Ruby 2.0 buscó evitar tal conflicto entre diferentes versiones. [17]
Los programas con subprocesos no pueden utilizar más de un núcleo de CPU debido al bloqueo de intérprete global .
Ver también
- YARV
Referencias
- ^ "¡Ruby-1.8.0 lanzado!" . Consultado el 12 de enero de 2018 .
- ^ "Ruby 2.7.0 lanzado" . Consultado el 7 de enero de 2020 .
- ^ a b Brian Shirai (31 de diciembre de 2014). "Los desarrolladores de Ruby de Matz no usan RubySpec y está dañando a Ruby" . Blog de Rubinius . Consultado el 16 de noviembre de 2015 .
- ^ "Ruby 3.0.0 lanzado" . ruby-lang.org . 2021-01-03 . Consultado el 3 de enero de 2021 .
- ^ Bruce Stewart (29 de noviembre de 2001). "Una entrevista con el creador de Ruby" . linuxdevcenter.com . O'Reilly . Consultado el 22 de febrero de 2014 .
- ^ shyouhei (30 de junio de 2013). "Retiramos Ruby 1.8.7" . ruby-lang.org . Consultado el 22 de febrero de 2014 .
- ^ Musha, Akinori (26 de mayo de 2008). "Ruby Core: Ruby 1.8.7-preview4 ha sido lanzado" . Consultado el 30 de mayo de 2008 .
La nueva versión de Ruby incluye muchas correcciones de errores, muchas mejoras de funciones y algunas mejoras de rendimiento desde 1.8.6 mientras se mantiene la estabilidad y la compatibilidad con la versión anterior en un alto grado, aunque hay esfuerzos continuos que deben realizarse para adoptar RubySpec .
- ^ "1.8.7 NOTICIAS" . Consultado el 30 de mayo de 2008 .
- ^ Yugui (18 de agosto de 2010). "Lanzamiento de Ruby 1.9.2" . ruby-lang.org . Consultado el 22 de febrero de 2014 .
- ^ "Licencia Ruby" . ruby-lang.org . Consultado el 22 de febrero de 2014 .
- ^ "Ruby 1.9.3 Release News" . ruby-lang.org . Consultado el 22 de febrero de 2014 .
- ^ Templo Gustavo Frederico Pedrosa, Vitor de Lima, Leonardo Bianconi (2015). "Ruby 2.2.1 lanzado" . Consultado el 12 de julio de 2016 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Templo Gustavo Frederico Pedrosa, Vitor de Lima, Leonardo Bianconi (2015). "v2.2.1 ChangeLog" . Consultado el 12 de julio de 2016 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Templo Gustavo Frederico Pedrosa, Vitor de Lima, Leonardo Bianconi (2014). "Especificación de registros no volátiles para aumentar el rendimiento en ppc64" . Consultado el 12 de julio de 2016 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Templo Gustavo Frederico Pedrosa, Vitor de Lima, Leonardo Bianconi (2014). "Especificación de MACRO para aumentar el rendimiento en ppc64" . Consultado el 12 de julio de 2016 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Rick DeNatale (26 de diciembre de 2007). "Ruby 1.9 lanzado" . Infoq.com . Consultado el 22 de febrero de 2014 .
- ^ Yusuke Endoh (24 de febrero de 2013). "Lanzamiento de Ruby 2.0.0-p0" . ruby-lang.org . Consultado el 22 de febrero de 2014 .
enlaces externos
- Página web oficial