Leave only comments about compilation passes.
Remove output of intermediate code on standard output: added
generation of <module>.log containing all intermediate code.
To enable recovery of parameter and output ordering by `ctrl2ept', the
Controllable-Nbac generation procedure now declares a new module
dedicated to the encapsulation of the controller functions yet to be
synthesized.
Handling of type declarations are probably buggy.
- Stripped portions of `myocamlbuild{,_config}.ml' that seem useless
when `-use-ocamlfind' is passed to ocamlbuild.
- Added some code in `myocamlbuild_config.ml' to be able to generate
documentation by merging interface and implementation files.
The -nosink option suppress the sink state of sigali equations.
This optimizes the controller synthesis, but work only
when the synthesis objective instantaneoulsy depends only
on the current state (and not on current inputs).
- We can do a better allocation if we take into
account 'when' in extvalues
(test/good/memalloc_clocks.ept shows the
improvement)
- Fixed a bug with memalloc on records: if we
translate:
o = { a with .f = u }
to
o = a; o.f = u
then we cannot share u and o.f
There is now three options for memory allocation:
- -only-linear activates only the linear
annotations (with typing and code generation)
- -only-memalloc does only memory allocation
- -memalloc does both
When linear typing is not activated, linearity
annotations are ignored (the signature in the .epi
does not contain the annotations)
Added graphical simulator hepts
Added option -hepts to the compiler: this option formats the output of the simulation loop
to fit with hepts (currently working only on C target code). Typically, suppresses all
"decoration" output, like input or output names, and prints output on single lines.
Currently not implemented in hepts: array types.
Usage: to simulate the node Modulename.f:
heptc -target c -s f -hepts modulename.ept
gcc modulename_c/*.c -o ./f_sim
hepts -mod Modulename -node f -exec ./f_sim
This pass transforms exps that should be static
to Econst se. The regular scoping then only has
to check this case.
The conversion is done in a single traversal of
the AST (unlike the old solution).
Created two new files:
- utilities/global/compiler_options.ml: contains
the options that can be set using the cli
- utilities/global/errors.ml: contains global
errors definition
Misc now only contains helper functions that have
nothing to do with the ast or the compiler.