Module B00_ocaml.ConfSource

Toolchain configuration.

This module provides access to the OCaml toolchain configuration as output by ocaml{c,opt} -config.

Configuration

Sourcetype code = [
  1. | `Byte
  2. | `Native
]

The type for code generated by the OCaml compiler. Either bytecode or native-code.

Sourcetype t

The type for the OCaml toolchain configuration.

Sourceval of_string : ?file:B0_std.Fpath.t -> string -> (t, string) Stdlib.result

of_string ~file data parses toolchain configuration from data as output by the compiler's -config option assuming it was read from file file (defaults to B0_std.Fpath.dash).

Sourceval write : B00.Memo.t -> comp:B00.Tool.t -> o:B0_std.Fpath.t -> unit

write m ~o writes the toolchain configuration to o by running comp with -config.

read m file reads a toolchain configuration from file.

Fields

Sourceval find : string -> t -> string option

find f c looks up the field f in configuration c. See ocamlc -config for the list of fields.

Sourceval version : t -> int * int * int * string option

version c is the compiler version string "major.minor[.patchlevel][+additional-info]" parsed using (major, minor, patch, additional-info). If patch-level is absent it is turned into a 0.

Sourceval where : t -> B0_std.Fpath.t

where c is the location of OCaml's library directory.

Sourceval asm_ext : t -> B0_std.Fpath.ext

asm_ext is the file extension for assembly files.

Sourceval dll_ext : t -> B0_std.Fpath.ext

dll_ext is the file extension for C dynamic libraries.

Sourceval exe_ext : t -> B0_std.Fpath.ext

ext_ext is the file extension for executable binaries.

Sourceval lib_ext : t -> B0_std.Fpath.ext

ext_lib is the file extension for C static libraries.

Sourceval obj_ext : t -> B0_std.Fpath.ext

obj_ext is the file extension for C object files.

has_dynlink determines whether the platform supports dynamic linking.

Converting

Sourceval to_string_map : t -> string B0_std.String.Map.t

to_string_map c are the fields of c as a string map.

Sourceval of_string_map : string B0_std.String.Map.t -> (t, string) Stdlib.result

of_string_map m is a configuration from string map m. m needs at least on key for each parsed field above otherwise the function errors.