Skip to content
This repository

GemStone Maglev Ruby Repository

Octocat-spinner-32 Licenses Removed license files for software that is no longer included. October 19, 2011
Octocat-spinner-32 bin Install kernel extensions when prims are loaded January 27, 2014
Octocat-spinner-32 build WIP: Refactor rakefile October 06, 2011
Octocat-spinner-32 docs Fixed typo November 05, 2012
Octocat-spinner-32 etc XXX increase gem memory for now. October 11, 2012
Octocat-spinner-32 examples enable travis January 13, 2013
Octocat-spinner-32 gci Initial copy of maglev repository, before Allen's change to use new p… July 21, 2008
Octocat-spinner-32 lib Add uuid and urlsafe_base64 to SecureRandom December 19, 2013
Octocat-spinner-32 rakelib reload_prims task fixed February 27, 2013
Octocat-spinner-32 spec Update Maglev #[] and #[]= specs February 19, 2014
Octocat-spinner-32 src add test and fix posing as instantiating class for pipes March 03, 2014
Octocat-spinner-32 tests enable travis January 13, 2013
Octocat-spinner-32 .gitignore ignore openssl libs February 22, 2013
Octocat-spinner-32 .gitmodules Remove benchmarks directory and support. October 24, 2011
Octocat-spinner-32 .travis.yml use ruby boxes, install ssl headers April 26, 2013
Octocat-spinner-32 Changes Updated to MagLev 1.1alpha2 October 04, 2012
Octocat-spinner-32 LICENSES.txt Renamed LICENSES back to LICENSES.txt for Mac OS X (since there is a … December 22, 2008
Octocat-spinner-32 README.rdoc :newspaper: Update build badge url to master February 06, 2014
Octocat-spinner-32 Rakefile another try at fixing test result on travis March 03, 2014
Octocat-spinner-32 THANKS Cleaning up THANKS note October 21, 2012
Octocat-spinner-32 debug.mspec Tweak spec debug target July 21, 2009
Octocat-spinner-32 default.mspec enable encoding feature, and tag specs that fail April 15, 2013
Octocat-spinner-32 and work even if the current dir is not a git November 01, 2011
Octocat-spinner-32 passing.mspec Fixed regex problem in passing.mspec that caused comments and blank l… October 21, 2009
Octocat-spinner-32 Added world read to locks directory March 18, 2011
Octocat-spinner-32 Remove debug output July 01, 2013
Octocat-spinner-32 version.txt Releasing MagLev-1.2Alpha4 branch master-1.9 May 17, 2013


Build Status: Build Status

Minimum Requirements

  • 64-bit hardware. There are no plans for a 32-bit version.

  • 64-bit Linux, Mac OS X, or Solaris X86 operating system

  • a version of ruby and rake to use during installation

  • root access so you can increase default shared memory settings (only during initial install)

Install MagLev

There are several ways to install MagLev:

  • Use the installer

  • Install with Ruby Version Manager (RVM)

  • Install with ruby-build/rbenv

  • Install from GitHub

Install a specific version of MagLev from a .tar.gz archive

  1. Download and unzip

  2. Run

    ./ [VERSION]

    Where VERSION is the specific MagLev revsion you wish to install, e.g. 1.0.0 runs one-time machine checks and configuration that ensure your hardware will run MagLev. These mostly relate to shared memory settings. It's safe to run multiple times and it won't overwrite things it's already done.

The installer is somewhat verbose. That's so you can more easily debug installation problems.

Note: Reverting to an older version is as simple as stopping MagLev, changing $MAGLEV_HOME to point to the prior version, and restarting.

Install with Ruby Version Manager (RVM)

RVM is useful if you want to compare behavior of various Ruby implementations or versions of MagLev. Install using:

rvm install maglev

See the rvm home page for details of using RVM.

RVM will automatically start a MagLev server when you rvm use maglev. That server is left running if you rvm use any_other_Ruby.

To stop your MagLev server:

rvm use maglev
maglev stop

Note: maglev stop will only stop the version of MagLev currently in use. If you're using more than one, you'll have to maglev stop each of them – e.g.

rvm use maglev-1.0.0
maglev stop
rvm use maglev-head
maglev stop

ProTip: To kill all the MagLev servers rather than shut them down gracefully, run ps -ef | grep /sys/stoned and kill the stoned processes that show up. It takes a short time before they shut down, as they do a bit of cleanup first.

Note: When running rake from MagLev, you cannot perform tasks which affect MagLev itself, like rake maglev:stop. You have to use the bin/maglev shell script instead.

Install with ruby-build/rbenv

ruby-build is a plugin for rbenv that compiles and installs different Ruby implementations on Unix-like systems. rbenv lets you switch among different implementations of Ruby easily.

You can install MagLev with rbenv:

rbenv install maglev-1.0.0

or you can use ruby-build to install MagLev standalone:

ruby-build maglev-1.0.0 ~/local/maglev

Note: Change ~/local/maglev to wherever you want MagLev installed.

ruby-build basically runs with some friendly output.

You will have to start and stop the MagLev server using

maglev start
maglev stop

The ProTip above for RVM still applies.

Install from GitHub

This version is best for MagLev contributors and for developers who want to live on the bleeding edge or use git functionality. It can be less stable than the .tar.gz version.

Create a new directory on a local (not NFS) file system to hold the MagLev source tree and other files. Change to that directory, then:

  1. Clone the MagLev github repository

    git clone git://
  2. Install the VM. If this is the first time you're installing MagLev, run:


    If you've already run on the machine, then you can use the update script:


To use MagLev, you need to run at least once. After that, every time you git pull, you need to run to ensure you have the corresponding GemStone 3.x binaries. Otherwise, you might get version skew that prevents MagLev from running correctly. Watch @MagLev for any 'git only' updates, but if you're more than one update behind you still might need to run You don't need to know a version number to install. The installer/updater figures that out from the version.txt file.

You'll have all the functionality of git, but unless you create a new clone for each release, you may be unable to revert to an earlier version. Why? The install/update script creates a new copy of the MagLev data repository including persistent kernel code. The scripts make one level of backup, but we are not providing migration scripts.

Something went wrong with that request. Please try again.