package octez-l2-libs
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
    
    
  sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
    
    
  doc/octez-l2-libs.webassembly-interpreter/Tezos_webassembly_interpreter/Eval/index.html
Module Tezos_webassembly_interpreter.Eval
type ('a, 'b) map_kont = {- origin : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- destination : 'b Tezos_webassembly_interpreter.Instance.Vector.t;
- offset : int32;
}type 'a concat_kont = {- lv : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- rv : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- res : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- offset : int32;
}exception Link of Source.region * stringexception Trap of Source.region * stringexception Crash of Source.region * stringexception Exhaustion of Source.region * stringexception Init_step_error of init_stateException raised on irreducible states of the small step initialization.
Possible erroneous states of the small-step evaluation, used for error reporting.
exception Evaluation_step_error of eval_stateException raised on irreducible states of the small step evaluation.
type frame = {- inst : Instance.module_key;
- mutable locals : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
}type admin_instr = admin_instr' Source.phraseand admin_instr' = - | From_block of Ast.block_label * int32
- | Plain of Ast.instr'
- | Refer of Values.ref_
- | Invoke of Instance.func_inst
- | Trapping of string
- | Returning of Values.value Tezos_webassembly_interpreter.Instance.Vector.t
- | Breaking of int32 * Values.value Tezos_webassembly_interpreter.Instance.Vector.t
- | Table_init_meta of int32 * Values.ref_ * int32 * int32 * int32 * Ast.var * Ast.var
- | Table_fill_meta of int32 * int32 * int32 * Values.ref_ * Ast.var
- | Table_copy_meta of int32 * int32 * int32 * int32 * Ast.var * Ast.var * bool
- | Memory_init_meta of int32 * int32 * int32 * int32 * int32 * Ast.var
- | Memory_fill_meta of int32 * int32 * Values.num * int32
- | Memory_copy_meta of int32 * int32 * int32 * int32 * bool
type _ label_kont = - | Label_stack : label * label Tezos_webassembly_interpreter.Instance.Vector.t -> ongoing label_kont
- | Label_result : Values.value Tezos_webassembly_interpreter.Instance.Vector.t -> finished label_kont
- | Label_trapped : string Source.phrase -> finished label_kont
type 'a frame_stack = {- frame_arity : int32 option;
- frame_specs : frame;
- frame_label_kont : 'a label_kont;
}type invoke_step_kont = - | Inv_start of {- func : Instance.func_inst;
- code : code;
 - }
- | Inv_prepare_locals of {- arity : int32;
- args : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
- vs : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
- instructions : admin_instr Tezos_webassembly_interpreter.Instance.Vector.t;
- inst : Instance.module_key;
- func : Ast.func;
- locals_kont : (Types.value_type, Values.value) map_kont;
 - }
- | Inv_prepare_args of {- arity : int32;
- vs : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
- instructions : admin_instr Tezos_webassembly_interpreter.Instance.Vector.t;
- inst : Instance.module_key;
- func : Ast.func;
- locals : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
- args_kont : (Values.value, Values.value) map_kont;
 - }
- | Inv_concat of {- arity : int32;
- vs : Values.value Tezos_webassembly_interpreter.Instance.Vector.t;
- instructions : admin_instr Tezos_webassembly_interpreter.Instance.Vector.t;
- inst : Instance.module_key;
- func : Ast.func;
- concat_kont : Values.value concat_kont;
 - }
- | Inv_reveal_tick of {- reveal : Host_funcs.reveal;
- base_destination : int32;
- max_bytes : int32;
- code : code;
 - }
- | Inv_stop of {- code : code;
- fresh_frame : ongoing frame_stack option;
- remaining_ticks : Z.t;
 - }
type label_step_kont = - | LS_Start : ongoing label_kont -> label_step_kont
- | LS_Craft_frame of ongoing label_kont * invoke_step_kont
- | LS_Push_frame of ongoing label_kont * ongoing frame_stack
- | LS_Consolidate_top of label * Values.value concat_kont * admin_instr Tezos_webassembly_interpreter.Instance.Vector.t * label Tezos_webassembly_interpreter.Instance.Vector.t
- | LS_Modify_top : 'a label_kont -> label_step_kont
type step_kont = - | SK_Start : 'a frame_stack * ongoing frame_stack Tezos_webassembly_interpreter.Instance.Vector.t -> step_kont
- | SK_Next : 'a frame_stack * ongoing frame_stack Tezos_webassembly_interpreter.Instance.Vector.t * label_step_kont -> step_kont
- | SK_Consolidate_label_result of ongoing frame_stack * ongoing frame_stack Tezos_webassembly_interpreter.Instance.Vector.t * label * Values.value concat_kont * admin_instr Tezos_webassembly_interpreter.Instance.Vector.t * label Tezos_webassembly_interpreter.Instance.Vector.t
- | SK_Result of Values.value Tezos_webassembly_interpreter.Instance.Vector.t
- | SK_Trapped of string Source.phrase
type ('a, 'b, 'acc) fold_right2_kont = {- acc : 'acc;
- lv : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- rv : 'b Tezos_webassembly_interpreter.Instance.Vector.t;
- offset : int32;
}type ('a, 'b) fold_left_kont = {- origin : 'a Tezos_webassembly_interpreter.Instance.Vector.t;
- acc : 'b;
- offset : int32;
}type create_global_kont = Types.global_type * eval_const_konttype (_, _, _) init_section = - | Func : ((Ast.func, Instance.func_inst) Either.t, Ast.func, Instance.func_inst) init_section
- | Global : (create_global_kont, Ast.global, Instance.global_inst) init_section
- | Table : ((Ast.table, Instance.table_inst) Either.t, Ast.table, Instance.table_inst) init_section
- | Memory : ((Ast.memory, Instance.memory_inst) Either.t, Ast.memory, Instance.memory_inst) init_section
type ('a, 'b) map_concat_kont = - | MC_Map of ('a, 'b Tezos_webassembly_interpreter.Instance.Vector.t) map_kont
- | MC_Join of 'b join_kont
type create_elem_kont = (eval_const_kont, Ast.const, Values.ref_) tick_map_konttype init_kont = - | IK_Start of Instance.extern Tezos_webassembly_interpreter.Instance.Vector.t(*- Very first tick of the *)- initfunction
- | IK_Add_import of (Instance.extern, Ast.import, Instance.module_inst) fold_right2_kont
- | IK_Type of Instance.module_inst * (Ast.type_, Types.func_type) map_kont
- | IK_Aggregate : Instance.module_inst * ('kont, 'a, 'b) init_section * ('kont, 'a, 'b) tick_map_kont -> init_kont
- | IK_Aggregate_concat : Instance.module_inst * ('kont, 'a, 'b) init_section * 'b concat_kont -> init_kont
- | IK_Exports of Instance.module_inst * (Ast.export, exports_acc) fold_left_kont
- | IK_Elems of Instance.module_inst * (create_elem_kont, Ast.elem_segment, Instance.elem_inst) tick_map_kont
- | IK_Datas of Instance.module_inst * (Ast.data_segment, Instance.data_inst) map_kont
- | IK_Es_elems of Instance.module_inst * (Ast.elem_segment, admin_instr) map_concat_kont
- | IK_Es_datas of Instance.module_inst * (Ast.data_segment, admin_instr) map_concat_kont * admin_instr Tezos_webassembly_interpreter.Instance.Vector.t
- | IK_Join_admin of Instance.module_inst * admin_instr join_kont
- | IK_Eval of config
- | IK_Stop(*- Witness that there is no more tick to execute to complete the *)- initprocess.
This is raised when an initialisation function detects that the module does not export its main memory.
val init_step : 
  stack_size_limit:int ->
  filter_exports:bool ->
  ?check_module_exports:memory_export_rules ->
  module_reg:Instance.module_reg ->
  self:Instance.module_key ->
  buffers ->
  Host_funcs.registry ->
  Ast.module_ ->
  init_kont ->
  init_kont Lwt.tSmall-step execution of the init process. See init.
val init : 
  ?stack_size_limit:int ->
  module_reg:Instance.module_reg ->
  self:Instance.module_key ->
  buffers ->
  Host_funcs.registry ->
  Ast.module_ ->
  Instance.extern list ->
  Instance.module_inst Lwt.tval invoke : 
  ?stack_size_limit:int ->
  module_reg:Instance.module_reg ->
  caller:Instance.module_key ->
  ?input:Input_buffer.t ->
  ?output:Output_buffer.t ->
  ?durable:Durable_storage.t ->
  ?init:bool ->
  Host_funcs.registry ->
  Instance.func_inst ->
  Values.value list ->
  (Durable_storage.t * Values.value list) Lwt.tval step : 
  ?init:bool ->
  ?durable:Durable_storage.t ->
  host_funcs:Host_funcs.registry ->
  Instance.module_reg ->
  config ->
  buffers ->
  (Durable_storage.t * config) Lwt.texception Reveal_error of reveal_errorval is_reveal_tick : config -> Host_funcs.reveal optionis_reveal_tick config returns Some hash if the evalutation is in a state expecting the payload of a given hash, and returns None otherwise.
val reveal_step : 
  (memory:Instance.memory_inst ->
    dst:int32 ->
    max_bytes:int32 ->
    payload:bytes ->
    int32 Lwt.t) ->
  Instance.module_reg ->
  bytes ->
  config ->
  config Lwt.treveal_step reveal module_reg payload config loads payload in the memory of the module whose function is being evaluated with config.
This function can only be used when is_reveal_tick returns something (i.e., not None).
val config : 
  stack_size_limit:int ->
  ?frame_arity:int32 ->
  Instance.module_key ->
  Values.value Tezos_webassembly_interpreter.Instance.Vector.t ->
  admin_instr Tezos_webassembly_interpreter.Instance.Vector.t ->
  configval default_output_buffer : unit -> Instance.output_instval buffers : 
  ?input:Instance.input_inst ->
  ?output:Instance.output_inst ->
  unit ->
  buffers