feat: JIT (WIP)

This commit is contained in:
2025-05-11 14:57:05 +08:00
parent cfed44ebf4
commit d664d433dc
10 changed files with 38 additions and 22 deletions

View File

@@ -127,7 +127,7 @@ impl<'vm> Value<'vm> {
}
}
pub fn call(self, vm: &VM<'vm>, args: Vec<Value<'vm>>) -> Result<Value<'vm>> {
pub fn call(self, vm: &VM<'vm, '_>, args: Vec<Value<'vm>>) -> Result<Value<'vm>> {
use Value::*;
Ok(match self {
PrimOp(func) => func.call(vm, args),
@@ -365,7 +365,7 @@ impl<'vm> Value<'vm> {
self
}
pub fn force(&mut self, vm: &VM<'vm>) -> Result<&mut Self> {
pub fn force(&mut self, vm: &VM<'vm, '_>) -> Result<&mut Self> {
if let Value::Thunk(thunk) = self {
let value = thunk.force(vm)?;
*self = value
@@ -376,7 +376,7 @@ impl<'vm> Value<'vm> {
Ok(self)
}
pub fn force_deep(&mut self, vm: &VM<'vm>) -> Result<&mut Self> {
pub fn force_deep(&mut self, vm: &VM<'vm, '_>) -> Result<&mut Self> {
match self {
Value::Thunk(thunk) => {
let mut value = thunk.force(vm)?;
@@ -447,7 +447,7 @@ impl<'vm> Thunk<'vm> {
*self.env.borrow_mut() = Some(env);
}
pub fn force(&self, vm: &VM<'vm>) -> Result<Value<'vm>> {
pub fn force(&self, vm: &VM<'vm, '_>) -> Result<Value<'vm>> {
match &*self.thunk.borrow() {
_Thunk::Value(value) => return Ok(value.as_ref().clone()),
_Thunk::SuspendedFrom(from) => {