diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27703fc31..e3a15acb9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: run: | opam pin add . -y --no-action opam depext -y owi - opam install -y ./*.opam --deps-only --with-test + opam install -y ./*.opam --deps-only --with-test --with-doc opam upgrade --fixup - name: build run: | @@ -42,3 +42,7 @@ jobs: run: | export PATH="$(brew --prefix llvm@15)/bin/:$PATH" # macossucks opam exec -- dune runtest + - name: doc + run: | + ODOC_WARN_ERROR=true opam exec -- dune build @doc 2> output.txt + $(exit $(wc -l output.txt | cut -d " " -f1)) diff --git a/doc/dune b/doc/dune index f8547f2e6..3d190e4ee 100644 --- a/doc/dune +++ b/doc/dune @@ -1,3 +1,6 @@ (documentation (package owi) (mld_files index)) + +(env + (_ (odoc (warnings fatal)))) diff --git a/doc/index.html b/doc/index.html index af3ccf876..29dc2504a 100644 --- a/doc/index.html +++ b/doc/index.html @@ -11,8 +11,8 @@

owi

-

owi is an OCaml toolchain to work with WebAssembly. It provides an interpreter as an executable and a library.

-

To get started, have a look at the quickstart section of the README.

+

owi is a toolchain to work with WebAssembly. Is is written in OCaml. Owi provides many tools: a formatter, an optimizer, a concrete interpreter, a script interpreter and a symbolic interpreter. It also allows to do bug finding on C code by compiling it to Wasm and running the symbolic interpreter. +

To get started, have a look at the README which contains pointers to general documentation and examples.

diff --git a/doc/index.mld b/doc/index.mld index de279d13d..0afe73ac6 100644 --- a/doc/index.mld +++ b/doc/index.mld @@ -1,8 +1,12 @@ {0 owi} -{{:https://github.com/ocamlpro/owi} owi} is an {{:https://ocaml.org} OCaml} toolchain to work with WebAssembly. It provides an interpreter as an executable and a library. +{{:https://github.com/ocamlpro/owi} owi} is a toolchain to work with WebAssembly. It is written in {{:https://ocaml.org} OCaml}. -To get started, have a look at the {{:https://github.com/OCamlPro/owi#quickstart} quickstart} section of the README. +Owi provides many tools: a formatter, an optimizer, a concrete interpreter, a script interpreter and a symbolic interpreter. It also allows to do bug finding on C code by compiling it to Wasm and running the symbolic interpreter. + +To get started, have a look at the {{:https://github.com/OCamlPro/owi} README} which contains pointers to general documentation and examples. + +Here you will only find the API documentation which is written towards people using the OCaml library directly or people trying to understand the code of Owi such as its developpers. :-) {1:api API} @@ -11,28 +15,74 @@ Owi.Parse Owi.Types Owi.Compile Owi.Check -Owi.Simplify Owi.Typecheck +Owi.Optimize Owi.Link Owi.Log Owi.Interpret Owi.Script -Owi.Pp -Owi.Value } {1:private_api Private API} -You shouldn't have to use any of these modules, they're used internally only. +You shouldn't have to use any of these modules, they're used internally only. Nonetheless, some modules should maybe move to the public API, open an issue on the repository if you believe a mistake has been done. {!modules: +Owi.Assigned +Owi.C_instrumentor +Owi.C_share +Owi.C_share_site +Owi.Choice_intf +Owi.Cmd_c +Owi.Cmd_fmt +Owi.Cmd_opt +Owi.Cmd_run +Owi.Cmd_script +Owi.Cmd_sym +Owi.Concrete +Owi.Concrete_choice +Owi.Concrete_global +Owi.Concrete_memory +Owi.Concrete_table +Owi.Concrete_value Owi.Convert +Owi.Env_id Owi.Float32 Owi.Float64 +Owi.Format +Owi.Func_id +Owi.Func_intf +Owi.Grouped +Owi.Imported +Owi.Indexed Owi.Int32 Owi.Int64 +Owi.Interpret_intf Owi.Lexer +Owi.Link_env Owi.Menhir_parser +Owi.Named +Owi.Result +Owi.Rewrite +Owi.Runtime +Owi.Simplified +Owi.Simplified_types +Owi.Symbolic +Owi.Symbolic_choice +Owi.Symbolic_global +Owi.Symbolic_memory +Owi.Symbolic_table +Owi.Symbolic_value Owi.Spectest +Owi.Stack +Owi.String_map +Owi.Syntax +Owi.Text +Owi.Thread +Owi.Tracing +Owi.Trap +Owi.Typecheck +Owi.Value_intf +Owi.V Owi.Wutf8 }