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+
120let extra_args_for_wasoo =
221 [ " --experimental-wasm-imported-strings"
322 ; " --experimental-wasm-stack-switching"
23+ ; " --experimental-wasm-exnref"
424 ; " --stack-size=10000"
525 ]
626
@@ -23,16 +43,31 @@ let env =
2343 else e)
2444 env
2545
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 =
2757 match Array. to_list Sys. argv with
2858 | exe :: argv ->
29- let argv =
59+ let exe', argv =
3060 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
3469 in
35- Array. of_list (exe :: argv)
70+ exe', Array. of_list (exe :: argv)
3671 | [] -> assert false
3772
3873let () =
@@ -45,4 +80,4 @@ let () =
4580 | _ , WEXITED n -> exit n
4681 | _ , WSIGNALED _ -> exit 9
4782 | _ , WSTOPPED _ -> exit 9
48- else Unix. execvpe " node " args env
83+ else Unix. execvpe exe args env
0 commit comments