A Ruby VM written in Go aims to exploit parallelism via Software Transactional Memory.
git clone https://github.com/brucehsu/GobiesVM.git
cd GobiesVM
make goenv
source goenv
make
The executable will be placed inside bin/
.
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
- Object manipulations (creation, method calling)
- Variable assignment
- Integer
- Float
- String (single-quoted)
- Basic string operations
- Blocks
- Iterators
- Arrays
- Hashes
- Threads
- Basic IO
- Conditional statements
- Class/method definition
- Native extension interface
- Rubygems
Software Transactional Memory in a Dynamic Programming Language at Virtual Machine Level