Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec / TODO.org @ 93119c3f

History | View | Annotate | Download (2.05 KB)

1 0cbf0839 ploc
* TODO
2
** include files
3
** main function
4
*** add a clean test to forbid array arguments for main node
5
    (no available input/output methods)
6
** test suite
7
*** for complex dependency graphs (notably mem/mem cyclic dependencies)
8
*** for clocks
9
*** for arrays (non-generic nodes)
10
** compare with lus2c (verimag)
11
** extension
12
*** array access: done
13
*** add an option to dynamically check array accesses: done
14
*** power operator: done
15
*** automaton
16
*** annotations to ACSL
17
** init checking
18
*** to be done !!!
19
** normalization
20
*** sub-expression sharing seems to be not totally working: fixed
21
*** improve behavior for power and access operators:done
22
*** more type-directed normalization (notably to improve code gen for arrays): done
23
*** reuse of dead vars instead of systematically allocating new local vars
24
*** add a clean test for used but undefined nodes
25
** typing
26
*** correct typing of arith ops (real/int with subtyping ?)
27
*** display array dimensions with correct names: done
28
*** clocks must not be static inputs: done
29
** clock calculus
30
*** extension from named clocks to valued clocks ?
31
*** static inputs should be polymorphic, as global constants are: done
32 7c95dcab ploc
33
* Horn backend
34
** enum types for automaton
35
   - issues with MBranches and clocks
36
     - control-on-clock generates a "if cond then expr else nothing
37
     - it has to be expressed in a functional way to enable its expression as
38
       horn
39
40 0dee2bc1 ploc
41
-  The issue seems mainly to lie in the out = f(in) every cond
42
   this generates the follwoingg imperative statements
43
   if cond then f_reset(*mem) else {(nothing, ie. not reset)}
44
   f_step(in,*put,*mem)
45
46
   In the machine code, this is done by generating the sequence of 2 instructions
47
   1. if cond then MReset() else {}  (* creation of a conditional statement *)
48
   2. MStep()
49
50
- For Xavier: Syntactically, how could you "reset" an arrow? When we see an
51
  Expr_arrow, we introduce a MReset instance to the set of instruction on the
52
  reset function of the current node, but is there any mean to do it with
53
  "every" ?
54
55
56
57
58
x = expr when c
59
60
if c then
61
  x= expr
62
63
else {}
64
65
x = if c then expr else x