Module Ecaml__.Process

type t = Ecaml__.Process0.t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel.Equal.S with type t := t
type t
val equal : t Core_kernel.Equal.equal
include Ecaml__.Import.Value.Subtype with type t := t
type value
type t = private value

We expose private value for free identity conversions when the value is nested in some covariant type, e.g. (symbols : Symbol.t list :> Value.t list) rather than List.map symbols ~f:Symbol.to_value.

val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val eq : t -> t -> bool

eq t1 t2 = Value.eq (to_value t1) (to_value t2), i.e. eq checks whether the Emacs values underlying t1 and t2 are physically equal. This is different than phys_equal t1 t2, because we don't always wrap eq Emacs values in phys_equal OCaml values. I.e. phys_equal t1 t2 implies eq t1 t2, but not the converse.

val is_in_subtype : value -> bool
include Ecaml_value__.Valueable0.S with type t := t
type t
type 'a type_
val of_value_exn : Ecaml_value__.Value0.t -> t
val to_value : t -> Ecaml_value__.Value0.t
val type_ : t type_
val t : t type_
val buffer : t -> Ecaml__.Import.Buffer.t option

(describe-function 'process-buffer)

val command : t -> string list option

(describe-function 'process-command)

val name : t -> string

(describe-function 'process-name)

val pid : t -> Core_kernel.Pid.t option

(describe-function 'process-id)

val query_on_exit : t -> bool

(describe-function 'process-query-on-exit-flag)

module Status : sig ... end
val status : t -> Status.t

(describe-function 'process-status)

module Exit_status : sig ... end
val exit_status : t -> Exit_status.t

(describe-function 'process-exit-status)

module Exited : sig ... end
val exited : t -> Exited.t Async_kernel.Deferred.t
val is_alive : t -> bool

(describe-function 'process-live-p)

val mark : t -> Ecaml.Marker.t

(describe-function 'process-mark)

val set_query_on_exit : t -> bool -> unit

set_query_on_exit t specifies whether Emacs should query the user about killing t when it exits. (describe-function 'set-process-query-on-exit-flag).

val all_emacs_children : unit -> t list

(describe-function 'process-list)

val get_property : t -> Ecaml.Symbol.t -> Ecaml__.Import.Value.t option

(describe-function 'process-get)

val set_property : t -> Ecaml.Symbol.t -> Ecaml__.Import.Value.t -> unit

(describe-function 'process-put)

val create : string -> string list -> name:string -> ?⁠buffer:Ecaml__.Import.Buffer.t -> unit -> t

(Info-goto-node "(elisp)Asynchronous Processes") (describe-function 'start-process)

val find_by_name : string -> t option

(describe-function 'get-process) (Info-goto-node "(elisp)Process Information")

module Call : sig ... end
val call_result_exn : ?⁠input:Call.Input.t -> ?⁠output:Call.Output.t -> ?⁠redisplay_on_output:bool -> ?⁠working_directory:Ecaml.Working_directory.t -> string -> string list -> Call.Result.t

(Info-goto-node "(elisp)Synchronous Processes") (describe-function 'call-process)

val call_region_exn : ?⁠input:Call.Region_input.t -> ?⁠output:Call.Output.t -> ?⁠redisplay_on_output:bool -> ?⁠working_directory:Ecaml.Working_directory.t -> string -> string list -> Call.Result.t

(Info-goto-node "(elisp)Synchronous Processes") (describe-function 'call-process-region)

val call_exn : ?⁠input:Call.Input.t -> ?⁠working_directory:Ecaml.Working_directory.t -> ?⁠strip_whitespace:bool -> ?⁠verbose_exn:bool -> string -> string list -> string

call_exn runs call_result_exn, strips whitespace from stdout+stderr if strip_whitespace is true, and returns the resulting string, raising on nonzero exit.

val call_expect_no_output_exn : ?⁠input:Call.Input.t -> ?⁠working_directory:Ecaml.Working_directory.t -> ?⁠strip_whitespace:bool -> ?⁠verbose_exn:bool -> string -> string list -> unit

call_expect_no_output_exn runs call_result_exn and raises if the command output is not the empty string or on nonzero exit.

val shell_command_result : ?⁠input:Call.Input.t -> ?⁠output:Call.Output.t -> ?⁠redisplay_on_output:bool -> ?⁠working_directory:Ecaml.Working_directory.t -> string -> Call.Result.t
val shell_command_exn : ?⁠input:Call.Input.t -> ?⁠working_directory:Ecaml.Working_directory.t -> ?⁠verbose_exn:bool -> string -> string

shell_command_exn command runs command in a subshell, strips whitespace from stdout+stderr, and returns the resulting string, raising on nonzero exit.

val shell_command_expect_no_output_exn : ?⁠input:Call.Input.t -> ?⁠working_directory:Ecaml.Working_directory.t -> ?⁠verbose_exn:bool -> string -> unit
val create_unix_network_process : unit -> filter:(t -> Ecaml.Text.t -> unit) -> name:string -> socket_path:string -> t

(Info-goto-node "(elisp)Network Servers") (describe-function 'make-network-process)

The t returned by create_unix_network_process represents listening on the socket. The t passed to filter represents a specific connection accepted on the socket.

val kill : t -> unit

(Info-goto-node "(elisp)Deleting Processes") (describe-function 'delete-process).

val extend_sentinel : Core_kernel.Source_code_position.t -> t -> (unit, 'a) Ecaml.Defun.Returns.t -> sentinel:(event:string -> 'a) -> unit

(Info-goto-node "(elisp)Sentinels")

Register sentinel as a process sentinel for the specified process. sentinel runs after any other processes sentinels set for that process.