- Translation to z3z now evaluates constant expressions instead of
abstracting them. This non-feature could cause "false" synthesis
failures due to non-translatable yet constant expressions possibly
introduced by tomato (or manually), for instance `not false' in node
`n' bellow:
node n (a: bool) returns (ok: bool)
contract assume true enforce ok with ()
let
ok = a or not false;
tel
Corrected a somewhat unnoticeable but ugly bug in the generation of C
records, that could mess up the field names when they were not
assigned in the same order as in the declaration of the type.
- In Sigalimain: untranslatable non-boolean expressions should not be
added as inputs of the controller.
- Avoided some compiler warnings in the same module (with OCaml ≥ 4).
Makefile-distrib: include install-sh script in source distribution
(mandatory for autoconf).
Enable simulator by default (for automatic builds on pipol: some ctest
versions does not allow options passing to configure scripts).
Makefile-bin: only install target, for binary distribution
Makefile-distrib: two targets, binary-distrib (builds a binary distribution
based on the current configuration) and source-distrib (builds a source distribution)
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).
Tentative of correction of itfusion bug:
The itfusion pass adds some "anonymous" nodes into the module.
This correction adds the signature of these created nodes.
This only shifts the bug (towards clocking pass).
- callgraph: add idents used for instantiated nodes
- cgen : added Idents.enter_node
- cmain : removed error when simulated node does not exist (existence
of simulated node was tested for every program, comprising loaded ones)
Bug due to the fact that a variable can be "defined" and "read"
(in scheduling sense) by the same equation, without being a memory:
e.g., a clock defined as the result of a node application, together
with another result on this same clock.
Bug correction: basically removed the "assert false" on killed_vars,
decr_uses; do not count as "use" the self reads.
Added script test_option which:
- compile and run without option
- compile with option given as argument, run
- diff on the two outputs, fails if different outputs
config file checks for existence of compiler (fails if not exist)
statics1.ept is a copy of statics.ept ; statics2.ept depends on statics1.ept
instead of statics.ept (so as dependency order => lexical order on file names)