History | View | Annotate | Download (15.4 KB)
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...
LOTS of bug correction wrt inlining, still a work in progress... - global constants were not accounted for - no good avoidance of name capture when inlining - static parameters (array sizes and clocks) not handled - ill-typed generated expressions, when inlining array expressions
Added local inlining using the keyword (*! /inlining/:true *)
- work in progress for automata...
- some code cleaning - removed a potential source of bug in scheduler
- corrected bugs with the inlining mode
- corrected bug with destination directory (-d option) - corrected several bugs in inlining - STILL, BUGS REMAINING in inlined code !!??!!
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
Merged horn_traces branch
Prepared first stage of code reorg:1. moved type def in lustrespec.ml2. moved constructor and basic functions in corelang3. Modified eexpr with prenext quantifiers
inlining update
Check node is stateful
- work in progress for stateless/stateful status computation (to turn conditionals into merges, which yield more efficient C code)
Reenabled the generation of witnesses for inline process.Systematic use of the build path
Merge inlining branch within trunk.The test target requires branch lustrec/horn as binary lustreh.
inliner function