Модуль Config_main
module Config_main: sig .. end
Конфигурация системы
Предупреждение: этот модуль нестабилен и входит в состав compiler-libs.
val version : string
Текущий номер версии системы
val release_number : int
Номер выпуска компилятора
- С версии 5.5
val is_official_release : bool
Истина, если компилятор является неизменённым официальным выпуском OCaml
- С версии 5.5
val bindir : string
Каталог, содержащий исполняемые файлы. Если компилятор был сконфигурирован с --with-relative-libdir, это будет каталог, содержащий выполняемую в данный момент среду выполнения.
val standard_library_relative : string option
Явный относительный путь от исполняемых файлов компилятора до каталога стандартных библиотек, если компилятор был сконфигурирован с --with-relative-libdir, или None в противном случае.
- С версии 5.5
val target_bindir : string
Каталог, содержащий исполняемые файлы среды выполнения в целевой системе
- С версии 5.5
val standard_library_default : string
Эффективное значение каталога по умолчанию, содержащего стандартные библиотеки. Это всегда абсолютный путь, при необходимости вычисляемый с использованием Config_main.standard_library_relative.
- С версии 5.5
val standard_library : string
Эффективный каталог, содержащий стандартные библиотеки, с учётом CAMLLIB и OCAMLLIB.
val ccomp_type : string
«Тип» используемого компилятора C, ассемблера и компоновщика: одно из значений "cc" (для компиляторов C в стиле Unix) или "msvc" (для Microsoft Visual C++ и MASM)
val c_compiler : string
Компилятор для компиляции файлов C
val c_compiler_vendor : string
Производитель и версия компилятора C. Состоит из значений, разделённых дефисами: первая часть указывает производителя компилятора C, а остальные части — его версию, сообщаемую препроцессором этого компилятора.
Возможные значения:
-
msvc
— Windows с использованием Microsoft Visual Studio. Далее следует_MSC_VER
и, если используетсяclang-cl
, а не сама Visual Studio, дополнительноclang-
. -
icc
— компилятор Intel C. -
mingw
— Windows с использованием проекта mingw-w64. Далее следуют основные и дополнительные номера версии самого mingw-w64, а затемgcc-
илиclang-
, указывающие используемый компилятор C. -
clang
— компилятор C Clang LLVM. -
gcc
— компилятор C из GNU Compiler Collection. -
xlc
— компилятор IBM XL C. -
sunc
— Oracle Solaris Studio. -
unknown
— неизвестный производитель компилятора. Дополнительные сведения о версии отсутствуют.
- С версии 5.5
val c_output_obj : string
Имя параметра компилятора C для указания выходного файла
val c_has_debug_prefix_map : bool
Поддерживает ли компилятор C параметр -fdebug-prefix-map
val as_has_debug_prefix_map : bool
Поддерживает ли ассемблер параметр --debug-prefix-map
val as_is_cc : bool
Является ли ассемблер настоящим ассемблером или файлы фактически ассемблируются с помощью компилятора C
- С версии 5.5
val bytecode_cflags : string
Флаги, которые ocamlc должен передавать компилятору C
val bytecode_cppflags : string
Флаги, которые ocamlc должен передавать препроцессору C
val native_cflags : string
Флаги, которые ocamlopt должен передавать компилятору C
val native_cppflags : string
Флаги, которые ocamlopt должен передавать препроцессору C
val bytecomp_c_libraries : string
Библиотеки C для связывания с пользовательскими средами выполнения
val native_c_libraries : string
Библиотеки C для связывания с программами в машинном коде
val compression_c_libraries : string
Библиотеки C, необходимые для -lcomprmarsh (при вызове компилятора C они должны указываться перед Config_main.native_c_libraries)
- С версии 5.4
val native_ldflags : string
val with_nonexecstack_note : bool
Следует ли добавлять явную секцию ".note.GNU-stack", указывающую, что стек не должен быть исполняемым
- С версии 5.4
val native_pack_linker : string
Компоновщик для упаковки (ocamlopt -pack) и частичной компоновки (ocamlopt -output-obj).
val mkdll : string
Командная строка компоновщика для создания динамических библиотек.
val mkexe : string
Командная строка компоновщика для создания исполняемых файлов.
val mkmaindll : string
Командная строка компоновщика для создания основных программ в виде DLL.
val default_rpath : string
Параметр для добавления каталога, в котором во время выполнения будут искаться библиотеки (используется ocamlmklib)
val mksharedlibrpath : string
Параметр для добавления каталога, в котором во время выполнения будут искаться разделяемые библиотеки (используется ocamlmklib)
val ar : string
Имя команды ar или "", если она не нужна (MSVC)
val interface_suffix : string ref
Суффикс имён файлов интерфейсов
val exec_magic_number : string
Магическое число исполняемых файлов байт-кода
val cmi_magic_number : string
Магическое число скомпилированных файлов интерфейсов
val cmo_magic_number : string
Магическое число объектных файлов байт-кода
val cma_magic_number : string
Магическое число файлов архивов
val cmx_magic_number : string
Магическое число описаний единиц компиляции
val cmxa_magic_number : string
Магическое число библиотек описаний единиц компиляции
val ast_intf_magic_number : string
Магическое число файла с синтаксическим деревом интерфейса
val ast_impl_magic_number : string
Магическое число файла с синтаксическим деревом реализации
val cmxs_magic_number : string
Магическое число динамически загружаемых плагинов
val cmt_magic_number : string
Магическое число скомпилированных файлов интерфейсов
val linear_magic_number : string
Магическое число файлов внутреннего представления Linear
val max_tag : int
Наибольший тег, который может храниться в заголовке обычного блока.
val lazy_tag : int
Обычно совпадает с Obj.lazy_tag. Определён отдельно по техническим причинам, связанным с начальной загрузкой.
val max_young_wosize : int
Максимальный размер массивов, непосредственно размещаемых в малой куче
val stack_threshold : int
Размер в словах безопасной области в нижней части стека виртуальной машины; см. runtime/caml/config.h
val stack_safety_margin : int
Размер в словах защитного запаса между нижней частью стека и указателем стека. Этот запас может использоваться для промежуточных вычислений некоторых инструкций или обработчика событий.
val native_compiler : bool
Доступен ли нативный компилятор
- С версии 5.1
val architecture : string
Имя типа процессора для компилятора машинного кода
val model : string
Имя подмодели процессора для компилятора машинного кода
val system : string
Имя операционной системы для компилятора машинного кода
val target_os_type : string
Операционная система, для которой предназначен компилятор машинного кода. Возможные значения:
-
"Unix"(для всех версий Unix, включая Linux и macOS), -
"Win32"(для MS-Windows, OCaml скомпилирован с помощью MSVC++ или MinGW-w64), -
"Cygwin"(для MS-Windows, OCaml скомпилирован с помощью Cygwin).
- С версии 5.4
val target_unix : bool
Истина, если target_os_type = "Unix"
- С версии 5.5
val target_win32 : bool
Истина, если target_os_type = "Win32"
- С версии 5.5
val target_cygwin : bool
Истина, если target_os_type = "Cygwin"
- С версии 5.5
val asm : string
Ассемблер (и флаги) для ассемблирования кода, сгенерированного ocamlopt.
val asm_cfi_supported : bool
Понимает ли ассемблер директивы CFI
val asm_size_type_directives : bool
Можно ли использовать директивы ассемблера .size и .type
- С версии 5.4
val asm_dwarf_version : int option
Версия DWARF, создаваемая командой Config_main.asm. В настоящее время это реализовано только для внутреннего ассемблера clang; для всех остальных ассемблеров используется None.
- С версии 5.5
val with_frame_pointers : bool
Должен ли ассемблер сохранять указатели кадров
val ext_obj : string
Расширение объектных файлов, например .o в Unix.
val ext_asm : string
Расширение файлов ассемблера, например .s в Unix.
val ext_lib : string
Расширение файлов библиотек, например .a в Unix.
val ext_dll : string
Расширение динамически загружаемых библиотек, например .so в Unix.
val ext_exe : string
Расширение исполняемых программ, например .exe в Windows.
- С версии 4.12
val default_executable_name : string
Имя исполняемого файла, создаваемого при компоновке, если оно не задано с помощью -o, например a.out в Unix.
val systhread_supported : bool
Реализована ли библиотека системных потоков
val flexdll_dirs : string list
Каталоги, необходимые для объектов FlexDLL
val host : string
Является ли компилятор кросс-компилятором
val target : string
Является ли компилятор кросс-компилятором
val flambda : bool
Был ли компилятор сконфигурирован для flambda
val with_flambda_invariants : bool
Включены ли проверки инвариантов для flambda
val with_cmm_invariants : bool
Включены ли проверки инвариантов для Cmm
val with_codegen_invariants : bool
Включены ли проверки инвариантов при генерации машинного кода.
val reserved_header_bits : int
Количество зарезервированных битов в заголовке блока
val flat_float_array : bool
Автоматически ли компилятор и среда выполнения разворачивают массивы чисел с плавающей точкой
val align_double : bool
Требуется ли компилятору и среде выполнения выравнивание значений double. Если false, значение floatarray можно привести к массиву double в C.
val align_int64 : bool
Требуется ли компилятору и среде выполнения выравнивание значений int64
val function_sections : bool
Был ли компилятор сконфигурирован для генерации каждой функции в отдельной секции
val windows_unicode : bool
Включена ли среда выполнения Windows Unicode
val naked_pointers : bool
Поддерживает ли среда выполнения неуправляемые указатели
- С версии 4.14
val supports_shared_libraries : bool
Поддерживаются ли разделяемые библиотеки
- С версии 4.08
val native_dynlink : bool
Поддерживаются ли нативные разделяемые библиотеки
- С версии 5.1
val afl_instrument : bool
Включена ли по умолчанию инструментализация afl-fuzz
val ar_supports_response_files : bool
Поддерживает ли ar аргументы @FILE.
val tsan : bool
Включена ли инструментализация ThreadSanitizer
type launch_method =
|
| Executable
| (* |
Использовать запускающую заглушку исполняемого файла |
*) |
|
| Shebang of
| (* |
Использовать запуск в стиле shebang. По возможности интерпретатором будет сама среда выполнения, но если путь к ней не подходит для строки shebang, будет создан сценарий оболочки. В этом случае параметр в |
*) |
Механизмы запуска исполняемых файлов байт-кода
- С версии 5.5
val launch_method : launch_method
Механизм запуска исполняемых файлов байт-кода по умолчанию
- С версии 5.5
type search_method =
|
| Disable
| (* |
Поиск интерпретатора отключён — проверяется только фиксированное абсолютное расположение |
*) |
|
| Fallback
| (* |
Сначала проверяется фиксированное абсолютное расположение; если проверка не удаётся, выполняется поиск |
*) |
|
| Enable
| (* |
Всегда искать интерпретатор |
*) |
Механизмы, используемые поставляемыми исполняемыми файлами байт-кода для поиска интерпретатора
- С версии 5.5
val search_method : search_method
Механизм поиска по умолчанию для исполняемых файлов байт-кода
- С версии 5.5
val shebangscripts : bool
Поддерживает ли целевая система сценарии shebang
- С версии 5.5
val suffixing : bool
Модифицируются ли имена исполняемого файла среды выполнения, разделяемых библиотек и заглушечных библиотек C с помощью идентификаторов среды выполнения и значения Config_main.target.
- С версии 5.5
val bytecode_runtime_id : string
Идентификатор среды выполнения для этой сборки среды выполнения байт-кода
- С версии 5.5
val native_runtime_id : string
Идентификатор среды выполнения для этой сборки нативной среды выполнения
- С версии 5.5
val print_config : out_channel -> unit
Доступ к значениям конфигурации
val config_var : string -> string option
значение конфигурации переменной, если она существует
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/compilerlibref/Config_main.html