Module Primitive

type boxed_integer =
  1. | Pnativeint
  2. | Pint32
  3. | Pint64
type native_repr =
  1. | Same_as_ocaml_repr
  2. | Unboxed_float
  3. | Unboxed_integer of boxed_integer
  4. | Untagged_int
type description = private {
  1. prim_name : string;
  2. prim_arity : int;
  3. prim_alloc : bool;
  4. prim_native_name : string;
  5. prim_native_repr_args : native_repr list;
  6. prim_native_repr_res : native_repr;
}
val simple : name:string -> arity:int -> alloc:bool -> description
val make : name:string -> alloc:bool -> native_name:string -> native_repr_args:native_repr list -> native_repr_res:native_repr -> description
val parse_declaration : Parsetree.value_description -> native_repr_args:native_repr list -> native_repr_res:native_repr -> description
val native_name : description -> string
val byte_name : description -> string
val equal_boxed_integer : boxed_integer -> boxed_integer -> bool
val equal_native_repr : native_repr -> native_repr -> bool
val native_name_is_external : description -> bool

native_name_is_externa returns true iff the native_name for the given primitive identifies that the primitive is not implemented in the compiler itself.

type error =
  1. | Old_style_float_with_native_repr_attribute
  2. | Old_style_noalloc_with_noalloc_attribute
  3. | No_native_primitive_with_repr_attribute
exception Error of Location.t * error