@@ -77,13 +77,26 @@ let check_js_file fname =
7777
7878let default_flags = [ " exnref" , `B false ]
7979
80- let interesting_runtimes = [ [ " effects" , `S " jspi" ]; [ " effects" , `S " cps" ] ]
80+ let interesting_runtimes =
81+ [ [ " effects" , `S " jspi" ; " wasi" , `B false ]
82+ ; [ " effects" , `S " cps" ; " wasi" , `B false ]
83+ ; [ " effects" , `S " disabled" ; " wasi" , `B true ]
84+ ; [ " effects" , `S " cps" ; " wasi" , `B true ]
85+ ]
86+
87+ let defaults = [ " effects" , " disabled" ]
8188
8289let name_runtime standard l =
8390 let flags =
8491 List. filter_map l ~f: (fun (k , v ) ->
8592 match v with
86- | `S s -> Some s
93+ | `S s ->
94+ if
95+ List. exists
96+ ~f: (fun (k' , s' ) -> String. equal k k' && String. equal s s')
97+ defaults
98+ then None
99+ else Some s
87100 | `B b -> if b then Some k else None )
88101 in
89102 String. concat ~sep: " -" (" runtime" :: (if standard then [ " standard" ] else flags))
@@ -110,25 +123,31 @@ let print_flags f flags =
110123
111124let () =
112125 let () = set_binary_mode_out stdout true in
113- let js_runtime , deps, wat_files, runtimes =
126+ let js_launcher , deps, js_wasi_launcher, wasi_deps, wasi_libc , wat_files, runtimes =
114127 match Array. to_list Sys. argv with
115- | _ :: js_runtime :: deps :: rest ->
116- assert (Filename. check_suffix js_runtime " .js" );
128+ | _ :: js_launcher :: deps :: js_wasi_launcher :: wasi_deps :: wasi_libc :: rest ->
129+ assert (Filename. check_suffix js_launcher " .js" );
130+ assert (Filename. check_suffix js_wasi_launcher " .js" );
117131 assert (Filename. check_suffix deps " .json" );
132+ assert (Filename. check_suffix wasi_deps " .json" );
118133 let wat_files, rest =
119134 List. partition rest ~f: (fun f -> Filename. check_suffix f " .wat" )
120135 in
121136 let wasm_files, rest =
122137 List. partition rest ~f: (fun f -> Filename. check_suffix f " .wasm" )
123138 in
124139 assert (List. is_empty rest);
125- js_runtime , deps, wat_files, wasm_files
140+ js_launcher , deps, js_wasi_launcher, wasi_deps, wasi_libc , wat_files, wasm_files
126141 | _ -> assert false
127142 in
128- check_js_file js_runtime;
143+ check_js_file js_launcher;
144+ check_js_file js_wasi_launcher;
129145 Format. printf " open Wasm_of_ocaml_compiler@." ;
130- Format. printf " let js_runtime = {|\n %s\n |}@." (Fs. read_file js_runtime );
146+ Format. printf " let js_launcher = {|\n %s\n |}@." (Fs. read_file js_launcher );
131147 Format. printf " let dependencies = {|\n %s\n |}@." (Fs. read_file deps);
148+ Format. printf " let js_wasi_launcher = {|\n %s\n |}@." (Fs. read_file js_wasi_launcher);
149+ Format. printf " let wasi_dependencies = {|\n %s\n |}@." (Fs. read_file wasi_deps);
150+ Format. printf " let wasi_libc = %S@." (Fs. read_file wasi_libc);
132151 Format. printf
133152 " let wat_files = [%a]@."
134153 (Format. pp_print_list (fun f file ->
0 commit comments