more precise spec for stdout
working spec in the main function
start instrumenting the main C function
comment dead code with (* XXX: UNUSED *) disclaimer
another step towards refactoring
refactoring first step
implement optimization on spec: IT WORKS
add memory instances to footprint lemmas
corrections for stateless nodes
reformatting
it works
work on new reset functions generation
work on spec generation almost done
the generation of ACSL from machine code reveal too fragile as it occurs after several transformations (eg. fusion)
move arrow spec in its own header
working proto
Almost works!
first version that is parsed correctly by Frama-C
first draft: to be tested with frama-c
generic ACSL spec generation
start generating ACSL spec
some rewriting in C backend pretty-printer
minor rewriting
setup tests for dune
fix almost all warnings
migration draft on dune
- Primitive Tiny backend- Renamed Mpfr to lustrec_mpfr- Introduced dependency in Zarith. Trying to move away from Num
[MPFR] add more functions and better treatment of print output variables in main.c
- Refactored Error exception and messages- Bugs in partial evaluation for equalities among bool constants and a nice recursive call generating a stack overflow! Now solved- Setup a timeout for z3 in seal- Better log for seal
Array access: solved issues in C backend when basic operations in array access dimensions. Also better handling in EMF, ie further normalization through new equations
- tag_true and tag_false moved to lustre_types- real constants are hidden in Real.ml{i} module
Cleaning C backend - removing unused functiionsPreparing for coming ACSL
Merge branch 'salsa' into lustrec-seal
Better production of trace files.By default traces are not produced. Requires the option -t to produce them
Unevaluation of types and clocks dimension has been already performed before producing the lusic.
- Dep type with a tuple has been replaced by a record type- Modules now is more integrated and performed the building of the type/clock env. previously some computation were performed twice by different functions. Some of these functions have been moved from compiler_common to modules
Merge branch 'unstable' into lustrec-seal
math fun lib support in MPFR
Merlin files
Pretty serious update:- a bug in regressio ntest Simulink/integrator_ext_IC_matrix_test revealed the following (serious issue): when building the list of instruction (in the machine code) the access to variable were hardcoded to LocalVar or StateVAr depending whether the variables was part of the identified memories....
Removed Contract contruct: imported node should be enough. Solved some warning at compile time
Merge branch 'vhdl' of https://cavale.enseeiht.fr/git/lustrec into lustrec-seal
updated division for Horn clauses
corrected euclidean division in C code
introduced euclidean/C-like division in C code generation
Issues with typing pp_basic_lib_fun
Tuning the pretty printing of Salsa plugin
Zustre backend
Basic library printers moved into backend specific printer files
Further restructuring:- arrow.ml* to define basic builder for arrow (node, name, ...)- machine_code_common similar to corelang but for machine_code (printers, some builders, ...)- machine_code restricted to the translatation from normalized nodes to machines
MLI for normalization and machine_code.Structs defining machines are now in machine_code_types
- Makefile: solved dependency problem when compiling include lusi- Renamed type declarations as lustre_types and machine_code_types
Recursive resolution of dependencies
[general] large modification: added machine types, a second typing phase dealing with machine types (eg uint8) typing was transformed as a functor and parametrized by basic types (int/real/bool) it can also be applied multiple times on the same program
[main] enum typedef in C use the original lustre filename as identifier. This commit cleans the filename to remove dots.
Solving a warning with ocaml 4.04 and uppercase_ascii. Provides backward compatibility for 4.02
C backend: solved the issue of long name in generated binaries.
first solution to address very large identifiers in node names, logs, and generated binaries
Refactor error printing.
- Added a field lustre_eq to machine instruction in order to record the originating lustre equation- EMF backend now impose the optimization level to be set to 0 in order to avoid equation elimination that would render traceability difficult- Options.ml has been split into Options.ml / Options_management.ml. Options.ml only contains references and no functions
- Addtional encapsulation of machine_code instr in a struct to enable future extension of type with more metadata.- Improved EMF backend with META information
- Added a precision parameter for io_frontend "real" types- New fonction in plugins: main_loop_body_prefix
Improved include folders behaviors:- allow multiple -I dir, will be used in order (first one declared is first used)
- when declaring a global library #open <foo>, foo is first checked in local folders, than in global one (install path). This does not apply to local libraries opened with #open "foo".
trying to improving pretty printing. Not so perfect for the moment
Missing file c_backend_lusic
Cleaning output:- no more classic display for ocamlc- compilation warnings removed
Merge branch 'unstable' into merge_mauve_unstable
Merge branch 'testgen' into merging_unstable_testgen
Merge branch 'unstable' into merging_pluginsNon regression results were similar to master branch
More informative error message in case of untyped value
Deprecated function changed for compatibility with ocaml 4.04
adding dealloc
Merge branch 'master' into mauve
added deallocation for dynamic memory allocation scheme
adding & in shell
mauve generator with annotations
mauve generator: first shot
adding c++ backend
Revert some ocaml code to ocaml 4.01 compatibility
Merge branch 'github_master' into integ_github_jan10Intregrate all modifs by Teme et al
Merge branch 'master' of https://cavale.enseeiht.fr/git/lustrec
Changed the generated C file to produce input and output csv files (named inXX and outXX)
making library statically link to horn backend
adding -I options to lustrec
updating to onera version 30f766a:2016-12-04
Ongoing work on c backend for makefile. Does not compile yet
moving C files name declaration in backend. Preparation for additional cmake target
...
full merge of salsa/mpfr and master
Updated to onera_git commit version 9421e24
Merge branch 'salsa' into merge_salsa_horn_2Postponed conflicts to be solvedConflicts: src/_tags src/backends/Horn/horn_backend.ml src/machine_code.ml src/main_lustre_compiler.ml src/myocamlbuild.ml.in src/optimize_machine.ml
Introduced the opposite of Reset call: NoReset. This simplify the general compilation process and makes the code more symmetric, hence simpler and clearer code.
Refined the dependencies in the generated makefile
Solved bug with C backend
Added by default -O0
Plugin based framework
major branche merging salsa/mpfr with trunk