shexp

Process library and s-expression based shell
IN THIS PACKAGE
Parameter #1 Shexp_process . Std . Process . With_debug . Dbg
type t
type ('a, 'b) prim_token
val before_prim : t -> ( 'a, 'b ) Prim.t -> ( 'a, 'b ) Prim.Args.t -> ( 'a, 'b ) prim_token

Called before the execution of a primitive. The S-expression is a representation of the primitive call, for instance (mkdir "foo").

val after_prim : t -> ( 'a, 'b ) Prim.t -> ( 'b, exn * Printexc.raw_backtrace ) result -> ( 'a, 'b ) prim_token -> unit

Called after the execution of a primitive, with the result.

val user_exn : t -> exn -> Printexc.raw_backtrace -> unit

Register a user exception, i.e. when a bind raises.

val output : t -> string -> unit

Captured output

val fork : t -> t * t

Called before forking.

val end_fork : t -> t -> t -> unit

Called in the same thread that started the fork.

val enter_sub : t -> unit

Shexp tries to linearize the trace as much as possible. When an execution parameter is changed locally, such as in (chdir ...) >>= ..., a sub context is entered.

val leave_sub : t -> unit
val force_threads : bool

Force the use of threads in all forks, even when Shexp_process detect they are not necessary.