Интерпретатор Ruby Matz или Ruby MRI (также называемый CRuby ) — это реализация языка программирования Ruby, названная в честь создателя Ruby Юкихиро Мацумото («Matz»). До спецификации языка Ruby в 2012 году [3] реализация MRI считалась фактическим эталоном , особенно после того, как независимая попытка создания спецификации ( RubySpec ) потерпела неудачу. [4] Начиная с Ruby 1.9 и продолжая Ruby 2.x и выше, официальным интерпретатором Ruby является YARV («Yet Another Ruby VM»). [5]
Ruby 1.8 — последняя версия, использующая МРТ.
Юкихиро Мацумото («Matz») начал работать над Ruby 24 февраля 1993 года и выпустил его для публики в 1995 году. «Ruby» был назван драгоценным камнем из-за шутки в кругу друзей Мацумото, намекающей на название языка программирования Perl . [6]
Ветка 1.8 поддерживалась до июня 2013 года, [7] а версии 1.8.7 были выпущены с апреля 2008 года. [8] [9] Эта версия содержит исправления ошибок, а также множество улучшений функций Ruby.
Проект RubySpec независимо создал большой тестовый набор, который охватывает поведение 1.8.6/1.8.7/1.9 в качестве эталонного инструмента соответствия. Ruby MRI 1.9.2 прошел более 99% RubySpec. [10] MRI Ruby 2.2 рухнул на одном из тестов. В результате ограниченного внедрения разработчиками MRI проект RubySpec был прекращен в конце 2014 года. [4]
До версии 1.9.3 интерпретатор и библиотеки Ruby распространялись как свободное программное обеспечение с открытым исходным кодом под двойной лицензией GNU General Public License или Ruby License. [11] В версии 1.9.3 лицензия Ruby была изменена с двойной лицензии GPLv2 на двойную лицензию с лицензией BSD из 2 пунктов . [12]
Ruby MRI доступен для следующих операционных систем (поддерживаемые версии Ruby могут отличаться):
Этот список может быть неполным.
К часто отмечаемым ограничениям относятся:
Поточные программы не могут использовать более одного ядра ЦП из-за глобальной блокировки интерпретатора .
Новая версия Ruby включает в себя множество исправлений ошибок, множество улучшений функций и некоторые улучшения производительности по сравнению с 1.8.6, сохраняя при этом высокую степень стабильности и обратной совместимости с предыдущей версией, хотя необходимо продолжать прилагать усилия для принятия RubySpec.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )