1+ let wizard_args = [ " -ext:stack-switching" ; " --dir=." ]
2+
3+ let wasmfxtime_args =
4+ [ (* "-C"
5+ ; "collector=null"
6+ ; *)
7+ " -W=exceptions,function-references,stack-switching,gc"
8+ ; " --dir=."
9+ ]
10+
11+ let wasmtime_args = [ (* "-C"
12+ ; "collector=null"
13+ ; *) " -W=all-proposals=y" ; " --dir=." ]
14+
15+ let wasmedge_args =
16+ [ " --enable-gc" ; " --enable-exception-handling" ; " --enable-tail-call" ; " --dir=." ]
17+
118let extra_args_for_wasoo =
219 [ " --experimental-wasm-imported-strings"
320 ; " --experimental-wasm-stack-switching"
@@ -23,16 +40,40 @@ let env =
2340 else e)
2441 env
2542
26- let args =
43+ let find_wasm file =
44+ let dir = Filename. chop_extension file ^ " .assets" in
45+ Filename. concat
46+ dir
47+ (List. find
48+ (fun f -> Filename. check_suffix f " .wasm" )
49+ (Array. to_list (Sys. readdir dir)))
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 Sys. getenv_opt " WASM_ENGINE" with
58+ | Some "wizard" ->
59+ ( " /home/jerome/sources/wizard-engine/bin/wizeng.x86-linux"
60+ , wizard_args @ (find_wasm file :: List. tl argv) )
61+ | Some "wizard-fast" ->
62+ ( " /home/jerome/sources/wizard-engine/bin/wizeng.x86-64-linux"
63+ , wizard_args @ (find_wasm file :: List. tl argv) )
64+ | Some "wasmfxtime" ->
65+ ( " /home/jerome/sources/wasmfxtime/target/debug/wasmtime"
66+ , wasmfxtime_args @ (find_wasm file :: List. tl argv) )
67+ | Some "wasmtime" ->
68+ ( " /home/jerome/sources/wasmtime/target/debug/wasmtime"
69+ , wasmtime_args @ (find_wasm file :: List. tl argv) )
70+ | Some "wasmedge" ->
71+ ( " /home/jerome/sources/WasmEdge/build/tools/wasmedge/wasmedge"
72+ , wasmedge_args @ (find_wasm file :: List. tl argv) )
73+ | _ -> " node" , extra_args_for_wasoo @ argv)
74+ | _ -> " node" , extra_args_for_jsoo @ argv
3475 in
35- Array. of_list (exe :: argv)
76+ exe', Array. of_list (exe :: argv)
3677 | [] -> assert false
3778
3879let () =
@@ -45,4 +86,4 @@ let () =
4586 | _ , WEXITED n -> exit n
4687 | _ , WSIGNALED _ -> exit 9
4788 | _ , WSTOPPED _ -> exit 9
48- else Unix. execvpe " node " args env
89+ else Unix. execvpe exe args env
0 commit comments