Misc.RuntimeIDManipulation 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 ints (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 ->
tval make_bytecode :
?dev:bool ->
?release:int ->
?reserved:int ->
?no_flat_float_array:bool ->
?int31:bool ->
?static:bool ->
?no_compression:bool ->
?ansi:bool ->
unit ->
tval 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 ->
tval is_zinc : t -> boolis_zinc t is true if t can be used as a Zinc Runtime ID
val is_bytecode : t -> boolis_bytecode t is true if t can be used as a Bytecode Runtime ID
val is_native : t -> boolis_native t is true if t can be used as a Native Runtime ID
val ocamlrun : string -> t -> stringocamlrun variant runtime_id returns the name for the runtime for the given Zinc Runtime ID.
shared_runtime ?runtime_id ?host ?prefix backend returns the name of the shared runtime for the given backend. runtime_id defaults to make_bytecode if backend = Sys.Bytecode and 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 -> stringstublibs ?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 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.