Opam Package spirv.1.1.2

Package info

opam-namespirv
opam-version1.1.2
synopsisSPIR-V Compiler Library
description This library provides a code-generated SPIR-V compiler for use in OCaml projects. SpirV operations are specified using label variants (the number of spirv operations exceeds the ocaml type tag size, so a normal type variant won't work). SpirV enumerants are represented as OCaml type variants. For the case of flag types, enumerants are represented as a list of flags. Enumerants that normally specify extended operands wrap the extended operands as a tuple of arguments to the OCaml type constructor. Literal integers are represented with the `int32` type (for `int32` literals, add an `l` at the end; e.g. `10l`). Literal strings are represented with regular OCaml strings. When specifying literal values to the `OpConstant` instruction, the values are wrapped with the `big_int_or_float` type (there is no check against the return type of `OpConstant` right now). The default op for a `OpSpecConstantOp` instruction is specified using the type `spec_op`. The values of `spec_op` are the valid `OpSpecConstantOp` instructions, except that the result type and result are removed and the `Op` prefix is removed (e.g. ```OpSpecConstantOp (type_id, result_id, `IAdd (constant_a, constant_b))``). Extended instructions are currently implemented through a function abstraction. The extended instruction and it's operands are specified with a function in `OpExtInst` which has the type signature `unit -> int32 list`. The idea behind this is that extended instructions can be provided through other OCaml libraries which would return the compiled instruction and operands as a list of SpirV words.
authors
  • Nathan Holland <nholland94@gmail.com>
homepagehttps://github.com/nholland94/spirv-ocaml
licenseMIT
deps (3)
revdeps(0)
metas (1)
libraries (1)

Package modules

Package sources

spirv

Package files

lib/spirv/SpirV.cmxs
lib/spirv/SpirV.cmxa
lib/spirv/SpirV.cmx
lib/spirv/SpirV.cmi
lib/spirv/SpirV.a
lib/spirv/META
lib/spirv