Config_mainSystem configuration
Warning: this module is unstable and part of compiler-libs.
The directory containing the binary programs. If the compiler was configured with --with-relative-libdir then this will be the directory containing the currently executing runtime.
The explicit relative path from the compiler binaries to the standard libraries directory if the compiler was configured with --with-relative-libdir, or None otherwise.
The effective value for the default directory containing the standard libraries. This is always an absolute path, computed using standard_library_relative if necessary.
The effective directory containing the standard libraries, taking CAMLLIB and OCAMLLIB into account.
The "kind" of the C compiler, assembler and linker used: one of "cc" (for Unix-style C compilers) "msvc" (for Microsoft Visual C++ and MASM)
The vendor and version of the C compiler. Consists of hyphenated values where the first part indicates the C compiler's vendor and remaining parts indicate the version of the C compiler, as reported by that C compiler's preprocessor.
Possible values are:
msvc
Windows, using Microsoft Visual Studio.
_MSC_VER
follows and optionally
clang-
if
clang-cl
, rather than Visual Studio itself, is in use.
icc
mingw
Windows, using the mingw-w64 project. The major and minor version of mingw-w64 itself follow and then either
gcc-
or
clang-
indicating which C compiler is in use.
clang
gcc
xlc
sunc
unknown
Whether the assembler is actually an assembler, or whether we are really assembling files via the C compiler
The C libraries needed with -lcomprmarsh (should appear before native_c_libraries in a call to the C compiler)
Whether an explicit ".note.GNU-stack" section is to be added to indicate the stack should not be executable
The linker to use for packaging (ocamlopt -pack) and for partial links (ocamlopt -output-obj).
Option to add a directory to be searched for libraries at runtime (used by ocamlmklib)
Option to add a directory to be searched for shared libraries at runtime (used by ocamlmklib)
val interface_suffix : string refSuffix for interface file names
Normally the same as Obj.lazy_tag. Separate definition because of technical reasons for bootstrapping.
Size in words of safe area at bottom of VM stack, see runtime/caml/config.h
Size in words of the safety margin between the bottom of the stack and the stack pointer. This margin can be used by intermediate computations of some instructions, or the event handler.
Operating system targeted by the native-code compiler. One of
"Unix" (for all Unix versions, including Linux and macOS),"Win32" (for MS-Windows, OCaml compiled with MSVC++ or MinGW-w64),"Cygwin" (for MS-Windows, OCaml compiled with Cygwin).The DWARF Version emitted by the asm command. At present this is only implemented for the clang internal assembler, all other assemblers have None.
Name of executable produced by linking if none is given with -o, e.g. a.out under Unix.
Whether the invariant checks for native code generation are enabled.
Whether the compiler and runtime need to align double values. If false, a floatarray value can be cast to a C array of doubles.
Whether the compiler was configured to generate each function in a separate section
Whether shared libraries are supported
type launch_method = | ExecutableUse the executable launcher stub
*)| Shebang of string optionUse a shebang-style launcher. Whenever possible, the interpreter will be the runtime itself, but if the path to the runtime is not valid for a shebang line, then a shell script is generated. When this is necessary, the parameter in Shebang (Some sh) is the full path to sh; if the parameter is None, then the linker searches PATH for sh.
Launch mechanisms for bytecode executables
val launch_method : launch_methodDefault launch mechanism for bytecode executables
val search_method : search_methodDefault search mechanism for bytecode executables
Whether the runtime executable and shared library filenames and C stub library filenames are being mangled with Runtime IDs and the target.
val print_config : out_channel -> unitAccess to configuration values