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
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
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
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
bug correction in typing: tuple types were computed but not recorded
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@485 041b043f-8d7c-46b2-b46e-ef0dd855326e
bug corrected: in some cases, local const vars were assigned twice
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@483 041b043f-8d7c-46b2-b46e-ef0dd855326e
numerous bugs corrected:- bug in expansion of array accesses with constant arrays- bug in printing complex array indexes (not C compliant)- bug wrt C99 typing policy for constant arrays- bug in signaling wrong useless static input
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@482 041b043f-8d7c-46b2-b46e-ef0dd855326e
some tiny mistakes corrected...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@445 041b043f-8d7c-46b2-b46e-ef0dd855326e
Major revision due to severe limitations and bugs of inlining capabilities: - destination dir should now work properly - lusic files now have a version number, to avoid nasty segfaults when loading lusic files created by an older compiler version - inlining should now work with generic nodes and generic array library...
corrected various bugs in the compilation/installation Makefile.in.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@435 041b043f-8d7c-46b2-b46e-ef0dd855326e
Added a construct for Dependencies (was a tuple before) and a boolean attribute stateful
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@380 041b043f-8d7c-46b2-b46e-ef0dd855326e
- Dealt with compiling lusic from distant lusi files.- Header now do not allow the generation of function previously declared as C prototype
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@375 041b043f-8d7c-46b2-b46e-ef0dd855326e
- corrected a bug in C code generation for multi-dimension arrays
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@340 041b043f-8d7c-46b2-b46e-ef0dd855326e
- corrected bug in node reset clock - cleaner (but heavier !) code generation scheme for automata
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@337 041b043f-8d7c-46b2-b46e-ef0dd855326e
- Added major feature: Lustre V6 automata !!! - one automata example added - changed the reset condition in node calls (now a simple bool expr) - bug corrected in clock calculus - bug corrected in traceability info - added field in variables to test whether they are original...
- work in progress for automata...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@333 041b043f-8d7c-46b2-b46e-ef0dd855326e
This is a major revision: - added interface files (.lusi) in the language, that can be compiled on their own, giving an object file (.lusic) and a header file (.h) - modular code generation, from Lustre to C level included. - nice amount of code refactoring...
This is a major revision: - added interface files (.lusi) in the language, that can be compiled on their own, giving an object file (.lusic) and a header file (.h) - modular code generation, from Lustre to C level included. - nice amount of code refactoring
Updated the licence info and header for each file.Moved backends in separate folders
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@313 041b043f-8d7c-46b2-b46e-ef0dd855326e
Merged horn_traces branch
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@303 041b043f-8d7c-46b2-b46e-ef0dd855326e