Module C_syntax.Compile_driver

One driver owns naming, binding order, emission order and batch source assembly. The compiler callback retains ownership of its artifacts and libraries; its return value is shared by every batch member, and exceptions cross this boundary unchanged.

Parameters

module Config (Input : sig ... end) : C_syntax_config

Signature

val drive : batch:bool -> names:Base.String.t Base.Array.t -> 'a Indexing.bindings -> Low_level.optimized Base.Array.t -> includes:string -> builtins:(Base.String.t * string * Base.String.t Base.List.t) Base.List.t -> ?conditional_includes:??? -> compile_source:(name:Base.String.t -> Base.String.t -> 'b) -> unit -> 'b * ((Base.string * Backend_intf.kparam_source) Base.list * Base.string * Low_level.launch_dims) Base.Array.t
val compile : name:Base.String.t -> 'a Indexing.bindings -> Low_level.optimized -> includes:string -> builtins:(Base.String.t * string * Base.String.t Base.List.t) Base.List.t -> ?conditional_includes:??? -> compile_source:(name:Base.String.t -> Base.String.t -> 'b) -> unit -> 'b * (Base.string * Backend_intf.kparam_source) Base.list * Base.string * Low_level.launch_dims
val compile_batch : names:Base.String.t Base.Array.t -> 'a Indexing.bindings -> Low_level.optimized Base.Array.t -> includes:string -> builtins:(Base.String.t * string * Base.String.t Base.List.t) Base.List.t -> ?conditional_includes:??? -> compile_source:(name:Base.String.t -> Base.String.t -> 'b) -> unit -> 'b * ((Base.string * Backend_intf.kparam_source) Base.list * Base.string * Low_level.launch_dims) Base.Array.t