Skip to content

Commit dc6fa7a

Browse files
committed
Don't Eval.eval into existing module
1 parent f37f6d8 commit dc6fa7a

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

ml-proto/src/eval.ml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ let invoke m x vs =
266266
let f = export m (x @@ Source.no_region) in
267267
eval_func m f vs
268268

269-
let eval m e =
270-
let f = {params = []; results = []; locals = []; body = e} @@ Source.no_region
271-
in unary (eval_func m f []) e.at
269+
let eval e =
270+
let f = {params = []; results = []; locals = []; body = e} @@ Source.no_region in
271+
let m = {funcs = [f]; exports = [f]; tables = []; globals = []; memory = (Memory.create 0)} in
272+
unary (eval_func m f []) e.at

ml-proto/src/eval.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ type value = Values.value
88
val init : Ast.modul -> module_instance
99
val invoke : module_instance -> int -> value list -> value list
1010
(* raise Error.Error *)
11-
val eval : module_instance -> Ast.expr -> value (* raise Error.Error *)
11+
val eval : Ast.expr -> value (* raise Error.Error *)

ml-proto/src/script.ml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ let run_command cmd =
3535
current_module := Some (Eval.init m)
3636
| Invoke (i, es) ->
3737
trace "Invoking...";
38+
let vs = List.map Eval.eval es in
3839
let m = match !current_module with
3940
| Some m -> m
4041
| None -> Error.error cmd.at "no module defined to invoke"
4142
in
42-
let vs = List.map (Eval.eval m) es in
4343
let vs' = Eval.invoke m i vs in
4444
if vs' <> [] then Print.print_values vs'
4545
| AssertEqInvoke (i, arg_es, expect_es) ->
@@ -48,10 +48,9 @@ let run_command cmd =
4848
| Some m -> m
4949
| None -> Error.error cmd.at "no module defined to invoke"
5050
in
51-
let eval = Eval.eval m in
52-
let arg_vs = List.map eval arg_es in
51+
let arg_vs = List.map Eval.eval arg_es in
5352
let got_vs = Eval.invoke m i arg_vs in
54-
let expect_vs = List.map eval expect_es in
53+
let expect_vs = List.map Eval.eval expect_es in
5554
if List.exists2 (<>) got_vs expect_vs then begin
5655
print_string "Got: ";
5756
Print.print_values got_vs;

0 commit comments

Comments
 (0)