Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

MagLev - это альтернативная реализация языка программирования Ruby, построенная на виртуальной машине GemStone / S от GemTalk Systems . Большая часть Maglev должна была быть написана как можно больше на Ruby, что привело к некоторому сотрудничеству с проектом Rubinius. Начиная с первой бета-версии, проект изначально запускает RubyGems 1.3.5 с поддержкой расширений C и Smalltalk . MagLev имеет отличную архитектуру виртуальной машины, которая позволяет ему обмениваться кодом и данными между средами выполнения и циклами выполнения через Ruby API. [2]

Архитектура [ править ]

Maglev работает внутри образа, такого как Smalltalk , предлагая прозрачное сохранение объекта [3] [ неудачная проверка ] [4] для объектов и классов Ruby. Сохраняемость объектов основана на транзакциях ACID, которые позволяют нескольким запущенным экземплярам видеть общий граф объектов. Maglev использует модель параллелизма на основе процессов , сопоставляя потоки Ruby с процессами Smalltalk [5] [ самостоятельно опубликованный источник? ] , которые запланированы на виртуальной машине как зеленые потоки. Использование MagLev должно повысить производительность при использовании Ruby, а также позволить процессам Ruby на нескольких машинах использовать одни и те же объекты одновременно. [6]

Установка [ править ]

MagLev устанавливается вместе с RVM с использованием следующих фрагментов кода, скопированных непосредственно из github maglev. [7]

rvm установить maglevrvm использовать maglev

Статус можно проверить с помощью

$ maglev статус

Совместимость с Ruby [ править ]

Maglev нацелен на Ruby 1.8.7 и запускает значительное количество RubySpec . Он поддерживает несколько расширений C, включая Nokogiri , JSON и bcrypt .

Ресурсы Gemstone / S [ править ]

  • Документация GemStoneS 64 bit 3.1.x , 3 июля 2012 г. , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)

Ссылки [ править ]

  1. ^ https://raw.github.com/MagLev/maglev/master/Licenses/README.txt
  2. ^ https://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/
  3. ^ «Руководство по программированию для GemStone / S 64 Bit Version 1» (PDF) , VMware , июль 2012 г. , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)
  4. ^ "MagLev - Object Persistence with Ruby and Smalltalk" (PDF) , дипломная работа бакалавра, Институт Хассо Платтнера , 1 июля 2013 г. , получено 22 февраля 2014 г. CS1 maint: discouraged parameter (link)
  5. Phoenix, Evan (14 октября 2011 г.), «Ruby, Concurrency, and You» , блог Engine Yard , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)
  6. ^ http://www.rubyinside.com/maglev-alpha-released-2807.html
  7. ^ https://maglev.github.io/docs/get_started.html

Внешние ссылки [ править ]

  • Фернандес, Оби (30 мая 2008 г.), MagLev is Gemstone / S для Ruby, Huge News , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)
  • Тафт, Дэррил К. (6 июня 2008 г.), "MagLev Rocks the Ruby House" , eWeek , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)
  • Григорик, Илья (15 января 2010 г.), Распределенный Ruby с MagLev VM , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)
  • Шустер, Вернер (15 ноября 2011 г.), «NoSQL OODB с Ruby VM на основе Smalltalk: выпущен MagLev 1.0» , InfoQ , получено 29 июля 2012 г. CS1 maint: discouraged parameter (link)