Module Primitive

type boxed_integer =
| Pnativeint
| Pint32
| Pint64
type native_repr =
| Same_as_ocaml_repr
| Unboxed_float
| Unboxed_integer of boxed_integer
| Untagged_int
type description = private {
prim_name : string;
prim_arity : int;
prim_alloc : bool;
prim_native_name : string;
prim_native_repr_args : native_repr list;
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 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 =
| Old_style_float_with_native_repr_attribute
| Old_style_noalloc_with_noalloc_attribute
| No_native_primitive_with_repr_attribute
exception Error of Location.t * error