feat: stash

This commit is contained in:
2025-05-08 16:58:22 +08:00
parent ad7d1215b6
commit 14045f7924
6 changed files with 119 additions and 337 deletions

24
src/jit/mod.rs Normal file
View File

@@ -0,0 +1,24 @@
use inkwell::builder::Builder;
use inkwell::context::Context;
use inkwell::module::Module;
use inkwell::OptimizationLevel;
use inkwell::execution_engine::ExecutionEngine;
pub struct JIT<'ctx> {
context: &'ctx Context,
module: Module<'ctx>,
builder: Builder<'ctx>,
execution_engine: ExecutionEngine<'ctx>,
}
impl<'ctx> JIT<'ctx> {
pub fn new(context: &Context) -> JIT {
let module = context.create_module("nixjit");
JIT {
execution_engine: module.create_jit_execution_engine(OptimizationLevel::None).unwrap(),
builder: context.create_builder(),
context,
module,
}
}
}

View File

@@ -6,6 +6,7 @@ mod compile;
mod downcast;
mod ty;
mod vm;
mod jit;
pub use compile::compile;
pub use ty::public::Value;

View File

@@ -1,17 +0,0 @@
/*
use cranelift_codegen::isa::CallConv;
use cranelift_frontend::{FuncInstBuilder, FunctionBuilder, FunctionBuilderContext};
use cranelift_jit::JITBuilder;
pub struct JIT {
jit: JITBuilder
}
impl JIT {
pub fn new() -> JIT {
JIT {
jit: JITBuilder::
}
}
}
*/

View File

@@ -1,7 +1,6 @@
mod env;
mod stack;
mod vm;
mod jit;
#[cfg(test)]
mod test;