Module Mavryk_webassembly_interpreter.Instance

module ModuleMap : sig ... end
module NameMap : sig ... end
type module_key =
  1. | Module_key of string
val pp_module_key : Ppx_deriving_runtime.Format.formatter -> module_key -> Ppx_deriving_runtime.unit
val show_module_key : module_key -> Ppx_deriving_runtime.string
type module_inst = {
  1. types : Types.func_type Vector.t;
  2. funcs : func_inst Vector.t;
  3. tables : table_inst Vector.t;
  4. memories : memory_inst Vector.t;
  5. globals : global_inst Vector.t;
  6. exports : extern NameMap.t;
  7. elems : elem_inst Vector.t;
  8. datas : data_inst Vector.t;
  9. allocations : Ast.allocations;
}
and func_inst = module_key Func.t
and table_inst = Table.t
and memory_inst = Memory.t
and global_inst = Global.t
and input_inst = Input_buffer.t
and output_inst = Output_buffer.t
and export_inst = Ast.name * extern
and elem_inst = Values.ref_ Vector.t Stdlib.ref
and data_inst = Ast.data_label Stdlib.ref
and extern =
  1. | ExternFunc of func_inst
  2. | ExternTable of table_inst
  3. | ExternMemory of memory_inst
  4. | ExternGlobal of global_inst
and module_reg = module_inst ModuleMap.t
type Values.ref_ +=
  1. | FuncRef of func_inst
val empty_module_inst : module_inst
val update_module_ref : 'a ModuleMap.t -> module_key -> 'b -> unit
val resolve_module_ref : 'a ModuleMap.t -> module_key -> 'a Lwt.t
val extern_type_of : extern -> Types.extern_type
val export : module_inst -> NameMap.key -> extern option Lwt.t