feat: JIT (WIP)
This commit is contained in:
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user