Ruby MRI
Encyclopedia
Matz's Ruby Interpreter or Ruby MRI (also called CRuby) is the reference implementation
of the Ruby programming language
. As there is currently no specification of the Ruby language, the MRI implementation is considered the de facto reference. The RubySpec
project has created a large test suite that captures 1.8.6/1.8.7/1.9 behavior as a reference conformance tool. Ruby MRI 1.9.2 currently passes over 99% of RubySpec.
The latest stable version is Ruby 1.9.2. The developers included the virtual machine provided by the YARV
project, which was merged
into the Ruby source
tree on December 31, 2006, and released as part of Ruby 1.9.
("Matz") started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl
programming language.
The 1.8 branch is still maintained, and 1.8.7 releases have been released since April 2008. This version provides bug fixes, but also many Ruby feature enhancements.
The current stable version of the interpreter 1.9.2 was released on April 18, 2010. The 1.9 series added initial Unicode
support, YARV
with kernel threads (also known as native threads) and significantly improved performance over 1.8.
and open source
licenses GPL
and Ruby License.
s:
This list may not be exhaustive.
Reference implementation
In the software development process, a reference implementation is the standard from which all other implementations, with their attendant customizations, are measured, and to which all improvements are added...
of the Ruby programming language
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
. As there is currently no specification of the Ruby language, the MRI implementation is considered the de facto reference. The RubySpec
RubySpec
The RubySpec project aims to write a complete executable specification for the Ruby programming language. This project contains specs that describe Ruby language syntax and standard library classes. The project contains two main components:...
project has created a large test suite that captures 1.8.6/1.8.7/1.9 behavior as a reference conformance tool. Ruby MRI 1.9.2 currently passes over 99% of RubySpec.
The latest stable version is Ruby 1.9.2. The developers included the virtual machine provided by the YARV
YARV
YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The goal of the project was to greatly reduce the execution time of Ruby programs....
project, which was merged
Merge (revision control)
Merging in revision control, is a fundamental operation that reconciles multiple changes made to a revision-controlled collection of files. Most often, it is necessary when a file is modified by two people on two different computers at the same time...
into the Ruby source
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
tree on December 31, 2006, and released as part of Ruby 1.9.
History
Yukihiro MatsumotoYukihiro Matsumoto
is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Matz's Ruby Interpreter ....
("Matz") started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
programming language.
The 1.8 branch is still maintained, and 1.8.7 releases have been released since April 2008. This version provides bug fixes, but also many Ruby feature enhancements.
The current stable version of the interpreter 1.9.2 was released on April 18, 2010. The 1.9 series added initial Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
support, YARV
YARV
YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The goal of the project was to greatly reduce the execution time of Ruby programs....
with kernel threads (also known as native threads) and significantly improved performance over 1.8.
Licensing terms
The Ruby interpreter and libraries are distributed disjointedly (dual licensed) under the freeFree software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
and open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
licenses GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
and Ruby License.
Operating systems
Ruby MRI is available for the following operating systemOperating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s:
This list may not be exhaustive.
Criticism
Commonly noted limitations include:- Performance -- the Ruby interpreter's performance trails that of comparable languages such as PerlPerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
, and PythonPython (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, mainly due to the design of the interpreter: To execute Ruby code, the interpreter builds a syntax tree from the source code and then evaluates the syntax tree directly, instead of first compiling it into more efficiently executable form. - Backward compatibility -- version 1.9 and 1.8 have slight semantic differences.