Module Nativevalues
This modules defines the representation of values internally used by the native compiler. Be careful when removing apparently dead code from this interface, as it may be used by programs generated at runtime.
type t= t -> ttype accumulatortype tag= inttype arity= inttype reloc_table= (tag * arity) arraytype annot_sw={asw_ind : Names.inductive;asw_ci : Constr.case_info;asw_reloc : reloc_table;asw_finite : bool;asw_prefix : string;}
type atom=|Arel of int|Aconstant of Constr.pconstant|Aind of Constr.pinductive|Asort of Sorts.t|Avar of Names.Id.t|Acase of annot_sw * accumulator * t * t -> t|Afix of t array * t array * rec_pos * int|Acofix of t array * t array * int * t|Acofixe of t array * t array * int * t|Aprod of Names.Name.t * t * t -> t|Ameta of Constr.metavariable * t|Aevar of Evar.t * t array|Aproj of Names.inductive * int * accumulator
val mk_accu : atom -> tval mk_rel_accu : int -> tval mk_rels_accu : int -> int -> t arrayval mk_constant_accu : Names.Constant.t -> Univ.Level.t array -> tval mk_ind_accu : Names.inductive -> Univ.Level.t array -> tval mk_sort_accu : Sorts.t -> Univ.Level.t array -> tval mk_var_accu : Names.Id.t -> tval mk_sw_accu : annot_sw -> accumulator -> t -> t -> tval mk_prod_accu : Names.Name.t -> t -> t -> tval mk_fix_accu : rec_pos -> int -> t array -> t array -> tval mk_cofix_accu : int -> t array -> t array -> tval mk_meta_accu : Constr.metavariable -> tval mk_evar_accu : Evar.t -> t array -> tval mk_proj_accu : (Names.inductive * int) -> accumulator -> tval upd_cofix : t -> t -> unitval force_cofix : t -> tval mk_const : tag -> tval mk_block : tag -> t array -> tval mk_bool : bool -> tval mk_int : int -> tval mk_uint : Uint63.t -> tval napply : t -> t array -> tval dummy_value : unit -> tval atom_of_accu : accumulator -> atomval args_of_accu : accumulator -> t arrayval accu_nargs : accumulator -> intval cast_accu : t -> accumulator
type kind_of_value=|Vaccu of accumulator|Vfun of t -> t|Vconst of int|Vint64 of int64|Vblock of block
val kind_of_value : t -> kind_of_valueval str_encode : 'a -> stringval str_decode : string -> 'a
val val_to_int : t -> intval is_int : t -> boolval head0 : t -> t -> tval tail0 : t -> t -> tval add : t -> t -> t -> tval sub : t -> t -> t -> tval mul : t -> t -> t -> tval div : t -> t -> t -> tval rem : t -> t -> t -> tval l_sr : t -> t -> t -> tval l_sl : t -> t -> t -> tval l_and : t -> t -> t -> tval l_xor : t -> t -> t -> tval l_or : t -> t -> t -> tval addc : t -> t -> t -> tval subc : t -> t -> t -> tval addCarryC : t -> t -> t -> tval subCarryC : t -> t -> t -> tval mulc : t -> t -> t -> tval diveucl : t -> t -> t -> tval div21 : t -> t -> t -> t -> tval addMulDiv : t -> t -> t -> t -> tval eq : t -> t -> t -> tval lt : t -> t -> t -> tval le : t -> t -> t -> tval compare : t -> t -> t -> tval print : t -> tval no_check_head0 : t -> tval no_check_tail0 : t -> tval no_check_add : t -> t -> tval no_check_sub : t -> t -> tval no_check_mul : t -> t -> tval no_check_div : t -> t -> tval no_check_rem : t -> t -> tval no_check_l_sr : t -> t -> tval no_check_l_sl : t -> t -> tval no_check_l_and : t -> t -> tval no_check_l_xor : t -> t -> tval no_check_l_or : t -> t -> tval no_check_addc : t -> t -> tval no_check_subc : t -> t -> tval no_check_addCarryC : t -> t -> tval no_check_subCarryC : t -> t -> tval no_check_mulc : t -> t -> tval no_check_diveucl : t -> t -> tval no_check_div21 : t -> t -> t -> tval no_check_addMulDiv : t -> t -> t -> tval no_check_eq : t -> t -> tval no_check_lt : t -> t -> tval no_check_le : t -> t -> tval no_check_compare : t -> t -> t