Module Vmvalues
type values
type structured_values
type vm_env
type vm_global
type vprod
type vfun
type vfix
type vcofix
type vblock
type arguments
type vstack
= values array
type to_update
type tag
= int
val accu_tag : tag
val type_atom_tag : tag
val max_atom_tag : tag
val proj_tag : tag
val fix_app_tag : tag
val switch_tag : tag
val cofix_tag : tag
val cofix_evaluated_tag : tag
type structured_constant
=
|
Const_sort of Sorts.t
|
Const_ind of Names.inductive
|
Const_b0 of tag
|
Const_univ_level of Univ.Level.t
|
Const_val of structured_values
|
Const_uint of Uint63.t
|
Const_float of Float64.t
val pp_struct_const : structured_constant -> Pp.t
type reloc_table
= (tag * int) array
type annot_switch
=
{
ci : Constr.case_info;
rtbl : reloc_table;
tailcall : bool;
max_stack_size : int;
}
val eq_structured_constant : structured_constant -> structured_constant -> bool
val hash_structured_constant : structured_constant -> int
val eq_annot_switch : annot_switch -> annot_switch -> bool
val hash_annot_switch : annot_switch -> int
val fun_val : vfun -> values
val fix_val : vfix -> values
val cofix_upd_val : to_update -> values
val fun_env : vfun -> vm_env
val fix_env : vfix -> vm_env
val cofix_env : vcofix -> vm_env
val cofix_upd_env : to_update -> vm_env
val vm_global : values array -> vm_global
val fun_of_val : values -> vfun
Cast a value known to be a function, unsafe in general
val crazy_val : values
type tcode
type vswitch
=
{
sw_type_code : tcode;
sw_code : tcode;
sw_annot : annot_switch;
sw_stk : vstack;
sw_env : vm_env;
}
val mkAccuCode : int -> tcode
type id_key
=
|
ConstKey of Names.Constant.t
|
VarKey of Names.Id.t
|
RelKey of Int.t
|
EvarKey of Evar.t
type atom
=
|
Aid of id_key
|
Aind of Names.inductive
|
Asort of Sorts.t
val get_atom_rel : unit -> atom array
Global table of rels
type zipper
=
|
Zapp of arguments
|
Zfix of vfix * arguments
might be empty
|
Zswitch of vswitch
|
Zproj of Names.Projection.Repr.t
type stack
= zipper list
type whd
=
|
Vprod of vprod
|
Vfun of vfun
|
Vfix of vfix * arguments option
|
Vcofix of vcofix * to_update * arguments option
|
Vconstr_const of int
|
Vconstr_block of vblock
|
Vint64 of int64
|
Vfloat64 of float
|
Vatom_stk of atom * stack
|
Vuniv_level of Univ.Level.t
val val_of_str_const : structured_constant -> values
val val_of_rel : int -> values
val val_of_named : Names.Id.t -> values
val val_of_constant : Names.Constant.t -> values
val val_of_evar : Evar.t -> values
val val_of_proj : Names.Projection.Repr.t -> values -> values
val val_of_atom : atom -> values
val val_of_int : int -> structured_values
val val_of_block : tag -> structured_values array -> structured_values
val val_of_uint : Uint63.t -> structured_values
val val_of_annot_switch : annot_switch -> values
val val_of_proj_name : Names.Projection.Repr.t -> values
val whd_val : values -> whd
val uni_lvl_val : values -> Univ.Level.t
val closure_arity : vfun -> int
Fun
val current_fix : vfix -> int
val check_fix : vfix -> vfix -> bool
val rec_args : vfix -> int array
val first_fix : vfix -> vfix
val fix_types : vfix -> tcode array
val cofix_types : vcofix -> tcode array