/verneuil

Artificial Rubies. Using a fusion process.

Primary LanguageRubyMIT LicenseMIT

A virtual machine for something almost like ruby. 

The verneuil process produces artificial rubies that are somewhat unlike real
rubies - they are too pure and don't have the characteristics of real ones. 

This is a virtual machine that:
  * executes something that is almost Ruby (it looks like it)
  * and that can store its state to disk. And resume. 
    Think: Continuations. Serializable.

Is it useful? That depends. You could for example use this to
  * script website interaction with your user
  * create scripts that run for days/months 
  * create crash safe programs (checkpoints? transactions?)
  * transfer running programs over the wire (agents!)?
  * and perhaps more
  
STEREOID-CODE

Verneuil is *eval* on stereoids.
  
SYNOPSIS

  code    = "puts 42"
  program = Verneuil::Compiler.compile(code)
  process = Verneuil::Process.new(code, self)
  process.run   # prints 42 to the console.
  
STATUS

Verneuil currently handles all the programs in spec/programs. The following
Ruby features should work: 

 * Method calls
 * Local variables
 * Method definitions
 * if then else
 * while
 * Masking class methods 
 * correct self
 * fork, join
 
Currently this project lays sleeping for a few months - until I will need it
again. That day is sure to come. 
 
CONTRIBUTORS

Florian Hanke (florianhanke.com)
Kaspar Schiess (absurd.li)
 
(c) 2011-2015 Kaspar Schiess