jocaml(1) The JoCaml interactive toplevel


jocaml [ -unsafe ] [ -I lib-dir ] [ object-files ] [ script-file ]


The jocaml(1) command is the toplevel system for JoCaml, that permits interactive use of the JoCaml system through a read-eval-print loop. In this mode, the system repeatedly reads Caml phrases from the input, then typechecks, compiles and evaluates them, then prints the inferred type and result value, if any. The system prints a # (sharp) prompt before reading each phrase.

A toplevel phrase can span several lines. It is terminated by ;; (a double-semicolon). The syntax of toplevel phrases is as follows.

The toplevel system is started by the command jocaml(1). Phrases are read on standard input, results are printed on standard output, errors on standard error. End-of-file on standard input terminates jocaml(1).

If one or more object-files (ending in .cmo or .cma
 ) are given, they are loaded silently before starting the toplevel.

If a script-file is given, phrases are read silently from the file, errors printed on standard error. jocaml(1) exits after the execution of the last phrase.


The following command-line options are recognized by jocaml(1).

-I directory
Add the given directory to the list of directories searched for source and compiled files. By default, the current directory is searched first, then the standard library directory. Directories added with -I are searched after the current directory, in the order in which they were given on the command line, but before the standard library directory.

Turn bound checking off on array and string accesses (the v.(i) and s.[i] constructs). Programs compiled with -unsafe are therefore slightly faster, but unsafe: anything can happen if the program accesses an array or string outside of its bounds.


If set to iso_8859_1, accented characters (from the ISO Latin-1 character set) in string and character literals are printed as is; otherwise, they are printed as decimal escape sequences.

When printing error messages, the toplevel system attempts to underline visually the location of the error. It consults the TERM variable to determines the type of output terminal and look up its capabilities in the terminal database.