jazz

Crates.iojazz
lib.rsjazz
version0.2.2
sourcesrc
created_at2018-11-08 18:36:48.029387
updated_at2018-11-16 17:19:09.97948
descriptionJazz Virtual Machine
homepage
repositoryhttps://github.com/playXE/Jazz
max_upload_size
id95543
size58,872
playX (playXE)

documentation

README

Jazz Virtual Machine

license Docs Status

Jazz is a register-based virtual machine

VM is still in active develop so it's not recommended to use Jazz for your purposes

Example code:

LoadInt(0,12) // Load 12 into R(0)
LoadInt(1,3)  // Load 3 into R(1)
Add(2,1,0)    // Add value from R(1) to R(0) and store result in R(2)
Ret(2)        // Return value from R(2)

Jazz is heavily inspired by Gravity language VM

Simple Jazz

Library used for easy generating JazzVM code,example:

fn add_op(node: Node,b: &mut FunctionBuilder) {
    visit(node.left,b);
    visit(node.right,b);
    let r3 = b.register_pop();
    let r2 = b.register_pop();
    let r1 = b.register_push_temp();
    b.insert_op(Instruction::Add(r1,r2,r3));
}


Commit count: 70

cargo fmt