stringtranslate.com

Руби МРТ

Юкихиро Мацумото, создатель Ruby.

Интерпретатор 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 могут отличаться):

Этот список может быть неполным.

Производительность PowerPC64
Начиная с версии 2.2.1, [13] производительность Ruby MRI на PowerPC64 была улучшена. [14] [15] [16]

Ограничения

К часто отмечаемым ограничениям относятся:

Обратная совместимость
Версии 1.9 и 1.8 имеют небольшие семантические различия. [17] Выпуск Ruby 2.0 был направлен на то, чтобы избежать подобного конфликта между различными версиями. [18]

Поточные программы не могут использовать более одного ядра ЦП из-за глобальной блокировки интерпретатора .

Смотрите также

Ссылки

  1. ^ "Ruby-1.8.0 выпущен!" . Получено 12 января 2018 г. .
  2. ^ "Ruby 1.8.7 Released" . Получено 24 марта 2023 г. .
  3. ^ "ISO - ISO/IEC 30170:2012 - Информационные технологии — Языки программирования — Ruby". iso.org . Получено 24 марта 2023 г. .
  4. ^ ab Брайан Шираи (31 декабря 2014 г.). «Разработчики Ruby Matz не используют RubySpec, и это вредит Ruby». Блог Rubinius . Получено 16 ноября 2015 г.
  5. ^ Мацумото, Юкихиро (26 декабря 2007 г.). "Тема: [ANN] Выпущен Ruby 1.9.0". Архивировано из оригинала 2007-12-30.
  6. ^ Брюс Стюарт (29 ноября 2001 г.). «Интервью с создателем Ruby». linuxdevcenter.com . O'Reilly . Получено 22 февраля 2014 г. .
  7. ^ shyouhei (30 июня 2013 г.). "Мы прекращаем поддержку Ruby 1.8.7". ruby-lang.org . Получено 22 февраля 2014 г. .
  8. ^ Musha, Akinori (2008-05-26). "Ruby Core: Ruby 1.8.7-preview4 has been released" . Получено 2008-05-30 . Новая версия Ruby включает в себя множество исправлений ошибок, множество улучшений функций и некоторые улучшения производительности по сравнению с 1.8.6, сохраняя при этом высокую степень стабильности и обратной совместимости с предыдущей версией, хотя необходимо продолжать прилагать усилия для принятия RubySpec.
  9. ^ "1.8.7 НОВОСТИ" . Получено 2008-05-30 .
  10. ^ Yugui (18 августа 2010 г.). "Ruby 1.9.2 выпущен". ruby-lang.org . Получено 22 февраля 2014 г. .
  11. ^ "Лицензия Ruby". ruby-lang.org . Получено 22 февраля 2014 г. .
  12. ^ "Ruby 1.9.3 Release News". ruby-lang.org . Получено 22 февраля 2014 г. .
  13. ^ Густаво Фредерико Темпл Педроса, Витор де Лима, Леонардо Бьянкони (2015). «Выпущен Ruby 2.2.1» . Проверено 12 июля 2016 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  14. ^ Густаво Фредерико Темпл Педроса, Витор де Лима, Леонардо Бьянкони (2015). «Журнал изменений v2.2.1» . Проверено 12 июля 2016 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  15. ^ Густаво Фредерико Темпл Педроса, Витор де Лима, Леонардо Бьянкони (2014). «Указание неизменяемых регистров для повышения производительности в ppc64» . Получено 12 июля 2016 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  16. ^ Густаво Фредерико Темпл Педроса, Витор де Лима, Леонардо Бьянкони (2014). «Указание МАКРОСА для повышения производительности в ppc64» . Проверено 12 июля 2016 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  17. Рик ДеНатале (26 декабря 2007 г.). "Ruby 1.9 released". Infoq.com . Получено 22 февраля 2014 г. .
  18. Юсукэ Эндо (24 февраля 2013 г.). «Ruby 2.0.0-p0 выпущен». ruby-lang.org . Получено 22 февраля 2014 г. .

Внешние ссылки