Module Config

module Config: sig .. end

System configuration

Warning: this module is unstable and part of compiler-libs.


let version: string;

The current version number of the system

let standard_library: string;

The directory containing the standard libraries

let ccomp_type: string;

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)

let c_compiler: string;

The compiler to use for compiling C files

let c_output_obj: string;

Name of the option of the C compiler for specifying the output file

let c_has_debug_prefix_map: bool;

Whether the C compiler supports -fdebug-prefix-map

let as_has_debug_prefix_map: bool;

Whether the assembler supports --debug-prefix-map

let ocamlc_cflags: string;

The flags ocamlc should pass to the C compiler

let ocamlc_cppflags: string;

The flags ocamlc should pass to the C preprocessor

let ocamlopt_cflags: string;
Deprecated.Config.ocamlc_cflags should be used instead. The flags ocamlopt should pass to the C compiler
let ocamlopt_cppflags: string;
Deprecated.Config.ocamlc_cppflags should be used instead. The flags ocamlopt should pass to the C preprocessor
let bytecomp_c_libraries: string;

The C libraries to link with custom runtimes

let native_c_libraries: string;

The C libraries to link with native-code programs

let native_pack_linker: string;

The linker to use for packaging (ocamlopt -pack) and for partial links (ocamlopt -output-obj).

let mkdll: string;

The linker command line to build dynamic libraries.

let mkexe: string;

The linker command line to build executables.

let mkmaindll: string;

The linker command line to build main programs as dlls.

let ranlib: string;

Command to randomize a library, or "" if not needed

let ar: string;

Name of the ar command, or "" if not needed (MSVC)

let interface_suffix: ref(string);

Suffix for interface file names

let exec_magic_number: string;

Magic number for bytecode executable files

let cmi_magic_number: string;

Magic number for compiled interface files

let cmo_magic_number: string;

Magic number for object bytecode files

let cma_magic_number: string;

Magic number for archive files

let cmx_magic_number: string;

Magic number for compilation unit descriptions

let cmxa_magic_number: string;

Magic number for libraries of compilation unit descriptions

let ast_intf_magic_number: string;

Magic number for file holding an interface syntax tree

let ast_impl_magic_number: string;

Magic number for file holding an implementation syntax tree

let cmxs_magic_number: string;

Magic number for dynamically-loadable plugins

let cmt_magic_number: string;

Magic number for compiled interface files

let linear_magic_number: string;

Magic number for Linear internal representation files

let max_tag: int;

Biggest tag that can be stored in the header of a regular block.

let lazy_tag: int;

Normally the same as Obj.lazy_tag. Separate definition because of technical reasons for bootstrapping.

let max_young_wosize: int;

Maximal size of arrays that are directly allocated in the minor heap

let stack_threshold: int;

Size in words of safe area at bottom of VM stack, see runtime/caml/config.h

let stack_safety_margin: int;

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.

let architecture: string;

Name of processor type for the native-code compiler

let model: string;

Name of processor submodel for the native-code compiler

let system: string;

Name of operating system for the native-code compiler

let asm: string;

The assembler (and flags) to use for assembling ocamlopt-generated code.

let asm_cfi_supported: bool;

Whether assembler understands CFI directives

let with_frame_pointers: bool;

Whether assembler should maintain frame pointers

let ext_obj: string;

Extension for object files, e.g. .o under Unix.

let ext_asm: string;

Extension for assembler files, e.g. .s under Unix.

let ext_lib: string;

Extension for library files, e.g. .a under Unix.

let ext_dll: string;

Extension for dynamically-loaded libraries, e.g. .so under Unix.

let ext_exe: string;

Extension for executable programs, e.g. .exe under Windows.

let default_executable_name: string;

Name of executable produced by linking if none is given with -o, e.g. a.out under Unix.

let systhread_supported: bool;

Whether the system thread library is implemented

let flexdll_dirs: list(string);

Directories needed for the FlexDLL objects

let host: string;

Whether the compiler is a cross-compiler

let target: string;

Whether the compiler is a cross-compiler

let flambda: bool;

Whether the compiler was configured for flambda

let with_flambda_invariants: bool;

Whether the invariants checks for flambda are enabled

let profinfo: bool;

Whether the compiler was configured for profiling

let profinfo_width: int;

How many bits are to be used in values' headers for profiling information

let safe_string: bool;

Whether the compiler was configured with -force-safe-string; in that case, the -unsafe-string compile-time option is unavailable

let default_safe_string: bool;

Whether the compiler was configured to use the -safe-string or -unsafe-string compile-time option by default.

let flat_float_array: bool;

Whether the compiler and runtime automagically flatten float arrays

let function_sections: bool;

Whether the compiler was configured to generate each function in a separate section

let windows_unicode: bool;

Whether Windows Unicode runtime is enabled

let supports_shared_libraries: bool;

Whether shared libraries are supported

let afl_instrument: bool;

Whether afl-fuzz instrumentation is generated by default

let print_config: out_channel => unit;

Access to configuration values

let config_var: string => option(string);

the configuration value of a variable, if it exists