Findlib, Lwt, Menhir, Cmdliner, cppo, base64.
See https://github.com/ocsigen/js_of_ocaml/blob/master/opam file for version constraints.
- deriving(see https://github.com/ocsigen/deriving)
- ppx_deriving(see https://github.com/whitequark/ppx_deriving)
- tyxml(see https://github.com/ocsigen/tyxml)
- reactiveData(see https://github.com/ocsigen/reactiveData)
- async_kernel(see https://github.com/janestreet/async_kernel): tested with version 113.33.00
- run make to compile everything
- run make install as root to install the compiler and its libraries
- run make uninstall as root to uninstall them
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \ -syntax camlp4o -linkpkg -o cubes.byte cubes.ml
See also the plugin Ocamlbuild_js_of_ocaml.
Most of the OCaml standard library is supported. However,
- Most of Sys module is not supported.
Extra libraries distributed with Ocaml (such as Thread or Str) are not supported in general. However,
- Bigarray: bigarray are supported using Typed Arrays
- Num: supported using `+nat.js` option
- Graphics: partially supported using canvas (see also js_of_ocaml.graphics)
- Unix: time related functions are supported
Tail call is not optimized in general. However, mutually recursive functions are optimized:
- self recursive functions (when the tail calls are the function itself) are compiled using a loop.
- trampolines are used otherwise. More about tail call optimization.
- marshalling of floats is not supported (unmarshalling works);
- the polymorphic hash function will not give the same results on datastructures containing floats;
- these functions may be more prone to stack overflow.
Contents of the distribution
|LICENSE||license and copyright notice|