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 * accumulatortype symbol=|SymbValue of t|SymbSort of Sorts.t|SymbName of Names.Name.t|SymbConst of Names.Constant.t|SymbMatch of annot_sw|SymbInd of Names.inductive|SymbMeta of Constr.metavariable|SymbEvar of Evar.t|SymbLevel of Univ.Level.t|SymbProj of Names.inductive * inttype symbols= symbol array
val empty_symbols : symbolsval 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 mk_float : Float64.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|Vfloat64 of float|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
val is_float : t -> boolval fopp : t -> t -> tval fabs : t -> t -> tval feq : t -> t -> t -> tval flt : t -> t -> t -> tval fle : t -> t -> t -> tval fcompare : t -> t -> t -> tval fclassify : t -> t -> tval fadd : t -> t -> t -> tval fsub : t -> t -> t -> tval fmul : t -> t -> t -> tval fdiv : t -> t -> t -> tval fsqrt : t -> t -> tval float_of_int : t -> t -> tval normfr_mantissa : t -> t -> tval frshiftexp : t -> t -> tval ldshiftexp : t -> t -> t -> tval next_up : t -> t -> tval next_down : t -> t -> tval no_check_fopp : t -> tval no_check_fabs : t -> tval no_check_feq : t -> t -> tval no_check_flt : t -> t -> tval no_check_fle : t -> t -> tval no_check_fcompare : t -> t -> tval no_check_fclassify : t -> tval no_check_fadd : t -> t -> tval no_check_fsub : t -> t -> tval no_check_fmul : t -> t -> tval no_check_fdiv : t -> t -> tval no_check_fsqrt : t -> tval no_check_float_of_int : t -> tval no_check_normfr_mantissa : t -> tval no_check_frshiftexp : t -> tval no_check_ldshiftexp : t -> t -> tval no_check_next_up : t -> tval no_check_next_down : t -> t