MagLev es una implementación alternativa del lenguaje de programación Ruby creado en la máquina virtual GemStone/S de GemTalk Systems . Gran parte de Maglev se diseñó para que se escribiera en Ruby tanto como fuera posible, lo que dio lugar a cierta colaboración con el proyecto Rubinius. A partir de la primera versión beta, el proyecto ejecuta RubyGems 1.3.5 de forma nativa, con soporte para extensiones C y Smalltalk . MagLev tiene una arquitectura de máquina virtual distintiva que le permite compartir código y datos entre entornos de ejecución y ciclos de ejecución a través de una API de Ruby. [2]
Maglev se ejecuta dentro de una imagen como Smalltalk , ofreciendo persistencia de objetos transparente [3] [ verificación fallida ] [4] a objetos y clases Ruby. La persistencia de objetos se basa en transacciones ACID que permiten que múltiples instancias en ejecución vean un gráfico de objetos compartido. Maglev utiliza un modelo de concurrencia basado en procesos, asignando subprocesos Ruby a procesos Smalltalk [5] [ fuente autopublicada? ] , que se programan en la VM como subprocesos verdes . El uso de MagLev debería producir aumentos de rendimiento al usar Ruby, además de permitir que los procesos Ruby en múltiples máquinas usen los mismos objetos al mismo tiempo. [6]
MagLev se instala con RVM, utilizando los siguientes fragmentos de código, copiados directamente desde maglev github. [7]
Instalación de tren maglev rvmRVM utiliza maglev
El estado se puede comprobar mediante
estado del tren de levitación magnética
Maglev tiene como objetivo Ruby 1.8.7 y ejecuta una cantidad significativa de RubySpec . Admite varias extensiones de C, incluidas Nokogiri , JSON y bcrypt .