Модуль Config_boot
module Config_boot: 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_boot.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-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 (должны указываться перед Config_boot.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_boot.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_boot.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_boot.html