gnu-libjit 0.9.0

A safe rust wrapper around the libjit just in time compiler
Documentation
use gnu_libjit::{Abi, Context};

fn main() {
    let mut context = Context::new();
    context.build_start();

    let float_type = Context::sbyte_type();
    let params = vec![float_type];
    let mut func = context.function(Abi::Cdecl, float_type, params).unwrap();

    let x = func.arg(0).unwrap();
    let ptr1 = func.alloca(1);
    let ptr2 = func.alloca(8);

    let tag = func.create_sbyte_constant(111);
    let value = func.create_float64_constant(111.0);

    func.insn_store(&ptr1, &tag);
    func.insn_store(&ptr2, &value);

    let res1 = func.insn_load(&ptr1);
    let res2 = func.insn_load(&ptr2);

    let res= func.insn_add(&res1, &res2);


    func.insn_return(&res);
    println!("{}", func.dump().unwrap());
    func.compile();
    context.build_end();

    let result: extern "C" fn(f64) -> u8 = func.to_closure();
    println!("{}", result(0.23))
}