1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
|
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
(* *)
(* Copyright 1996 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** System configuration
{b Warning:} this module is unstable and part of
{{!Compiler_libs}compiler-libs}.
*)
val version: string
(** The current version number of the system *)
val bindir: string
(** The directory containing the binary programs *)
val standard_library: string
(** The directory containing the standard libraries *)
val 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) *)
val c_compiler: string
(** The compiler to use for compiling C files *)
val c_output_obj: string
(** Name of the option of the C compiler for specifying the output
file *)
val c_has_debug_prefix_map : bool
(** Whether the C compiler supports -fdebug-prefix-map *)
val as_has_debug_prefix_map : bool
(** Whether the assembler supports --debug-prefix-map *)
val bytecode_cflags : string
(** The flags ocamlc should pass to the C compiler *)
val bytecode_cppflags : string
(** The flags ocamlc should pass to the C preprocessor *)
val native_cflags : string
(** The flags ocamlopt should pass to the C compiler *)
val native_cppflags : string
(** The flags ocamlopt should pass to the C preprocessor *)
val bytecomp_c_libraries: string
(** The C libraries to link with custom runtimes *)
val native_c_libraries: string
(** The C libraries to link with native-code programs *)
val compression_c_libraries: string
(** The C libraries needed with -lcomprmarsh (should appear before
{!native_c_libraries} in a call to the C compiler)
@since 5.4 *)
val native_ldflags : string
(* Flags to pass to the system linker *)
val with_nonexecstack_note : bool
(** Whether an explicit ".note.GNU-stack" section is to be added to indicate
the stack should not be executable
@since 5.4 *)
val native_pack_linker: string
(** The linker to use for packaging (ocamlopt -pack) and for partial
links (ocamlopt -output-obj). *)
val mkdll: string
(** The linker command line to build dynamic libraries. *)
val mkexe: string
(** The linker command line to build executables. *)
val mkmaindll: string
(** The linker command line to build main programs as dlls. *)
val default_rpath: string
(** Option to add a directory to be searched for libraries at runtime
(used by ocamlmklib) *)
val mksharedlibrpath: string
(** Option to add a directory to be searched for shared libraries at runtime
(used by ocamlmklib) *)
val ar: string
(** Name of the ar command, or "" if not needed (MSVC) *)
val interface_suffix: string ref
(** Suffix for interface file names *)
val exec_magic_number: string
(** Magic number for bytecode executable files *)
val cmi_magic_number: string
(** Magic number for compiled interface files *)
val cmo_magic_number: string
(** Magic number for object bytecode files *)
val cma_magic_number: string
(** Magic number for archive files *)
val cmx_magic_number: string
(** Magic number for compilation unit descriptions *)
val cmxa_magic_number: string
(** Magic number for libraries of compilation unit descriptions *)
val ast_intf_magic_number: string
(** Magic number for file holding an interface syntax tree *)
val ast_impl_magic_number: string
(** Magic number for file holding an implementation syntax tree *)
val cmxs_magic_number: string
(** Magic number for dynamically-loadable plugins *)
val cmt_magic_number: string
(** Magic number for compiled interface files *)
val linear_magic_number: string
(** Magic number for Linear internal representation files *)
val max_tag: int
(** Biggest tag that can be stored in the header of a regular block. *)
val lazy_tag : int
(** Normally the same as Obj.lazy_tag. Separate definition because
of technical reasons for bootstrapping. *)
val max_young_wosize: int
(** Maximal size of arrays that are directly allocated in the
minor heap *)
val stack_threshold: int
(** Size in words of safe area at bottom of VM stack,
see runtime/caml/config.h *)
val 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. *)
val native_compiler: bool
(** Whether the native compiler is available or not
@since 5.1 *)
val architecture: string
(** Name of processor type for the native-code compiler *)
val model: string
(** Name of processor submodel for the native-code compiler *)
val system: string
(** Name of operating system for the native-code compiler *)
val target_os_type: string
(** Operating system targetted 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). *)
val asm: string
(** The assembler (and flags) to use for assembling
ocamlopt-generated code. *)
val asm_cfi_supported: bool
(** Whether assembler understands CFI directives *)
val asm_size_type_directives: bool
(** Whether the [.size] and [.type] assembler directives can be used
@since 5.4 *)
val with_frame_pointers : bool
(** Whether assembler should maintain frame pointers *)
val ext_obj: string
(** Extension for object files, e.g. [.o] under Unix. *)
val ext_asm: string
(** Extension for assembler files, e.g. [.s] under Unix. *)
val ext_lib: string
(** Extension for library files, e.g. [.a] under Unix. *)
val ext_dll: string
(** Extension for dynamically-loaded libraries, e.g. [.so] under Unix.*)
val ext_exe: string
(** Extension for executable programs, e.g. [.exe] under Windows.
@since 4.12 *)
val default_executable_name: string
(** Name of executable produced by linking if none is given with -o,
e.g. [a.out] under Unix. *)
val systhread_supported : bool
(** Whether the system thread library is implemented *)
val flexdll_dirs : string list
(** Directories needed for the FlexDLL objects *)
val host : string
(** Whether the compiler is a cross-compiler *)
val target : string
(** Whether the compiler is a cross-compiler *)
val flambda : bool
(** Whether the compiler was configured for flambda *)
val with_flambda_invariants : bool
(** Whether the invariants checks for flambda are enabled *)
val with_cmm_invariants : bool
(** Whether the invariants checks for Cmm are enabled *)
val with_codegen_invariants : bool
(** Whether the invariant checks for native code generation are enabled. *)
val reserved_header_bits : int
(** How many bits of a block's header are reserved *)
val flat_float_array : bool
(** Whether the compiler and runtime automagically flatten float
arrays *)
val align_double : bool
(** Whether the compiler and runtime need to align double values.
If [false], a [floatarray] value can be cast to a C array of doubles. *)
val align_int64 : bool
(** Whether the compiler and runtime need to align int64 values *)
val function_sections : bool
(** Whether the compiler was configured to generate
each function in a separate section *)
val windows_unicode: bool
(** Whether Windows Unicode runtime is enabled *)
val naked_pointers : bool
(** Whether the runtime supports naked pointers
@since 4.14 *)
val supports_shared_libraries: bool
(** Whether shared libraries are supported
@since 4.08 *)
val native_dynlink: bool
(** Whether native shared libraries are supported
@since 5.1 *)
val afl_instrument : bool
(** Whether afl-fuzz instrumentation is generated by default *)
val ar_supports_response_files: bool
(** Whether ar supports @FILE arguments. *)
val tsan : bool
(** Whether ThreadSanitizer instrumentation is enabled *)
(** Access to configuration values *)
val print_config : out_channel -> unit
val config_var : string -> string option
(** the configuration value of a variable, if it exists *)
(**/**)
val merlin : bool
(**/**)
|