Ruby MRI

Last updated
Ruby
Developer(s) Yukihiro Matsumoto (among others)
Initial release04.08.2003 [1]
Final release
1.8.7 / 31 May 2008 [2]
Repository
Written in C
Operating system Cross-platform
Successor YARV
Type Ruby programming language interpreter
License Ruby License
Simplified BSD License
GNU General Public License (prior to 1.9.3)
Website www.ruby-lang.org
Yukihiro Matsumoto, the creator of Ruby. Yukihiro Matsumoto.JPG
Yukihiro Matsumoto, the creator of Ruby.

Matz's Ruby Interpreter or Ruby MRI (also called CRuby) is an implementation of the Ruby programming language named after Ruby creator Yukihiro Matsumoto ("Matz"). Until the specification of the Ruby language in 2012, [3] the MRI implementation was considered the de facto reference, especially since an independent attempt to create the specification (RubySpec) had failed. [4] Starting with Ruby 1.9, and continuing with Ruby 2.x and above, the official Ruby interpreter has been YARV ("Yet Another Ruby VM"). [5]

Contents

Ruby 1.8 is the last version that uses MRI.

History

Yukihiro Matsumoto ("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. [6]

The 1.8 branch has been maintained until June 2013, [7] and 1.8.7 releases have been released since April 2008. [8] [9] This version provides bug fixes, but also many Ruby feature enhancements.

The RubySpec 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., [10] 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. [4]

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 or the Ruby License. [11] In release 1.9.3, Ruby's License has been changed from a dual license with GPLv2 to a dual license with the 2-clause BSD license. [12]

Operating systems

Ruby MRI is available for the following operating systems (supported Ruby versions can be different):

This list may not be exhaustive.

PowerPC64 performance
Since version 2.2.1, [13] Ruby MRI performance on PowerPC64 was improved. [14] [15] [16]

Limitations

Commonly noted limitations include:

Backward compatibility
Version 1.9 and 1.8 have slight semantic differences. [17] The release of Ruby 2.0 sought to avoid such a conflict between different versions. [18]

Threaded programs cannot use more than a single CPU core due to the Global interpreter lock.

See also

Related Research Articles

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

<span class="mw-page-title-main">Vim (text editor)</span> Improved version of the Vi keyboard-oriented text editor

Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.

<span class="mw-page-title-main">Yukihiro Matsumoto</span> Japanese computer scientist (born 1965)

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 brought about a motto in the Ruby community: "Matz is nice and so we are nice," commonly abbreviated as MINASWAN.

<span class="mw-page-title-main">Mac OS X Server</span> Server software for macOS

Mac OS X Server is a series of discontinued Unix-like server operating systems developed by Apple Inc. based on macOS. It provided server functionality and system administration tools, and tools to manage both macOS-based computers and iOS-based devices, network services such as a mail transfer agent, AFP and SMB servers, an LDAP server, and a domain name server, as well as server applications including a Web server, database, and calendar server.

<span class="mw-page-title-main">Ghostscript</span> Interpreter for the PostScript language

Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language files, for the display or printing of document pages, and the conversion between PostScript and PDF files.

<span class="mw-page-title-main">4DOS</span> Command line interpreter

4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in Microsoft DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has a large number of enhancements.

<span class="mw-page-title-main">Ruby on Rails</span> Server-side open source web application framework

Ruby on Rails is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer and HTML, CSS and JavaScript for user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.

JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code.

why the lucky stiff Artist and computer programmer

Jonathan Gillette, known by the pseudonym why the lucky stiff, is a writer, cartoonist, artist, and programmer notable for his work with the Ruby programming language. Annie Lowrey described him as "one of the most unusual, and beloved, computer programmers" in the world. Along with Yukihiro Matsumoto and David Heinemeier Hansson, he was seen as one of the key figures in the Ruby community. His pseudonym might allude to the exclamation "Why, the lucky stiff!" from The Fountainhead by Ayn Rand.

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.

<span class="mw-page-title-main">Sony NEWS</span> UNIX workstation series

The Sony NEWS is a series of Unix workstations sold during the late 1980s and 1990s. The first NEWS machine was the NWS-800, which originally appeared in Japan in January 1987 and was conceived as a desktop replacement for the VAX series of minicomputers.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

Rubinius is an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius seeks to "provide a rich, high-performance environment for running Ruby code."

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET Framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.

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 can execute basic operations at a time. As a general rule, an interpreter that uses GIL will see only one thread to execute at a time, even if it runs on a multi-core processor, although some implementations provide for CPU intensive code to release the GIL, allowing multiple threads to use multiple cores. Some popular interpreters that have GIL are CPython and Ruby MRI.

<span class="mw-page-title-main">S-Lang</span> Software library and scripting language

The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applications. The latter class of functions include routines for constructing and manipulating keymaps, an interactive line-editing facility, and both low- and high-level screen/terminal management functions. It is distributed under the terms of the GNU General Public License.

oVirt Free, open-source virtualization management platform

oVirt is a free, open-source virtualization management platform. It was founded by Red Hat as a community project on which Red Hat Virtualization is based. It allows centralized management of virtual machines, compute, storage and networking resources, from an easy-to-use web-based front-end with platform independent access. KVM on x86-64, PowerPC64 and s390x architecture are the only hypervisors supported, but there is an ongoing effort to support ARM architecture in a future releases.

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:

mruby Lightweight Ruby language implementation

mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable. The project is headed by Yukihiro Matsumoto, with over 100 contributors currently working on the project.

The history of the Ruby programming language began when Yukihiro Matsumoto first conceived of the language in 1993, then released it in 1995. Annual releases of the language often take place on Christmas Day. Interest in the language surged around 2005 because of the Ruby on Rails framework.

References

  1. "Ruby-1.8.0 released!" . Retrieved 12 January 2018.
  2. "Ruby 1.8.7 Released" . Retrieved 24 March 2023.
  3. "ISO - ISO/IEC 30170:2012 - Information technology — Programming languages — Ruby". iso.org. Retrieved 24 March 2023.
  4. 1 2 Brian Shirai (31 December 2014). "Matz's Ruby Developers Don't Use RubySpec and It's Hurting Ruby". Rubinius blog. Retrieved 16 November 2015.
  5. Matsumoto, Yukihiro (26 Dec 2007). "Subject: [ANN] Ruby 1.9.0 is released". Archived from the original on 2007-12-30.
  6. Bruce Stewart (2001-11-29). "An Interview with the Creator of Ruby". linuxdevcenter.com. O'Reilly. Retrieved 22 February 2014.
  7. shyouhei (30 Jun 2013). "We retire Ruby 1.8.7". ruby-lang.org. Retrieved 22 February 2014.
  8. Musha, Akinori (2008-05-26). "Ruby Core: Ruby 1.8.7-preview4 has been released" . Retrieved 2008-05-30. The new version of Ruby includes many bug fixes, lots of feature enhancements and some performance improvements since 1.8.6 while maintaining stability and backward compatibility with the previous release to a high degree, although there are ongoing efforts that need to be done toward adopting RubySpec.
  9. "1.8.7 NEWS" . Retrieved 2008-05-30.
  10. Yugui (18 Aug 2010). "Ruby 1.9.2 is released". ruby-lang.org. Retrieved 22 February 2014.
  11. "Ruby License". ruby-lang.org. Retrieved 22 February 2014.
  12. "Ruby 1.9.3 Release News". ruby-lang.org. Retrieved 22 February 2014.
  13. Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2015). "Ruby 2.2.1 Released" . Retrieved 12 July 2016.{{cite web}}: CS1 maint: multiple names: authors list (link)
  14. Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2015). "v2.2.1 ChangeLog" . Retrieved 12 July 2016.{{cite web}}: CS1 maint: multiple names: authors list (link)
  15. Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2014). "Specifying non volatile registers for increase performance in ppc64" . Retrieved 12 July 2016.{{cite web}}: CS1 maint: multiple names: authors list (link)
  16. Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2014). "Specifying MACRO for increase performance in ppc64" . Retrieved 12 July 2016.{{cite web}}: CS1 maint: multiple names: authors list (link)
  17. Rick DeNatale (December 26, 2007). "Ruby 1.9 released". Infoq.com. Retrieved 22 February 2014.
  18. Yusuke Endoh (24 February 2013). "Ruby 2.0.0-p0 is released". ruby-lang.org. Retrieved 22 February 2014.