OnWorks favicon

js_of_eliom - Online in the Cloud

Run js_of_eliom in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command js_of_eliom that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



eliomc, eliomcp, eliomopt, js_of_eliom, eliomdep - the eliom build tools


eliomc [options] files

eliomcp [options] files

eliomopt [options] files

eliomdep [options] files

eliomdoc [options] files

eliompp [-client|-server] files

js_of_eliom [options] files -o filename.js


eliomc, eliomcp and eliomopt are wrapper around the OCaml compiler that ease the
compilation of the server part of projects based on the Eliom framework. They respectively
accept the same set of option than the ocamlc(1),ocamlcp(1) and ocamlopt(1) compilers plus
the specific ones described in the OPTIONS section.

js_of_eliom is a wrapper around the OCaml and Js_of_ocaml compilers that ease the
compilation of the client part of projects based on the Eliom framework. It accepts the
same set of option than the ocamlc(1) compiler plus the specific ones described in the
OPTIONS section.

eliomdep is a wrapper around ocamldep(1) that handles dependencies of an .eliom source
files. It accepts the same set of options plus the specific ones described in the OPTIONS
section. It makes the assumption that server-side compiled modules of OCaml files located
in this directory subtree are in directory _server (with same subdirectories structure)
(resp. in directory _client for client-side compiled modules).

eliompp (EXPERIMENTAL) is a preprocessor which remove specific sections, depending on the
given option. The option -client will remove all the top-level parts and server sections
and the option -server will remove only the client sections.

eliomdoc (EXPERIMENTAL) is a wrapper around the OCaml documentation generator ocamldoc.
It allows you to generate documentation from client or server side. It accepts the same
set of option than ocamldoc(1). It automatically extracts the commentaries from the
desired sections. eliomdoc is currently experimental, and you could find some undefined
behaviours. (see http://ocsigen.org/eliom/manual/workflow-compilation). Some well known
bugs are:

· your files should always begin with a value and not with a comment. Otherwise,
camlp4 won't output the commentaries.

· sometimes, comment node are not attached as expected. That's because camlp4
(sometimes) remove extra new line between value elements.


The compilation of files with a .eliom extension is achieved in three steps: infer the
type of value sent by the server to the client; compile the server part of the code and
compile the client part. The first two steps can be realised with eliomc and the last one
with js_of_eliom.

Both tools produce a .cmo file named as the original .eliom file. To avoid overwriting the
.cmo representing the server part with .cmo of the client part, files generated by
eliomc or eliomopt are stored by default in a subdirectory named _server and files
generated by js_of_eliom are stored in a subdirectory named _client. Those default
directories could be respectively overridden by the environment variables ELIOM_SERVER_DIR

The types infered by eliomc for values sent by the server to the client are stored in an
intermediate files named as the original .eliom file and whose extension is .type_mli.
That file is required by js_of_eliom for compiling the client part of the .eliom file. The
eliomdep tool correctly generate dependencies that intermediate file for the server .cmo
and the client .cmo.


-eliom-inc <dir> Add <dir> to the list of eliom include directories (eliomdep only).

-dir <dir>
Specify the target directory for generated files

-package <name>
This is the same option as the ocamlfind one.

-predicates <p>
This is the same option as the ocamlfind one.

Do not load commonly used syntax extensions (deriving, lwt, js_of_ocaml, tyxml).

Use type_conv syntax extensions instead of deriving one. It has no effect if used
in conjunction with -no-autoload.

-ppopt <opt>
Append <opt> to preprocessor invocation.

-jsopt <opt>
Append <opt> to js_of_ocaml invocation (js_of_eliom only).

-infer <opt>
For .eliom file, only generate the intermediate .type_mli file (eliomc and eliomopt

-noinfer <opt>
For .eliom file, do not generate the intermediate .type_mli file (eliomc and
eliomopt only).

-help or --help
Display a short usage summary and exit.


The compilation of an Eliom projects composed of a server specific file named server.ml, a
client specific file named client.ml and two common files name base.eliom and main.eliom,
could be achieved with the following commands:

eliomc -a -o appl.cma server.ml base.eliom main.eliom
js_of_eliom -o appl.js client.ml base.eliom main.eliom

To avoid recompiling the whole project each times, this could be split in multiple steps:

eliomc -c server.ml
eliomc -c base.eliom
eliomc -c main.eliom
eliomc -a -o appl.cma _server/server.cmo _server/base.cmo _server/main.cmo
js_of_eliom -c client.ml
js_of_eliom -c base.eliom
js_of_eliom -c main.eliom
js_of_eliom -o appl.js _client/client.cmo _client/base.cmo _client/main.cmo

Use js_of_eliom online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    VirtualGL redirects 3D commands from a
    Unix/Linux OpenGL application onto a
    server-side GPU and converts the
    rendered 3D images into a video stream
    with which ...
    Download VirtualGL
  • 2
    Library to enable user space
    application programs to communicate with
    USB devices. Audience: Developers, End
    Users/Desktop. Programming Language: C.
    Download libusb
  • 3
    SWIG is a software development tool
    that connects programs written in C and
    C++ with a variety of high-level
    programming languages. SWIG is used with
    Download SWIG
  • 4
    WooCommerce Nextjs React Theme
    WooCommerce Nextjs React Theme
    React WooCommerce theme, built with
    Next JS, Webpack, Babel, Node, and
    Express, using GraphQL and Apollo
    Client. WooCommerce Store in React(
    contains: Products...
    Download WooCommerce Nextjs React Theme
  • 5
    Package repo for ArchLabs This is an
    application that can also be fetched
    It has been hosted in OnWorks in...
    Download archlabs_repo
  • 6
    Zephyr Project
    Zephyr Project
    The Zephyr Project is a new generation
    real-time operating system (RTOS) that
    supports multiple hardware
    architectures. It is based on a
    small-footprint kernel...
    Download Zephyr Project
  • More »

Linux commands

  • 1
    4s-import � Import RDF into a 4store KB
    Run 4s-importJ
  • 2
    4s-query � Run SPARQL queries on a
    4store storage backend ...
    Run 4s-queryJ
  • 3
    cpuburn, burnBX, burnK6, burnK7,
    burnMMX, burnP5, burnP6 - a collection
    of programs to put heavy load on CPU ...
    Run cpuburn
  • 4
    cpufreq-aperf - Calculates the average
    frequency over a time period SYNTAX:
    cpufreq-aperf [options] DESCRIPTION: On
    latest processors exist two MSR
    registers r...
    Run cpufreq-aperf
  • 5
    g.dirseps - Internal GRASS utility for
    converting directory separator
    characters. Converts any directory
    separator characters in the input string
    to or from na...
    Run g.dirsepsgrass
  • 6
    g.extension - Maintains GRASS Addons
    extensions in local GRASS installation.
    Downloads, installs extensions from
    GRASS Addons SVN repository into local
    GRASS i...
    Run g.extensiongrass
  • More »