Newer
Older
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
Test the -help option
$ lv6 -h
usage: lv6 [options] <file> | lv6 -help
-n, -node <string>
Set the main node (all items are compiled if unset)
-o, --output-file <string>
Set the output file name
-dir, --directory <string>
Set the directory into which output files are generated
-exec Interpret the program using RIF conventions for I/O (force -eei)
-2c, --to-c Generate C code
-cc, --compile-generated-c
Try to compile the generated C files (force -2c)
-2c-exec, --to-c-execute
Try to execute the generated C files (force -cc).
-rif Behave as a rif input file (meaningless without -exec)
-et, --expand-io-type
Expand structured types of the main node (impact the rif output only).
Necessary to use lurette and rdbg in presence of lutin (that only
knows about basic the types int/bool/real)
-ec, --expanded-code
Generate ec programs (force '--expand-nodes --no-when-not --expand-enums --lustre-v4 --no-prefix')
-version, --version
Print the current version and exit
-v, --verbose
Set the verbose level to 1
-vl <int> Set the verbose level
-h, -help, --help
Display this message
-m, -more, --more, --advanced-options
Show more options
-dev, --dev-options
Show experimental/internal options
$ lv6 -more
usage: lv6 [options] <file> | lv6 -help
-ocaml Generate ocaml glue code that makes it possible to call the lv6 interpreter
from ocaml with the current set of arguments (with Lv6Run.make)
--when-on-ident
Invent ident names so that when only operates on idents (to be able
to translate enums into ec/v4)
--no-when-not
Remove 'when not' statements (for ec)
-ei, --expand-iterators
Expand array iterators (i.e., generate iterator-free code)
-ee, --expand-enums
Translate enums using extern types and consts
-eei, --expand-enums-as-int
Translate enums into integers (to be kind with data plotters)
-esa, --expand-structs-and-arrays
Expand structures and arrays (force '-ei' and '-en')
-en, --expand-nodes
Expand all node calls in the main node
-enc, --expand-node-call <string>
Expand the call of the specified node (can be used for several nodes)
-oite, --optimize-ite
Transform if/then/else into merge when possible
-lv4, --lustre-v4
deprecated: generate Lustre V4 code (force '-ei -ee -esa')
-rte, --runtime-error
Generate kind2 contracts to check for runtime errors (force '-lv4')
-np, --no-prefix
Do not prefix variable names by their module
(beware: variable names may clash with this option)
-2cdil, --to-c-dont-inline-predef
Do not inline predef calls when generating C code
-2c-ext, --2c-include-ext-types
Always include <module>_<node>_ext.h in <module>_<node>.h
-2cil, --2c-inline-loop
Inline loops (that come from array iterators)
-2csf, --2c-several-files
Generate one .c and one .h file per node
-2cgc, --2c-global-ctx
Node context allocated as global variable (no "new_ctx" method)
-dro, --2c-dro
Generate a .dro file (for luciole)
-lic, --gen-lic
Generate lic
-2cns, --2c-no-switch
Use if-then-else instead of switches when generating C codes
--precision Number of digits after ther dot used to print floats in -exec mode
-dbg, --debug
<dbg_flag>
Possible dbg_flag are: eval-const, clock-check, woi, split, poly, noalias, oite, nwn, en, ei, enumasbool, esa, check-mem, kcg, C, ast, exec, deps, clock-check2, typing, lazyc, paranoid, profile
$ lv6 -dev
usage: lv6 [options] <file> | lv6 -help
-2smv, --to-smv
Generate smv code (work in progress)
-knc, --keep-nested-calls
Keep nested calls (use with care: it breaks some programs with
some options combination)
-knpc, --keep-nested-predef-calls
Keep nested calls for predefined operators (use with care: it breaks some programs with
some options combination)
-rnc, --remove-nested-calls
Remove nested calls
-eeb, --expand-enums-as-bool
Translate enums into boolean arrays (to be kind with model-checkers)
-kcg, --generate-scade-lustre
Generate Lustre code that is compatible with the lustre of scade
-tlex, --test-lexer
Test the lexical analysis
-2cw7, --2c-wcet
Generate a main file for computing the wcet (force -2c -2cgc)
-2cmc, --2c-multi-core
Generate a yaml file required for multi-core code generation
-2cs, --2c-stack
Transmit Soc I/O as params of the step functions (force -2c)
-2ch, --2c-heap
Transmit Soc I/O via a ctx structure in the heap (force -2c)
-2chs, --2c-heap-and-stack
Transmit soc memoryless I/O via the stack, and the heap otherwise (force -2c)
--schedule-simple
No re-ordering after topological sort
--schedule-sort
Sort wrt guard before after topological sort
--schedule-reorder
Re-order Soc.gao after scheduling to increase the clock factorisation
-interface Print the node interface
--keep-aliases
Do not perform aliases elimination
-unit Run embedded unit tests
--nonreg-test
Avoid printing full path error msgs to ease non-reg test decision
--gen-autotest
Generate a Lutin Stimulator and a Lustre oracle to compare the
result of 2 Lustre compilers