|
# of watchers: 1
| D20: 1 |
| Wiki-page rating | |
| Informative: | 0 |
| Artistic: | 0 |
| Funny-rating: | 0 |
| Friendly: | 0 |
2. Modifications not completely implemented. Especically with redeclare. 3. Each modifier not implemented. Invent testcases. 4. Final element modification not checked against. 5. Lookup not completely fixed. Import statements are not inherited. Invent test cases. 6. Constraining type on redeclarations not implemented + other redeclaration limitations. 7. Restrictions on redeclarations not implemented (subtype etc.) 8. Derivatives of functions. How to specify in flat modelica. 9. Components of function type not implemented. 10. When clauses not present in equations, not checked. Also check pre operator. 11. Restrictions on connections (3.3.6.2) Check that they are fullfilled. 12. The following operators in 3.4.2 have not been implemented: 17. Vectorized call of functions not implemented. Should be inserted in the lookup rules for functions. (Lookup) 18. 3.4.8.2 Output parameters of functions. Check that it works. 19. Code generation 20. Flat modelica. Flattening of arrays: Option to flatten arrays or not should also 21. SaveTotalModel 22. Better error messages in Parser. 23. Line number and file information in instantiation. 24. Updating the testsuite to Modelica2.1, writing new tests. 25. Array construction (3.4.4.1). Using array(... for ...) 26. Array constructors with iterators. Using {expr for i in ...} 27. Deduction of ranges (3.3.3.1). It is allowed to leave out "in 28. Multiple loop ranges, e.g.: 30. Constant evaluation of dot ('.') operator. 31. Fix slicing, e.g. Exp.SLICE, for impl=true, inst.rml:inst_ - Functions are generated on the fly during constant - Add going through of algorithms in daelow to get all the expressions - Add going through functions (algorithms) to find new - Only top level functions are checked in DAE.get_named_ - inst_record_co - What should partial instantiation use? Putting impl=false for now. - equation_funca - Fix print_exp_cpp_ 2. Better diagnostics/er
testcases: DisturbedResis
ModifyConstant
10 days.
12 days.
testcases: ModifyConstant
8 days.
5 day.
Invent testcases.
10 days.
10 days
3 days
10 days
10 days
3 days
smooth
noEvent
sample
edge
change
reinit
terminate (check how assert is implemented)
mod
delay
Also check that the other operators in this table are correct.
10 days.
14. 3.4.3.1 Reduction expressions (Not implemented at all). (See also 3.4.4) 15 days.
16. Slice operation. Works but the resulting component names are sometimes
messed up. Check this.
5 days
5 days.
enable attribute, etc.
10 days
A lot of stuff missing here, Levon: Fill in.
External functions.
30 days?
For the equations:
defineRoot, etc. for new MultiBody
other operators that control behaviour of equation opt.
expand/not expand for loops, etc.
10 days
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
Kaj has implemented line numbers, but perhaps better messages are needed.
Investigation & implementation 10 days.
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)
12 days
syntax. Related to 14, should be done after or together with 14.
Partially implemented. Left to do:
* Constant evaluation and/or optimization. Could be implemented
as function calls with index as argument. Or array can be unrolled and indexed, or if
constant value can be calculated and indexed. Array should then be cached.
* Automatic type conversion of element type, e.g. ( Real[]) a[5 (Unknown or private posting)] = {(Integer)3 for ...}
fails.
* Handle multiple iterators
syntax. Related to 14 and 25.
Implemented in walker which generates array() call (see 25.).
range" in loops. e.g.
for i loop
...
end for;
according to specification. Implemented in parser but not
walker and absyn.
for i in 1:5, j in 1:3 loop a[i,j]=i*j; end for;
Implemented in the parser, but doesn't seem to be in walker.g or in rest of modeq.
29. Constant evaluation of record constructors for hierachical records
Constant evaluation of record constructors is done by converting
the arguements of the constructor call to modifiers, instantiate
the record with these modifiers and transform the resulting dae into
Values. The problem is in the last part when a dae is translated into
values, specially if the record contain other records. It is then not
possible to walk through the equations and find a value for each
element. Instead an environment must be built and all bindings of
variables must be added. Then the conversion can iterate over the dae
variables and lookup each value to produce the Values. This also
requires that the dot ('.') operator can be evaluated.
Is required to complete 30. For a record instance a, it should be
possible to evaluate a.x for an element x of the record instance a.
This does not work in the interactive environment.
32. Fix slicing, e.g. Exp.SLICE, for impl=true, inst.rml:inst_
33. inst.rml:inst_
should leave it unflattened, but with correct type and dimensions, e.g. similar to
functions.
34. values_to_mods doesn't handle all value types, e.g. arrays.
35. Some builtin functions are not handled. I.e. asin, acos etc, which are not supported in RML.
Fix so that they are treated as external functions and called like that with a -lm flag.
Maybe not needed when imports of Modelica.Math work? Backend, Code Generation, Simulation runtime, etc.
1. Functions code generation in simulation code
evaluation, if they are detected as constant (all arguments
constants). Compiled functions should be stored so that they
don't need to be generated when called several times. Checking
of existing files with same names should be fixed. An existing
file function.c might be overwritten.
Relevant relations: Static.elab_ca
Ceval.ceval
See DAELow.get_all
expressions with function calls so that we can generate code
for those as well. This means we have to go through all DAE also.
- External functions in DAE.get_named_
build_record_c
Added impl argument for inst_record_co
for elab_mod. Lookup calls with true.
- equation_funca
- equation_funca
send dae for function lookup. Needed for tuple variable name
lookup in function return values.
3. Calculating initial values. start attributes and algebraic equations that can by symbolically solved is currently implemented. Left to do: Solving of non-linear equations / equation systems as initial values.
Also: Error handling in initial value computations.