1
1
use std:: collections:: HashMap ;
2
2
3
+ use std:: cell:: RefCell ;
4
+ use std:: rc:: Rc ;
5
+
3
6
extern crate rand;
4
7
5
8
use crate :: evaluator:: object:: Object ;
6
9
use crate :: evaluator:: object:: NativeObject ;
10
+ use crate :: evaluator:: env:: Env ;
11
+ use crate :: evaluator:: Evaluator ;
7
12
8
13
use rand:: distributions:: Uniform ;
9
14
use rand:: { thread_rng, Rng } ;
@@ -344,20 +349,7 @@ fn three_body_sophon_engineering(args: Vec<Object>) -> Object {
344
349
}
345
350
}
346
351
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
+
361
353
362
354
#[ cfg( feature="threading" ) ]
363
355
fn three_body_threading ( args : Vec < Object > ) -> Object {
@@ -377,8 +369,8 @@ fn three_body_threading(args: Vec<Object>) -> Object {
377
369
378
370
// 在 LocalSet 中安排任务
379
371
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 ( ) ) ) ) ,
382
374
} ;
383
375
ev. eval ( & stmts) ;
384
376
} ) ;
@@ -409,9 +401,7 @@ fn three_body_threading(args: Vec<Object>) -> Object {
409
401
}
410
402
_ => panic ! ( )
411
403
} ;
412
- // let model = unsafe { & *model_ptr };
413
404
unsafe { Box :: from_raw ( handle_ptr) } . join ( ) ;
414
- // std::mem::drop(model);
415
405
Object :: Null
416
406
} ,
417
407
_ => panic ! ( )
0 commit comments