bug correction in typing: tuple types were computed but not recorded
bug corrected: in some cases, local const vars were assigned twice
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
corrected a small bug when -horn option was active
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...
- changed the basic optimization scheme (option -O 2), which unfolds local variables and global variables that are either cheap to evaluate or used no more than once.
- 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...
- started refactoring type definitions in .lus/.lusi, in order to ease the way .lusi interface files are handled.
- added missing constraint check when sub-clocking tuple expressions - added an algorithm that reuses dead or clock-disjoint variables instead of declaring/using new ones. - NOT carefully tested. Use option -O 3 if you want to give it a try...
Updated the licence info and header for each file.Moved backends in separate folders
added some infrastructure to ease optimization (reusing vars)
Solved bug in optimization of machine code: output variable def should not be eliminated
Mini bug solved: do not unfold array constants