Jkind.Sortinclude Jkind_intf.Sort
with type t = Jkind_types.Sort.t
and type base = Jkind_types.Sort.base
and type Const.t = Jkind_types.Sort.Const.ttype t = Jkind_types.Sort.tA sort classifies how a type is represented at runtime. Every concrete jkind has a sort, and knowing the sort is sufficient for knowing the calling convention of values of a given type.
type base = Jkind_types.Sort.base = | VoidNo run time representation at all
*)| ValueStandard ocaml value representation
*)| Untagged_immediateUntagged 31- or 63-bit immediates, but without the tag bit, so they must never be visible to the GC
*)| Float64Unboxed 64-bit floats
*)| Float32Unboxed 32-bit floats
*)| WordUnboxed native-size integers
*)| Bits8Unboxed 8-bit integers
*)| Bits16Unboxed 16-bit integers
*)| Bits32Unboxed 32-bit integers
*)| Bits64Unboxed 64-bit integers
*)| Vec128Unboxed 128-bit simd vectors
*)| Vec256Unboxed 256-bit simd vectors
*)| Vec512Unboxed 512-bit simd vectors
*)These are the constant sorts -- fully determined and without variables
module Const : sig ... endmodule Var : sig ... endval void : tval value : tval float64 : tval float32 : tval word : tval bits32 : tval bits64 : tval new_var : level:int -> tCreate a new sort variable that can be unified.
This checks for equality, and sets any variables to make two sorts equal, if possible
val format : Format.formatter -> t -> unitval is_void_defaulting : t -> boolChecks whether this sort is void, defaulting to value if a sort variable is unfilled.
default_to_value_and_get extracts the sort as a `const`. If it's a variable, it is set to value first.
default_for_transl_and_get extracts the sort as a `const`. If it's a variable, it is set to value first. After we have support for void, this will default to void instead.
val undo_change : change -> unitmodule Debug_printers : sig ... endmodule Flat : sig ... end