Ruby MRI
   HOME

TheInfoList



OR:

Matz's Ruby Interpreter or Ruby MRI (also called CRuby) was the
reference implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation o ...
of the
Ruby programming language Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including p ...
named after Ruby creator
Yukihiro Matsumoto , also known as Matz, is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its original reference implementation, Matz's Ruby Interpreter (MRI). His demeanor has brough ...
("Matz"). Until the specification of the Ruby language in 2011, the MRI implementation was considered the ''de facto'' reference, especially since an independent attempt to create the specification (
RubySpec The RubySpec project aimed 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: * th ...
) had failed. Starting with Ruby 1.9, and continuing with Ruby 2.x and above, the official Ruby interpreter has been
YARV YARV (Yet another Ruby VM) 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. Since YARV has become the official R ...
("Yet Another Ruby VM"). The latest stable version is Ruby 3.1.0


History

Yukihiro Matsumoto , also known as Matz, is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its original reference implementation, Matz's Ruby Interpreter (MRI). His demeanor has brough ...
("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 is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
programming language. The 1.8 branch has been maintained until June 2013, and 1.8.7 releases have been released since April 2008. This version provides bug fixes, but also many Ruby feature enhancements. The
RubySpec The RubySpec project aimed 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: * th ...
project has independently 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 passed over 99% of RubySpec., MRI Ruby 2.2 crashed on one of the tests. As a result of the limited uptake by the MRI developers, RubySpec project has been discontinued as of end of 2014.


Licensing terms

Prior to release 1.9.3, the Ruby interpreter and libraries were distributed as dual-licensed free and open source software, under the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
or the Ruby License. In release 1.9.3, Ruby's License has been changed from a dual license with
GPLv2 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
to a dual license with the 2-clause BSD license.


Operating systems

Ruby MRI is available for the following
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s (supported Ruby versions can be different): * Acorn
RISC OS RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn had designed concurrently for use in its new line of Archi ...
* Amiga * BeOS /
Haiku is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 '' on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, and a ''kigo'', or s ...
*
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicat ...
(32-bit) * IBM i *
Internet Tablet OS Maemo is a software platform originally developed by Nokia, now developed by the community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and SDK. Maemo played a key role in Nokia's strategy to c ...
*
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
*
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
* Microsoft Windows 95/98/2000/2003/NT/XP/Vista/7/8/10 * Microsoft
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system subfamily developed by Microsoft as part of its Windows Embedded family of products. Unlike Windows Embedded Standard, which is base ...
*
MorphOS MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale dev ...
*
OS/2 OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 r ...
* OpenVMS * Syllable *
Symbian OS Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS ...
*
Blue Gene/L Blue Gene is an IBM project aimed at designing supercomputers that can reach operating speeds in the petaFLOPS (PFLOPS) range, with low power consumption. The project created three generations of supercomputers, Blue Gene/L, Blue Gene/P, ...
compute node kernel * Most flavors of
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
This list may not be exhaustive. ;PowerPC64 performance: Since version 2.2.1, Ruby MRI performance on PowerPC64 was improved.


Criticism

Commonly noted limitations include: ;Backward compatibility: Version 1.9 and 1.8 have slight semantic differences. The release of Ruby 2.0 sought to avoid such a conflict between different versions. Threaded programs cannot use more than a single CPU core due to the
Global interpreter lock A global interpreter lock (GIL) is a mechanism used in computer-language interpreters to synchronize the execution of threads so that only one native thread (per process) can execute at a time. An interpreter that uses GIL always allows exactly o ...
.


See also

*
YARV YARV (Yet another Ruby VM) 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. Since YARV has become the official R ...


References


External links

* {{DEFAULTSORT:Ruby Mri Free compilers and interpreters Free software programmed in C Ruby (programming language)