Module Base.Sys
Cross-platform system configuration values.
val get_argv : unit -> string array
The command line arguments given to the process. The first element is the command name used to invoke the program. The following elements are the command-line arguments given to the program.
When running in JavaScript in the browser, it is
[| "a.out" |]
.get_argv
is a function because the external functioncaml_sys_modify_argv
can replace the array starting in OCaml 4.09.
val interactive : bool Stdlib.ref
interactive
is set totrue
when being executed in theocaml
REPL, andfalse
otherwise.
val os_type : string
os_type
describes the operating system that the OCaml program is running on. Its value is one of"Unix"
,"Win32"
, or"Cygwin"
. When running in JavaScript, it is"Unix"
.
type backend_type
= Base__.Sys0.backend_type
=
|
Native
|
Bytecode
|
Other of string
Currently, the official distribution only supports
Native
andBytecode
, but it can be other backends with alternative compilers, for example, JavaScript.
val backend_type : backend_type
Backend type currently executing the OCaml program.
val word_size_in_bits : int
word_size_in_bits
is the number of bits in one word on the machine currently executing the OCaml program. Generally speaking it will be either32
or64
. When running in JavaScript, it will be32
.
val int_size_in_bits : int
int_size_in_bits
is the number of bits in theint
type. Generally, on 32-bit platforms, its value will be31
, and on 64 bit platforms its value will be63
. When running in JavaScript, it will be32
.Int.num_bits
is the same as this value.
val big_endian : bool
big_endian
is true when the program is running on a big-endian architecture. When running in JavaScript, it will befalse
.
val max_string_length : int
max_string_length
is the maximum allowed length of astring
orBytes.t
.String.max_length
is the same as this value.
val max_array_length : int
max_array_length
is the maximum allowed length of an'a array
.Array.max_length
is the same as this value.
val runtime_variant : unit -> string
Returns the name of the runtime variant the program is running on. This is normally the argument given to
-runtime-variant
at compile time, but for byte-code it can be changed after compilation.When running in JavaScript or utop it will be
""
, while if compiled with DEBUG (debugging of the runtime) it will be"d"
, and if compiled with CAML_INSTR (instrumentation of the runtime) it will be"i"
.
val runtime_parameters : unit -> string
Returns the value of the runtime parameters, in the same format as the contents of the
OCAMLRUNPARAM
environment variable. When running in JavaScript, it will be""
.
val ocaml_version : string
ocaml_version
is the OCaml version with which the program was compiled. It is a string of the form"major.minor[.patchlevel][+additional-info]"
, where major, minor, and patchlevel are integers, and additional-info is an arbitrary string. The[.patchlevel]
and[+additional-info]
parts may be absent.
val enable_runtime_warnings : bool -> unit
Controls whether the OCaml runtime system can emit warnings on stderr. Currently, the only supported warning is triggered when a channel created by
open_*
functions is finalized without being closed. Runtime warnings are enabled by default.
val getenv : string -> string option
Return the value associated to a variable in the process environment. Return
None
if the variable is unbound or the process has special privileges, as determined bysecure_getenv(3)
on Linux.
val opaque_identity : 'a -> 'a
For the purposes of optimization,
opaque_identity
behaves like an unknown (and thus possibly side-effecting) function. At runtime,opaque_identity
disappears altogether. A typical use of this function is to prevent pure computations from being optimized away in benchmarking loops. For example:for _round = 1 to 100_000 do ignore (Sys.opaque_identity (my_pure_computation ())) done