Misc.RuntimeID(3)

NAME
Misc.RuntimeID - no description

Module
Module Misc.RuntimeID

Documentation

Module RuntimeID
 : sig end

Manipulation of the Runtime ID values used to mangle the filenames of shared libraries and the bytecode interpreters.

type t = private {
 dev : bool ; (* true if this not an unaltered official release of OCaml
 *)
 release : int ; (* Release number (OCaml 5.5 is release 21)
 *)
 reserved : int ; (* The number of reserved bits (0-31) in the value header
 *)
 no_flat_float_array : bool ; (* true if float arrays must be boxed (i.e. configured with --disable-flat-float-array)
 *)
 fp : bool ; (* true if frame pointers are required (i.e. configured with --enable-frame-pointers
 *)
 tsan : bool ; (* true if ThreadSanitizer (TSAN) is required (i.e. configured with --enable-tsan)
 *)
 int31 : bool ; (* true if the platform has 31-bit int s (i.e. 32-bit systems)
 *)
 static : bool ; (* true if dynamic loading of libraries is not supported
 *)
 no_compression : bool ; (* true if compressed marshalling is not supported
 *)
 ansi : bool ; (* true if Unicode support on Windows is disabled
 *)
 }

Runtime IDs

val make_zinc : ?dev:bool -> ?release:int -> ?no_flat_float_array:bool -> ?int31:bool -> ?static:bool -> ?no_compression:bool -> unit -> t

Returns the Zinc Runtime ID for the given parameters (using default values from Config and Sys as necessary)

val make_bytecode : ?dev:bool -> ?release:int -> ?reserved:int -> ?no_flat_float_array:bool -> ?int31:bool -> ?static:bool -> ?no_compression:bool -> ?ansi:bool -> unit -> t

Returns the Bytecode Runtime ID for the given parameters (using default values from Config and Sys as necessary)

val make_native : ?dev:bool -> ?release:int -> ?reserved:int -> ?no_flat_float_array:bool -> ?fp:bool -> ?tsan:bool -> ?int31:bool -> ?static:bool -> ?no_compression:bool -> ?ansi:bool -> unit -> t

Returns the Native Runtime ID for the given parameters (using default values from Config and Sys as necessary)

val is_zinc : t -> bool

is_zinc t is true if t can be used as a Zinc Runtime ID

val is_bytecode : t -> bool

is_bytecode t is true if t can be used as a Bytecode Runtime ID

val is_native : t -> bool

is_native t is true if t can be used as a Native Runtime ID

val to_string : t -> string

Returns the 4-character representation of a Misc.RuntimeID.t

val of_string : string -> t option

Converts the 4-character representation back to a Misc.RuntimeID.t

val ocamlrun : string -> t -> string

ocamlrun variant runtime_id returns the name for the runtime for the given Zinc Runtime ID.

val shared_runtime : ?runtime_id:t -> ?host:string -> ?prefix:string -> Sys.backend_type -> string

shared_runtime ?runtime_id ?host ?prefix backend returns the name of the shared runtime for the given backend . runtime_id defaults to Misc.RuntimeID.make_bytecode if backend = Sys.Bytecode and Misc.RuntimeID.make_native if backend = Sys.Native and host to Config.target . prefix defaults to "-l" and the function does not append Config.ext_dll .

e.g. shared_runtime ~host:"x86_64-pc-linux-gnu" Native
= "-lasmrun-x86_64-pc-linux-gnu-b100" for a default OCaml 5.5 build on a 64-bit system with shared library support and compressed marshalling.

val stubslib : ?runtime_id:t -> ?host:string -> string -> string

stublibs ?runtime_id ?host dllname returns the name for the given DLL basename. dllname should not include Config.ext_dll (and the result does not include it either). host and runtime_id default to Config.target and Misc.RuntimeID.make_bytecode respectively.

e.g. stubslib ~host:"x86_64-pc-linux-gnu" "dllunixbyt"
= "dllunixbyt-x86_64-pc-linux-gnu-001b" for a default OCaml 5.5 build on a 64-bit system with shared library support and compressed marshalling.