Skip to content

A Ruby VM written in Go aims to exploit parallelism via Software Transactional Memory

License

Notifications You must be signed in to change notification settings

brucehsu/GobiesVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GobiesVM

Build Status License

A Ruby VM written in Go aims to exploit parallelism via Software Transactional Memory.

Build

git clone https://github.com/brucehsu/GobiesVM.git
cd GobiesVM
make goenv
source goenv
make

The executable will be placed inside bin/.

Usage

gobiesvm [OPTIONS] RBFILE

Options:
  -ast: Print abstract syntax tree structure
  -bench=[0]: Benchmark script execution speed (without parsing stage)
  -bytecode: Print comprehensive bytecode instructions
  -log: Log transaction status

What is supported

  • Object manipulations (creation, method calling)
  • Variable assignment
  • Integer
  • Float
  • String (single-quoted)
  • Basic string operations
  • Blocks
  • Iterators
  • Arrays
  • Hashes
  • Threads
  • Basic IO

What is NOT supported (yet)

  • Conditional statements
  • Class/method definition
  • Native extension interface
  • Rubygems

Related Paper

Software Transactional Memory in a Dynamic Programming Language at Virtual Machine Level

About

A Ruby VM written in Go aims to exploit parallelism via Software Transactional Memory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages