Skip to content

Commit 8c6a7cd

Browse files
committed
feat: first complete of threading
1 parent 48adca9 commit 8c6a7cd

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

interpreter/src/evaluator/builtins.rs

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
use std::collections::HashMap;
22

3+
use std::cell::RefCell;
4+
use std::rc::Rc;
5+
36
extern crate rand;
47

58
use crate::evaluator::object::Object;
69
use crate::evaluator::object::NativeObject;
10+
use crate::evaluator::env::Env;
11+
use crate::evaluator::Evaluator;
712

813
use rand::distributions::Uniform;
914
use rand::{thread_rng, Rng};
@@ -344,20 +349,7 @@ fn three_body_sophon_engineering(args: Vec<Object>) -> Object {
344349
}
345350
}
346351

347-
use std::cell::RefCell;
348-
use std::rc::Rc;
349-
use crate::evaluator;
350-
use crate::parser;
351-
use crate::ast;
352-
use crate::ast::{BlockStmt, Stmt};
353-
use crate::lexer;
354-
355-
fn eval(input: &str) -> Option<Object> {
356-
evaluator::Evaluator {
357-
env: Rc::new(RefCell::new(evaluator::env::Env::from(new_builtins()))),
358-
}
359-
.eval(&parser::Parser::new(lexer::Lexer::new(input)).parse())
360-
}
352+
361353

362354
#[cfg(feature="threading")]
363355
fn three_body_threading(args: Vec<Object>) -> Object {
@@ -377,8 +369,8 @@ fn three_body_threading(args: Vec<Object>) -> Object {
377369

378370
// 在 LocalSet 中安排任务
379371
local_set.spawn_local(async move {
380-
let mut ev = evaluator::Evaluator {
381-
env: Rc::new(RefCell::new(evaluator::env::Env::from(new_builtins()))),
372+
let mut ev = Evaluator {
373+
env: Rc::new(RefCell::new(Env::from(new_builtins()))),
382374
};
383375
ev.eval(&stmts);
384376
});
@@ -409,9 +401,7 @@ fn three_body_threading(args: Vec<Object>) -> Object {
409401
}
410402
_ => panic!()
411403
};
412-
// let model = unsafe { & *model_ptr };
413404
unsafe { Box::from_raw(handle_ptr) }.join();
414-
// std::mem::drop(model);
415405
Object::Null
416406
},
417407
_ => panic!()

0 commit comments

Comments
 (0)