Spec-Zone.ru › OCaml

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

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

*)

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

  • Начиная с 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

Spec-Zone.ru

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