changed name generation to avoid conflict with C predefined symbols; added checking for declared but not defined node symbol
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@229 041b043f-8d7c-46b2-b46e-ef0dd855326e
- some minor adjustments...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@228 041b043f-8d7c-46b2-b46e-ef0dd855326e
- corrected causality bug (cf. previous commit)
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@227 041b043f-8d7c-46b2-b46e-ef0dd855326e
Update scripts
all benchs
liveness analysis improved. BUG found in causality wrt clocks...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@224 041b043f-8d7c-46b2-b46e-ef0dd855326e
Pushing last benchs in misc
Pushing some benchs
update on script
iMinor modifs + improved script
- modified example (arguments are now in the right order wrt clock declaration). - debugged liveness analysis...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@217 041b043f-8d7c-46b2-b46e-ef0dd855326e
- reimplemented computation of dead variables - added computation of a reuse policy (depending on types) - not yet used though, would have to change code generation in order to be useful...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@216 041b043f-8d7c-46b2-b46e-ef0dd855326e
added liveness analysis for reusing dead variables. Not yet used.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@215 041b043f-8d7c-46b2-b46e-ef0dd855326e
Separated generation from compilation for mutants
New version of the script: gen new tests
no rename
Missing file
Merged with trunk
Missing file Mmap
Cleaning example filesTiny optimization.
improved code generation by factorizing out arrows
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@207 041b043f-8d7c-46b2-b46e-ef0dd855326e
Version compatible avec le francais
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@206 041b043f-8d7c-46b2-b46e-ef0dd855326e
Updated test script: changed path and verbose mode
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@205 041b043f-8d7c-46b2-b46e-ef0dd855326e
Moved tests outside of source code to avoid useless duplication.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@204 041b043f-8d7c-46b2-b46e-ef0dd855326e
Added Alice Tailliar example
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@203 041b043f-8d7c-46b2-b46e-ef0dd855326e
Added declaration/definition of stateless/stateful nodes. The 'function' keyword is for stateless nodes only, the 'node' keyword is any kind of node. Improves compilation and paves the way for more optimizations.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@202 041b043f-8d7c-46b2-b46e-ef0dd855326e
Hack to avoid empty struct. This is mandatory for frama-c (for the moment)
New functions to identify stateless machines
Modified the makefile to fit eacsl issues
- work in progress for stateless/stateful status computation (to turn conditionals into merges, which yield more efficient C code)
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@198 041b043f-8d7c-46b2-b46e-ef0dd855326e
Bug solved: comma in function calls
ACSL spec: produce memory related properties: valid pointers, speration, assigns
Bug solved when using arrows in annotations.- arrows are inlined- specification memories are initialized in the reset function.
corrected bugs in clock generalization that produced pessimistic C code (not wrong though); corrected bug with node importation policy wrt (re)declaration, (re)definition...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@194 041b043f-8d7c-46b2-b46e-ef0dd855326e
Bug solved on complex ACSL predicates
Default is "no ghost mode"
Cleaned tons of useless debugging prints
Lots of changes: mainly solved bugs- specification is now stored as a set of equations- the tuple splitting is performed during normalization and not anymore in machine code- solved bug with tuple equalities, ie. x = (a,b,c) = (c,d,e)- better handling of acsl generation including quantifiers...
Solved bug when loading preexisting lusi files
Merged trunk modifs up to r186.
First working version of the ACSL generation.
- added struct types declaration - added constant definition with a struct type - added checking for multiple definitions of nodes (behavior was buggy) - better and more uniform error messages for undefined/already defined symbols
We still need struct expressions......
We still need struct expressions...
Ongoing work on specification compilation
- Integrated changes of trunk- changed the types of extended expressions: only allow prenex forms- normalization and machine code extended to deal with compilation of spec- other annotations are almost not considered yet....
work in progress for struct types...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@184 041b043f-8d7c-46b2-b46e-ef0dd855326e
more steps towards struct types...Cette ligne, et les suivantes ci-dessous, seront ignorées--
M trunk/src/corelang.mliM trunk/src/type_predef.mlM trunk/src/main_lustre_compiler.mlM trunk/src/types.mlM trunk/src/printers.mlM trunk/src/typing.ml...
first steps towards struct types...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@182 041b043f-8d7c-46b2-b46e-ef0dd855326e
corrected bug in arrow macros names, added storage attribute for static alloc macros, option -d now creates the destination directory if needed, with current dir as file permissions
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@181 041b043f-8d7c-46b2-b46e-ef0dd855326e
answer to #feature 50: - arrows are now factorized out and become part of include as files arrow.h and arrow.c - no more arrows in generated code - compiling and linking arrow.c is only necessary in case of dynamic allocation - version now includes installation prefix (for the standard lib)...
In order to export any type of constants, moved type definitions from .c to .h
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@179 041b043f-8d7c-46b2-b46e-ef0dd855326e
Generate extern declarations for constant as well.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@178 041b043f-8d7c-46b2-b46e-ef0dd855326e
- stupid svn had removed a file, again
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@177 041b043f-8d7c-46b2-b46e-ef0dd855326e
- added generation of clock information in interface (.lusi) files- added clock checking between interface and implementation files
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@176 041b043f-8d7c-46b2-b46e-ef0dd855326e
Reenabled the generation of witnesses for inline process.Systematic use of the build path
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@175 041b043f-8d7c-46b2-b46e-ef0dd855326e
Updated script. Does not seem to be fully functional yet.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@174 041b043f-8d7c-46b2-b46e-ef0dd855326e
Added default ensures statements
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@173 041b043f-8d7c-46b2-b46e-ef0dd855326e
- added dummy_lib.lusi (accidentally removed !?)
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@172 041b043f-8d7c-46b2-b46e-ef0dd855326e
- merged test script - added -d support - corrected #open parser problem - corrected interface/implementation (.lusi/.lus) checking for types (not yet for clocks)
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@171 041b043f-8d7c-46b2-b46e-ef0dd855326e
New branch to work on generation of ACSL
Merge back horn backend branch in trunk
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@169 041b043f-8d7c-46b2-b46e-ef0dd855326e
Merge trunk modif in branch
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/branches/horn_encoding@168 041b043f-8d7c-46b2-b46e-ef0dd855326e
desome
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/branches/horn_encoding@167 041b043f-8d7c-46b2-b46e-ef0dd855326e
Merge inlining branch within trunk.The test target requires branch lustrec/horn as binary lustreh.
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@166 041b043f-8d7c-46b2-b46e-ef0dd855326e
inliner function
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/branches/inlining@165 041b043f-8d7c-46b2-b46e-ef0dd855326e
Also available in: Atom