-
Notifications
You must be signed in to change notification settings - Fork 299
/
TODO
141 lines (108 loc) · 3.8 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
List of things to implement:
1. Inner/Outer testcases: InnerOuter1.mo InnerOuter2.mo InnerClass1.mo
12 days.
2. Modifications not completely implemented. Especically with redeclare.
testcases: DisturbedResistance3.mo DisturbedResistance4.mo ModificationXX.mo
ModifyConstantX.mo ModifyUnknownX.mo OverWritingX.mo
10 days.
3. Each modifier not implemented. Invent testcases.
12 days.
4. Final element modification not checked against.
testcases: ModifyConstant5.mo ModifyConstant6.mo
8 days.
5. Lookup not completely fixed. Import statements are not inherited. Invent test cases.
5 day.
6. Constraining type on redeclarations not implemented + other redeclaration limitations.
Invent testcases.
10 days.
7. Restrictions on redeclarations not implemented (subtype etc.)
10 days
8. Derivatives of functions. How to specify in flat modelica.
3 days
9. Components of function type not implemented.
10 days
10. When clauses not present in equations, not checked. Also check pre operator.
10 days
11. Restrictions on connections (3.3.6.2) Check that they are fullfilled.
3 days
12. The following operators in 3.4.2 have not been implemented:
smooth
noEvent
sample
edge
change
reinit
terminate (check how assert is implemented)
mod
delay
cardinality (Must be able to evaluate during compile time)
Also check that the other operators in this table are correct.
15 days.
13. All builtin functions in 3.4.3 (except size) have not been
correctly implemented. Look at how size is implemented when
implementing them. Some of them are added to the builtin.rml,
some of them not. 15 days.
14. 3.4.3.1 Reduction expressions (Not implemented at all, except
for in Absyn). (See also 3.4.4) 15 days.
15. Array access with end operator A[end]:=A[end-1];
Array access on the form A[{1,2,3}] (in ceval)
+ many more under that section in the spec.
10 days work.
16. Slice operation. Works but the resulting component names are sometimes
messed up. Check this.
5 days
17. Vectorized call of functions not implemented. Should be inserted in the lookup rules for functions. (Lookup)
5 days.
18. 3.4.8.2 Output parameters of functions. Check that it works.
enable attribute, etc.
10 days
19. Code generation
A lot of stuff missing here, Levon: Fill in.
External functions.
30 days?
20. Flat modelica.
For now, only the start attribute is visible in the DAE.
Things to add:
* declaration comment, e.g. Real x "the comment";
* unit
* quantity
* stateSelect
* annotation (for Peter B:s debugging info=)
For the equations:
defineRoot, etc. for new MultiBody
other operators that control behaviour of equation opt.
Flattening of arrays: Option to flatten arrays or not should also
expand/not expand for loops, etc.
20 days
21. SaveTotalModel.
To be able to save a total model we need a dependency analysis.
This means that we have to traverse the AST to search for models
15 days
22. Line number information in parser
The parser should return good error messages including line numbers and code fragment
that is erroneous.
25 days (To write -good- error messages)
23. Line number and file information in instantiation.
Line numbers should also be present in the Absyn and SCode ASTs, such that instantiation
errors can be given a line number in a given file.
25 days (includes detecting errors correctly)
24. Updating the testsuite to Modelica2.1, writing new tests.
12 days
Specific adaptions:
For SKF:
1. Allow for not expanding classes annotated with
class bBody
annotation(SKF(dontExpand=true));
end bBody;
class test
bBody body1(p1=val1,p2=val2);
bBody body2;
end test;
will produce the flat class.
fclass test
bBody body1(p1=val1,p2=val2);
bBody body2
end test;
4 days work.
2. Allow for not expanding connections through option to compiler.
1 days work.