@@ -128,7 +128,12 @@ pub async fn exec(config: Config, args: &clap::ArgMatches) -> anyhow::Result<()>
128
128
} else {
129
129
build:: exec_with_argstring ( config. clone ( ) , project_path, build_options) . await ?
130
130
} ;
131
- extract_descriptions ( & wasm_path) ?
131
+ let spinner = indicatif:: ProgressBar :: new_spinner ( ) ;
132
+ spinner. enable_steady_tick ( 60 ) ;
133
+ spinner. set_message ( "Compiling wasm..." ) ;
134
+ let module = compile_wasm ( & wasm_path) ?;
135
+ spinner. set_message ( "Extracting schema from wasm..." ) ;
136
+ extract_descriptions_from_module ( module) ?
132
137
} ;
133
138
134
139
fs:: create_dir_all ( out_dir) ?;
@@ -368,16 +373,22 @@ impl GenItem {
368
373
}
369
374
370
375
pub fn extract_descriptions ( wasm_file : & Path ) -> anyhow:: Result < RawModuleDef > {
371
- let engine = wasmtime:: Engine :: default ( ) ;
372
- let t = std:: time:: Instant :: now ( ) ;
373
- let module = wasmtime:: Module :: from_file ( & engine, wasm_file) ?;
374
- println ! ( "compilation took {:?}" , t. elapsed( ) ) ;
376
+ let module = compile_wasm ( wasm_file) ?;
377
+ extract_descriptions_from_module ( module)
378
+ }
379
+
380
+ fn compile_wasm ( wasm_file : & Path ) -> anyhow:: Result < wasmtime:: Module > {
381
+ wasmtime:: Module :: from_file ( & wasmtime:: Engine :: default ( ) , wasm_file)
382
+ }
383
+
384
+ fn extract_descriptions_from_module ( module : wasmtime:: Module ) -> anyhow:: Result < RawModuleDef > {
385
+ let engine = module. engine ( ) ;
375
386
let ctx = WasmCtx {
376
387
mem : None ,
377
388
sink : Vec :: new ( ) ,
378
389
} ;
379
- let mut store = wasmtime:: Store :: new ( & engine, ctx) ;
380
- let mut linker = wasmtime:: Linker :: new ( & engine) ;
390
+ let mut store = wasmtime:: Store :: new ( engine, ctx) ;
391
+ let mut linker = wasmtime:: Linker :: new ( engine) ;
381
392
linker. allow_shadowing ( true ) . define_unknown_imports_as_traps ( & module) ?;
382
393
let module_name = & * format ! ( "spacetime_{MODULE_ABI_MAJOR_VERSION}.0" ) ;
383
394
linker. func_wrap (
0 commit comments