refactor(tvix/eval): remove VM argument from suspended native thunks
Because they do not use it, and it can not be passed with the coming generator refactoring. Change-Id: I0d96f2357a7ee79cd8a0f401583d4286230d4a6b Reviewed-on: https://cl.tvl.fyi/c/depot/+/8146 Tested-by: BuildkiteCI Reviewed-by: raitobezarius <tvl@lahfa.xyz>
This commit is contained in:
parent
38fd3cb292
commit
bfb787a6c5
3 changed files with 7 additions and 13 deletions
|
@ -6,13 +6,7 @@ use std::{
|
|||
time::{SystemTime, UNIX_EPOCH},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
errors::ErrorKind,
|
||||
io::FileType,
|
||||
value::{NixAttrs, Thunk},
|
||||
vm::VM,
|
||||
Value,
|
||||
};
|
||||
use crate::{errors::ErrorKind, io::FileType, value::NixAttrs, vm::VM, Value};
|
||||
|
||||
#[builtins]
|
||||
mod impure_builtins {
|
||||
|
|
|
@ -1329,7 +1329,7 @@ fn compile_src_builtin(
|
|||
let file = source.add_file(format!("<src-builtins/{}.nix>", name), code.to_string());
|
||||
let weak = weak.clone();
|
||||
|
||||
Value::Thunk(Thunk::new_suspended_native(Box::new(move |_| {
|
||||
Value::Thunk(Thunk::new_suspended_native(Box::new(move || {
|
||||
let result = compile(
|
||||
&parsed.tree().expr().unwrap(),
|
||||
None,
|
||||
|
@ -1390,7 +1390,7 @@ pub fn prepare_globals(
|
|||
let weak_globals = weak.clone();
|
||||
builtins.insert(
|
||||
"builtins",
|
||||
Value::Thunk(Thunk::new_suspended_native(Box::new(move |_| {
|
||||
Value::Thunk(Thunk::new_suspended_native(Box::new(move || {
|
||||
Ok(weak_globals
|
||||
.upgrade()
|
||||
.unwrap()
|
||||
|
|
|
@ -39,7 +39,7 @@ use crate::{
|
|||
use super::{Lambda, TotalDisplay};
|
||||
|
||||
/// Internal representation of a suspended native thunk.
|
||||
struct SuspendedNative(Box<dyn Fn(&mut VM) -> Result<Value, ErrorKind>>);
|
||||
struct SuspendedNative(Box<dyn Fn() -> Result<Value, ErrorKind>>);
|
||||
|
||||
impl Debug for SuspendedNative {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
|
@ -109,7 +109,7 @@ impl Thunk {
|
|||
})))
|
||||
}
|
||||
|
||||
pub fn new_suspended_native(native: Box<dyn Fn(&mut VM) -> Result<Value, ErrorKind>>) -> Self {
|
||||
pub fn new_suspended_native(native: Box<dyn Fn() -> Result<Value, ErrorKind>>) -> Self {
|
||||
Thunk(Rc::new(RefCell::new(ThunkRepr::Native(SuspendedNative(
|
||||
native,
|
||||
)))))
|
||||
|
@ -199,7 +199,7 @@ impl Thunk {
|
|||
// the trampoline, to handle the case of the native function
|
||||
// returning another thunk.
|
||||
ThunkRepr::Native(native) => {
|
||||
let value = native.0(vm)?;
|
||||
let value = native.0()?;
|
||||
self.0.replace(ThunkRepr::Evaluated(value));
|
||||
let self_clone = self.clone();
|
||||
|
||||
|
@ -277,7 +277,7 @@ impl Thunk {
|
|||
// Same as for the native case above, but results are placed
|
||||
// in *both* thunks.
|
||||
ThunkRepr::Native(native) => {
|
||||
let value = native.0(vm)?;
|
||||
let value = native.0()?;
|
||||
self.0.replace(ThunkRepr::Evaluated(value.clone()));
|
||||
inner.0.replace(ThunkRepr::Evaluated(value));
|
||||
let self_clone = self.clone();
|
||||
|
|
Loading…
Reference in a new issue