module IntMap : sig ... end

Functional maps with int keys.

module IntSet : sig ... end

Functional sets of integers.

module StrMap : sig ... end

Functional maps with string keys.

module StrSet : sig ... end

Functional sets of strings.

val get_safe_prefix : string -> StrSet.t -> string

get_safe_prefix p strings returns a string starting with p and so that there is no non-negative integer k such that p ^ string_of_int k belongs to strings.

val time : ( 'a -> 'b ) -> 'a -> float * 'b

time f x times the application of f to x, and returns the evaluation time in seconds together with the result of the application.

exception Timeout

Exception raised by the with_timeout function on a timeout.

val with_timeout : int -> ( 'a -> 'b ) -> 'a -> 'b

with_timeout nbs f x computes f x with a timeout of nbs seconds. The exception Timeout is raised if the computation takes too long, otherwise everything goes the usual way.

val input_lines : in_channel -> string list

input_lines ic reads the input channel ic line by line and returns its contents. The trailing newlines are removed in lines. The input channel is not closed by the function.

val run_process : string -> string list option

run_process cmd runs the command cmd and returns the list of the lines that it printed to its standard output (if the command was successful). If the command failed somehow, then None is returned.

val file_time : string -> float

file_time fname returns the modification time of file fname represented as a float. neg_infinity is returned if the file does not exist.

val more_recent : string -> string -> bool

more_recent source target checks whether the target (produced from the source file) should be produced again. This is the case when source is more recent than target.

val files : ( string -> bool ) -> string -> string list

files f d returns all the filenames in d and its sub-directories recursively satisfying the function f, assuming that d is a directory.