1+ let wizard_args =
2+ [ " -ext:stack-switching" ; " -ext:legacy-eh" ; " -stack-size=2M" ; " --dir=." ; " --dir=/tmp" ]
3+
4+ let wasmtime_args =
5+ [ (* "-C"; "collector=null"; *) " -W=all-proposals=y" ; " --dir=." ; " --dir=/tmp" ]
6+
7+ let wasmedge_args =
8+ [ " --enable-gc"
9+ ; " --enable-exception-handling"
10+ ; " --enable-tail-call"
11+ ; " --dir=."
12+ ; " --dir=/tmp"
13+ ]
14+
115let extra_args_for_wasoo =
216 [ " --experimental-wasm-imported-strings"
317 ; " --experimental-wasm-stack-switching"
18+ ; " --experimental-wasm-exnref"
419 ; " --stack-size=10000"
520 ]
621
@@ -23,16 +38,31 @@ let env =
2338 else e)
2439 env
2540
26- let args =
41+ let environment_args () =
42+ List. filter
43+ (fun e -> not (String. contains e ',' ))
44+ (Array. to_list (Array. map (fun e -> " --env=" ^ e) env))
45+
46+ let wasm_file file =
47+ Filename. concat (Filename. chop_extension file ^ " .assets" ) " code.wasm"
48+
49+ let common_args file argv = environment_args () @ (wasm_file file :: List. tl argv)
50+
51+ let exe, args =
2752 match Array. to_list Sys. argv with
2853 | exe :: argv ->
29- let argv =
54+ let exe', argv =
3055 match argv with
31- | file :: _ when Filename. check_suffix file " .wasm.js" ->
32- extra_args_for_wasoo @ argv
33- | _ -> extra_args_for_jsoo @ argv
56+ | file :: _ when Filename. check_suffix file " .wasm.js" -> (
57+ match Node_wrapper_per_engine. engine with
58+ | "wizard" -> " wizeng.x86-linux" , wizard_args @ common_args file argv
59+ | "wizard-fast" -> " wizeng.x86-64-linux" , wizard_args @ common_args file argv
60+ | "wasmtime" -> " wasmtime" , wasmtime_args @ common_args file argv
61+ | "wasmedge" -> " wasmedge" , wasmedge_args @ common_args file argv
62+ | _ -> " node" , extra_args_for_wasoo @ argv)
63+ | _ -> " node" , extra_args_for_jsoo @ argv
3464 in
35- Array. of_list (exe :: argv)
65+ exe', Array. of_list (exe :: argv)
3666 | [] -> assert false
3767
3868let () =
@@ -45,4 +75,4 @@ let () =
4575 | _ , WEXITED n -> exit n
4676 | _ , WSIGNALED _ -> exit 9
4777 | _ , WSTOPPED _ -> exit 9
48- else Unix. execvpe " node " args env
78+ else Unix. execvpe exe args env
0 commit comments