Spec-Zone.ru › OCaml

Модуль 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 string option (*

Использовать запуск в стиле shebang. По возможности интерпретатором будет сама среда выполнения, но если путь к ней не подходит для строки shebang, будет создан сценарий оболочки. В этом случае параметр в Shebang (Some sh) представляет собой полный путь к sh; если параметр равен None, компоновщик ищет sh в PATH.

*)

Механизмы запуска исполняемых файлов байт-кода

  • С версии 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API