MagLev (software)
{{Short description|Ruby interpreter}}
{{multiple issues|
{{Notability|Products|date=July 2012}}
{{self-published|date=July 2012}}
{{more citations needed|date=August 2012}}
}}
{{Infobox software
| name = MagLev
| logo = MagLev logo.gif
| screenshot =
| caption =
| developer = GemTalk Systems
| released = {{Start date and age|2008}}
| latest release version = 1.2.0 Alpha 4
| latest release date = {{start date|2013|05|17}}
| operating_system = Cross-platform: Solaris, AIX, Linux, Mac OS X
| platform = GemStone/S
| programming language = Smalltalk, Ruby
| genre = Ruby programming language interpreter
| license = MIT, GPL, others{{cite web|access-date=2023-02-21 |url=https://raw.githubusercontent.com/MagLev/maglev/master/Licenses/README.txt|title=License agreements|website=raw.githubusercontent.com}}
| website = {{URL|https://maglev.github.io}}
}}
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems. Much of Maglev was set out to be written in Ruby as much as possible, resulting in some collaboration with the Rubinius project. As of the first beta release, the project runs RubyGems 1.3.5 natively, with support for C and Smalltalk extensions. MagLev has a distinct VM architecture that allows it to share code and data between runtimes and execution cycles through a Ruby API.{{Cite web|url=https://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/|title=Distributed Ruby with the MagLev VM - igvita.com|website=www.igvita.com|accessdate=21 February 2023}}
Architecture
Maglev runs inside an image like Smalltalk, offering transparent object persistence{{citation |url=http://community.gemstone.com/download/attachments/6816862/GS64-ProgGuide-3.1.pdf?version=1 |title=Programming Guide for GemStone/S 64 Bit Version 1 |work=VMware |date=July 2012 |accessdate=July 29, 2012 }}{{failed verification|date=July 2012}}{{citation |url=https://www.matthiasspringer.de/downloads/BP2012H1_intra-language_collaboration.pdf |title=MagLev – Object Persistence with Ruby and Smalltalk | date=July 1, 2013| accessdate=February 22, 2014 |work=Bachelor thesis, Hasso Plattner Institute }} to Ruby objects and classes. Object persistence is based on ACID transactions that allow multiple running instances to see a shared object graph. Maglev uses a process-based concurrency model, mapping Ruby threads to Smalltalk Processes{{citation |url=http://www.engineyard.com/blog/2011/ruby-concurrency-and-you/ |title=Ruby, Concurrency, and You |first=Evan |last=Phoenix |work=Engine Yard Blog |date=October 14, 2011 |accessdate=July 29, 2012}}{{self-published inline|date=July 2012}}, which are scheduled in the VM as green threads. Using MagLev should yield performance increases when using Ruby, along with allowing Ruby processes over multiple machines to use the same objects at the same time.{{Cite web|url=http://www.rubyinside.com/maglev-alpha-released-2807.html|title=MagLev Alpha Released: A New, Scalable Ruby Implementation|website=www.rubyinside.com|accessdate=21 February 2023}}
Installation
MagLev is installed with RVM, using the following code snippets, copied directly from the maglev GitHub project.{{Cite web|url=https://maglev.github.io/docs/get_started.html|title = Get Started with MagLev}}
rvm install maglev
rvm use maglev
The status can be checked using
$ maglev status
Ruby compatibility
Gemstone/S resources
- {{citation |url=http://community.gemstone.com/display/GSS64/GemStoneS+64+bit+3.1.x+Documentation |title=GemStoneS 64 bit 3.1.x Documentation |date=July 3, 2012 |accessdate=July 29, 2012}}
References
{{Reflist}}
External links
- {{citation |url=http://blog.obiefernandez.com/content/2008/05/maglev-is-gemst.html |title=MagLev is Gemstone/S for Ruby, Huge News |first=Obie |last=Fernandez |date=May 30, 2008 |accessdate=July 29, 2012 }}
- {{citation |url=https://www.eweek.com/c/a/Application-Development/MagLev-Rocks-the-Ruby-House/ |title=MagLev Rocks the Ruby House |first=Darryl K. |last=Taft |work=eWeek |date=June 6, 2008 |accessdate=July 29, 2012 }}
- {{citation |url=http://www.igvita.com/2010/01/15/distributed-ruby-with-the-maglev-vm/ |title=Distributed Ruby with the MagLev VM |first=Ilya |last=Grigorik |date=January 15, 2010 |accessdate=July 29, 2012}}
- {{citation |url=http://www.infoq.com/news/2011/11/ruby-maglev-10 |title=NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released |first=Werner |last=Schuster |work=InfoQ |date=November 15, 2011 |accessdate=July 29, 2012 }}
{{Ruby programming language}}
Category:Free software programmed in Ruby
{{free-software-stub}}