MagLev es una implementación alternativa del lenguaje de programación Ruby construido en la máquina virtual GemStone / S de GemTalk Systems . Gran parte de Maglev se diseñó para ser escrito en Ruby tanto como fuera posible, lo que resultó en alguna 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 las extensiones C y Smalltalk . MagLev tiene una arquitectura de VM distinta que le permite compartir código y datos entre tiempos de ejecución y ciclos de ejecución a través de una API Ruby. [2]
Desarrollador (es) | Sistemas GemTalk |
---|---|
Versión inicial | 2008 |
Lanzamiento estable | 1.2.0 Alpha 4/17 de mayo de 2013 |
Repositorio | |
Escrito en | Smalltalk , Ruby |
Sistema operativo | Multiplataforma : Solaris , AIX , Linux , Mac OS X |
Plataforma | Piedra preciosa / S |
Tipo | Intérprete del lenguaje de programación Ruby |
Licencia | MIT , GPL , otros [1] |
Sitio web | maglev |
Arquitectura
Maglev se ejecuta dentro de una imagen como Smalltalk , ofreciendo persistencia de objetos transparentes [3] [ verificación fallida ] [4] a objetos y clases de Ruby. La persistencia de objetos se basa en transacciones ACID que permiten que múltiples instancias en ejecución vean un gráfico de objeto compartido. Maglev usa un modelo de concurrencia basado en procesos , mapeando subprocesos Ruby a Smalltalk Processes [5] [ fuente autoeditada? ] , que están programados en la VM como subprocesos verdes . El uso de MagLev debería producir aumentos de rendimiento cuando se usa Ruby, además de permitir que los procesos de Ruby en varias máquinas usen los mismos objetos al mismo tiempo. [6]
Instalación
MagLev se instala con RVM, utilizando los siguientes fragmentos de código, copiados directamente desde maglev github. [7]
rvm instalar maglevrvm use maglev
El estado se puede verificar usando
estado de $ maglev
Compatibilidad con Ruby
Maglev apunta a Ruby 1.8.7 y ejecuta una cantidad significativa de RubySpec . Es compatible con varias extensiones de C, incluidas Nokogiri , JSON y bcrypt .
Recursos de piedras preciosas / S
- GemStoneS 64 bit 3.1.x Documentation , 3 de julio de 2012 , consultado el 29 de julio de 2012
Referencias
- ^ https://raw.github.com/MagLev/maglev/master/Licenses/README.txt
- ^ https://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/
- ^ "Programming Guide for GemStone / S 64 Bit Version 1" (PDF) , VMware , julio de 2012 , consultado el 29 de julio de 2012
- ^ "MagLev - Object Persistence with Ruby and Smalltalk" (PDF) , tesis de licenciatura, Hasso Plattner Institute , 1 de julio de 2013 , consultado el 22 de febrero de 2014
- ^ Phoenix, Evan (14 de octubre de 2011), "Ruby, Concurrency, and You" , Engine Yard Blog , consultado el 29 de julio de 2012
- ^ http://www.rubyinside.com/maglev-alpha-released-2807.html
- ^ https://maglev.github.io/docs/get_started.html
enlaces externos
- Fernandez, Obie (30 de mayo de 2008), MagLev is Gemstone / S for Ruby, Huge News , consultado el 29 de julio de 2012
- Taft, Darryl K. (6 de junio de 2008), "MagLev Rocks the Ruby House" , eWeek , consultado el 29 de julio de 2012
- Grigorik, Ilya (15 de enero de 2010), Distributed Ruby with the MagLev VM , consultado el 29 de julio de 2012
- Schuster, Werner (15 de noviembre de 2011), "NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released" , InfoQ , consultado el 29 de julio de 2012