MagLev (software): Difference between revisions
Content deleted Content added
Adding Ilya's post back in proper citation form. |
Adding concurrency explanation & ref to Evan's blog post. |
||
Line 23: | Line 23: | ||
== Architecture == |
== Architecture == |
||
MagLev runs inside an image like [[Smalltalk]], offering transparent object persistence to Ruby objects and classes. Object persistence is based on [[ACID]] transactions that allow multiple running instances to see a shared object graph. |
MagLev runs inside an image like [[Smalltalk]], offering transparent object persistence 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_(computer_science)|concurrency]] model, mapping Ruby [[Thread_(computer_science)|threads]] to Smalltalk Processes<ref>Phoenix, Evan. ''Ruby, Concurrency, and You''. [[Engine_Yard|Engine Yard]]. http://www.engineyard.com/blog/2011/ruby-concurrency-and-you/</ref>, which are [[Scheduling_(computing)|scheduled]] in the [[Virtual_machine|VM]] as [[Green_threads|green threads]]. |
||
== Ruby Compatibility == |
== Ruby Compatibility == |
||
Line 32: | Line 32: | ||
*{{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.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 }} |
*{{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 }} |
||
== Notes == |
|||
{{Reflist}} |
|||
{{free-software-stub}} |
{{free-software-stub}} |
Revision as of 17:36, 29 July 2012
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Developer(s) | VMware |
---|---|
Stable release | 1.0.0
/ October 31, 2011 |
Repository | |
Written in | Smalltalk, Ruby |
Operating system | Unix |
Type | Ruby interpreter |
License | MIT, GPL, others |
Website | maglev |
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemStone Systems.
Architecture
MagLev runs inside an image like Smalltalk, offering transparent object persistence 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[1], which are scheduled in the VM as green threads.
Ruby Compatibility
MagLev targets Ruby 1.8.7 and runs a significant number of RubySpec. It supports several C extensions including Nokogiri, JSON and bcrypt.
External Links
- Taft, Darryl K. (June 6, 2008), "MagLev Rocks the Ruby House", eWeek, retrieved July 29, 2012
- Grigorik, Ilya (January 15, 2010), Distributed Ruby with the MagLev VM, retrieved July 29, 2012
- Schuster, Werner (November 15, 2011), "NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released", InfoQ, retrieved July 29, 2012
Notes
- ^ Phoenix, Evan. Ruby, Concurrency, and You. Engine Yard. http://www.engineyard.com/blog/2011/ruby-concurrency-and-you/