|  130330b688 | ||
|---|---|---|
| lunar_wave_cli | ||
| lunar_wave_vm | ||
| pictures | ||
| .gitignore | ||
| COPYING.txt | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	LunarWaveVM is a Lua 5.4 virtual machine written in Rust.
luac5.4 -o - test_vectors/fizz_buzz.lua | cargo run -- --pipe-bytecode
1
2
3       Fizz
4
5       Buzz
6       Fizz
7
...
44
45      FizzBuzz
46
47
48      Fizz
49
50      Buzz
Roadmap
- Loading simple pre-compiled bytecode programs
- Hash tables
- Fizzbuzz
- Closures
- Error handling
- Garbage collection
- Long strings
- Using arrays internally for tables
- Compiling Lua source code to bytecode
Benchmark
9x slower than PUC Lua, 90x slower than LuaJIT.
Based only on the n-body simulation from the computer language benchmarks, because it's easy to run.
time target/release/lunar_wave_vm --script test_vectors/n_body.lua -- 500000; time lua test_vectors/n_body.lua 500000; time luajit test_vectors/n_body.lua 500000;
-0.169075164
-0.169096567
[src/main.rs:110] x = []
real	0m10.543s
user	0m10.535s
sys	0m0.000s
-0.169075164
-0.169096567
real	0m1.173s
user	0m1.165s
sys	0m0.004s
-0.169075164
-0.169096567
real	0m0.117s
user	0m0.116s
sys	0m0.000s
