diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-09-21 17:50:58 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-09-21 20:25:57 +0200 |
| commit | ddd3b6a82b8c0353c942bfba8b89ca5476eedc58 (patch) | |
| tree | a64c350f0f1f82152ff18cfb02fbfdbf39292672 /src/library/utility | |
| parent | 3760748fddd3b793c79c370398a9d4a3fc5afc04 (diff) | |
Tracked memoization
Diffstat (limited to 'src/library/utility')
| -rw-r--r-- | src/library/utility/mod.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/library/utility/mod.rs b/src/library/utility/mod.rs index 3fc413f7..d9b19d64 100644 --- a/src/library/utility/mod.rs +++ b/src/library/utility/mod.rs @@ -10,7 +10,9 @@ pub use data::*; pub use math::*; pub use string::*; -use crate::eval::{Eval, Scopes, Vm}; +use comemo::Track; + +use crate::eval::{Eval, Route, Scopes, Vm}; use crate::library::prelude::*; use crate::source::Source; @@ -39,7 +41,8 @@ pub fn eval(vm: &mut Vm, args: &mut Args) -> SourceResult<Value> { // Evaluate the source. let std = &vm.world.config().std; let scopes = Scopes::new(Some(std)); - let mut sub = Vm::new(vm.world, vec![], scopes); + let route = Route::default(); + let mut sub = Vm::new(vm.world, route.track(), None, scopes); let result = ast.eval(&mut sub); // Handle control flow. |
