summaryrefslogtreecommitdiff
path: root/man/ocamlrun.m
blob: 7db888bddfe21d97cb650d00fab6e1c376227a67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.TH OCAMLRUN 1

.SH NAME
ocamlrun \- The Objective Caml bytecode interpreter

.SH SYNOPSIS
.B ocamlrun
[
.B \-v
]
.I filename argument ...

.SH DESCRIPTION
The 
.BR ocamlrun (1)
command executes bytecode files produced by the
linking phase of the 
.BR ocamlc (1)
command.

The first non-option argument is taken to be the name of the file
containing the executable bytecode. (That file is searched in the
executable path as well as in the current directory.) The remaining
arguments are passed to the Objective Caml program, in the string array
Sys.argv. Element 0 of this array is the name of the
bytecode executable file; elements 1 to 
.I n
are the remaining arguments.

In most cases, the bytecode
executable files produced by the 
.BR ocamlc (1)
command are self-executable,
and manage to launch the 
.BR ocamlrun (1)
command on themselves automatically.

.SH OPTIONS

The following command-line option is recognized by 
.BR ocamlrun (1).

.TP
.B \-v 
When set, the memory manager prints verbose messages on standard error
to signal garbage collections and heap extensions.

.SH ENVIRONMENT VARIABLES

The following environment variable are also consulted:

.TP
.B OCAMLRUNPARAM
Set the garbage collection parameters.
(If
.B OCAMLRUNPARAM
is not set,
.B CAMLRUNPARAM
will be used instead.)
This variable must be a sequence of parameter specifications.
A parameter specification is an option letter followed by an =
sign, a decimal number, and an optional multiplier.  There are seven
options:
.TP
.BR b \ (backtrace)
Print a stack backtrace in case of an uncaught exception.
.TP
.BR s \ (minor_heap_size)
Size of the minor heap.
.TP
.BR i \ (major_heap_increment)
Minimum size increment for the major heap.
.TP
.BR o \ (space_overhead)
The major GC speed setting.
.TP
.BR O \ (max_overhead)
The heap compaction trigger setting.
.TP
.BR l \ (stack_limit)
The limit (in words) of the stack size.
.TP
.BR h
The initial size of the major heap (in words).
.TP
.BR v \ (verbose)
What GC messages to print to stderr.  This is a sum of values selected
from the following:
.TP
.BR 1
Start of major GC cycle.
.TP
.BR 2
Minor collection and major GC slice.
.TP
.BR 4
Growing and shrinking of the heap.
.TP
.BR 8
Resizing of stacks and memory manager tables.
.TP
.BR 16
Heap compaction.
.TP
.BR 32
Change of GC parameters.
.TP
.BR 64
Computation of major GC slice size.
.TP
.BR 128
Calling of finalisation function.
.TP
.BR 256
Startup messages.

The multiplier is
.B k
,
.B M
, or
.B G
, for multiplication by 2^10, 2^20, and 2^30 respectively.
For example, on a 32-bit machine under bash, the command
.B export OCAMLRUNPARAM='s=256k,v=1'
tells a subsequent
.B ocamlrun
to set its initial minor heap size to 1 megabyte and to print
a message at the start of each major GC cycle.

.TP
.B PATH
List of directories searched to find the bytecode executable file.

.SH SEE ALSO
.BR ocamlc (1).
.br
.I The Objective Caml user's manual,
chapter "Runtime system".