Legend:
Library
Module
Module type
Parameter
Class
Class type
Command lines.
Command line values specify the command line arguments given to tools spawns. In certain contexts the command line value is the full specification of the tool spawn, in this case the first element of the line defines the program to invoke. In other contexts the tool to invoke and its arguments are kept separate.
examples.
B00 artefact. This module allows to unstamp command arguments. Unstamped arguments have no special semantics as far as the command line is concerned they simply indicate that the argument value itself does not influence the outputs of the tool. Unstamped arguments do not appear in the command line stamp which is used to memoize tool spawns. A typical example of unstamped arguments are file paths to inputs: it's often the file contents not the actual file path that determines the tool output; beware though that some tool use both the file path contents and the actual file path in their outputs.
Command lines
type t
The type for command lines. A command line is a list of command line arguments.
The type for command line tools. A command line tool is represented by a file path according to the POSIX convention for exec(3). If it is made of a single segment, for example Fpath.v "ocaml", it represents a program name to be looked up via a search procedure; for example in the PATH environment variable. If it is a file path with multiple segments (POSIX would say if they contain a slash characters) the program is the file itself.
of_string s tokenizes s into a command line. The tokens are recognized according to the token production of the following grammar which should be mostly be compatible with POSIX shell tokenization.
qchar are substitued by the byte they escape except for '\n' which removes the backslash and newline from the byte stream. squoted and dquoted represent the bytes they enclose.