1
+ let wizard_args =
2
+ [ " --ext:stack-switching"
3
+ ; " --ext:legacy-eh"
4
+ ; " --stack-size=2M"
5
+ ; " --dir=."
6
+ ; " --dir=/tmp"
7
+ ]
8
+
9
+ let wasmtime_args =
10
+ [ (* "-C"; "collector=null"; *) " -W=all-proposals=y" ; " --dir=." ; " --dir=/tmp" ]
11
+
12
+ let wasmedge_args =
13
+ [ " --enable-gc"
14
+ ; " --enable-exception-handling"
15
+ ; " --enable-tail-call"
16
+ ; " --dir=."
17
+ ; " --dir=/tmp"
18
+ ]
19
+
1
20
let extra_args_for_wasoo =
2
21
[ " --experimental-wasm-imported-strings"
3
22
; " --experimental-wasm-stack-switching"
23
+ ; " --experimental-wasm-exnref"
4
24
; " --stack-size=10000"
5
25
]
6
26
@@ -23,16 +43,31 @@ let env =
23
43
else e)
24
44
env
25
45
26
- let args =
46
+ let environment_args () =
47
+ List. filter
48
+ (fun e -> not (String. contains e ',' ))
49
+ (Array. to_list (Array. map (fun e -> " --env=" ^ e) env))
50
+
51
+ let wasm_file file =
52
+ Filename. concat (Filename. chop_extension file ^ " .assets" ) " code.wasm"
53
+
54
+ let common_args file argv = environment_args () @ (wasm_file file :: List. tl argv)
55
+
56
+ let exe, args =
27
57
match Array. to_list Sys. argv with
28
58
| exe :: argv ->
29
- let argv =
59
+ let exe', argv =
30
60
match argv with
31
- | file :: _ when Filename. check_suffix file " .wasm.js" ->
32
- extra_args_for_wasoo @ argv
33
- | _ -> extra_args_for_jsoo @ argv
61
+ | file :: _ when Filename. check_suffix file " .wasm.js" -> (
62
+ match Node_wrapper_per_engine. engine with
63
+ | "wizard" -> " wizeng.x86-linux" , wizard_args @ common_args file argv
64
+ | "wizard-fast" -> " wizeng.x86-64-linux" , wizard_args @ common_args file argv
65
+ | "wasmtime" -> " wasmtime" , wasmtime_args @ common_args file argv
66
+ | "wasmedge" -> " wasmedge" , wasmedge_args @ common_args file argv
67
+ | _ -> " node" , extra_args_for_wasoo @ argv)
68
+ | _ -> " node" , extra_args_for_jsoo @ argv
34
69
in
35
- Array. of_list (exe :: argv)
70
+ exe', Array. of_list (exe :: argv)
36
71
| [] -> assert false
37
72
38
73
let () =
@@ -45,4 +80,4 @@ let () =
45
80
| _ , WEXITED n -> exit n
46
81
| _ , WSIGNALED _ -> exit 9
47
82
| _ , WSTOPPED _ -> exit 9
48
- else Unix. execvpe " node " args env
83
+ else Unix. execvpe exe args env
0 commit comments