Модуль Config
module Config: 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.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, а оставшиеся части — версию компилятора C, сообщаемую его препроцессором.
Возможные значения:
-
msvc
— Windows с использованием Microsoft Visual Studio. Далее следует_MSC_VER
и, при необходимости,clang-
, если используетсяclang-cl
, а не сама Visual Studio. -
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 (должны указываться перед Config.native_c_libraries при вызове компилятора C)
- Начиная с 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.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
Выполняют ли компилятор и среда выполнения автоматическое уплощение массивов float
val align_double : bool
Требуется ли компилятору и среде выполнения выравнивание значений double. Если false, значение floatarray можно привести к массиву double в C.
val align_int64 : bool
Требуется ли компилятору и среде выполнения выравнивание значений int64
val function_sections : bool
Был ли компилятор настроен на генерацию каждой функции в отдельной секции
val windows_unicode : bool
Включена ли среда выполнения Unicode для Windows
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
| (* |
Использовать загрузчик с шебангом. Если возможно, интерпретатором будет сама среда выполнения, но если путь к среде выполнения недопустим для строки шебанга, будет создан сценарий оболочки. В этом случае параметр в |
*) |
Механизмы запуска исполняемых файлов байт-кода
- Начиная с 5.5
val launch_method : launch_method
Механизм запуска по умолчанию для исполняемых файлов байт-кода
- Начиная с 5.5
type search_method =
|
| Disable
| (* |
Поиск интерпретатора отключён — проверяется только фиксированное абсолютное расположение |
*) |
|
| Fallback
| (* |
Сначала проверяется фиксированное абсолютное расположение; если это не удаётся, выполняется поиск |
*) |
|
| Enable
| (* |
Всегда искать интерпретатор |
*) |
Механизмы, используемые исполняемыми файлами байт-кода с tender, для поиска интерпретатора
- Начиная с 5.5
val search_method : search_method
Механизм поиска по умолчанию для исполняемых файлов байт-кода
- Начиная с 5.5
val shebangscripts : bool
Поддерживает ли целевая система сценарии с шебангом
- Начиная с 5.5
val suffixing : bool
Модифицируются ли имена исполняемых файлов среды выполнения, имена файлов разделяемых библиотек и имена файлов библиотек-заглушек C с использованием идентификаторов среды выполнения и Config.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.html