Changes between Version 24 and Version 25 of Ticket #4138


Ignore:
Timestamp:
2017-02-27T15:57:59Z (8 years ago)
Author:
Adrian Pop
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #4138 – Description

    v24 v25  
    33The current status is:
    44
    5  Instantiation (Per, Adrian) 60%::
    6    Instantiation of long and short class definitions are implemented. Still missing are class extends, overloaded functions and partial derivative functions. The handling of equations, algorithms and expressions also needs to be expanded, so far it's mostly just a proof of concept.
     5 Instantiation (Per, Adrian) 80%::
     6   Instantiation of long and short class definitions are implemented. Still missing are overloaded functions and partial derivative functions. Partial support for class extends. The handling of equations, algorithms and expressions needs to be expanded.
    77
    8  Extends (Per) 80%::
     8 Extends (Per) 90%::
    99   Support for extends is implemented. More error checking is needed though, e.g. for duplicate elements and illegal class types.
    1010
    11  Lookup (Per) 80%::
     11 Lookup (Per) 90%::
    1212   Basic lookup is implemented, both for class names and crefs. Very little error checking is done beyond "name could not be found" though. Some more lookup functions will likely be needed for e.g. inner/outer.
    1313
    14  Modifiers (Per) 60%::
     14 Modifiers (Per) 80%::
    1515   Support of modifiers on components, extends clauses and class modifiers is implemented, more testing is needed.
    1616
    17  Redeclare (Per) 50%::
    18    Only very basic redeclare of components is implemented, more work is needed for redeclare of classes, merging of modifiers, constraining type, etc.
     17 Redeclare (Per) 60%::
     18   Only very basic redeclare of components is implemented, more work is needed for redeclare of classes, merging of modifiers, constraining type, etc. Preliminary support for redeclare-as-elements was implemented.
    1919
    2020 Imports (Per) 25%::
    2121   Basic support for qualified imports is implemented, unqualified imports still remains. It's also only possible to import classes at the moment, and not components. Some way of marking elements as imported is also needed, currently they are just inserted into the importing class as they are.
    2222
    23  Conditional Components (Per) ::
     23 Conditional Components (Lennart) ::
    2424   No support for conditional components implemented.
     25   This needs support from constant/function evaluation and expression simplification. It can be implemented after typing together with handling of component bindings.
    2526
    2627 Inner/Outer (Adrian) ::
    2728   No support for Inner/Outer is implemented at all so far, but the new instance tree structure should make this fairly straightforward.
     29   The inner outer can be implemented via addition of alias equations, is a matter of lookup of the inner component and prefixing.
    2830
    29  Functions (Adrian, Peter) 15%::
    30    Partial support for functions. Instantiation and typing of functions is implemented. Positional arguments and named arguments are supported. Vectorization of functions needs to be implemented. Prefixing is not yet handled correctly. Support for reductions needs to be implemented. Some way of storing functions during the instantiation is needed so that they end up in the DAE (we can probably use the component tree directly for this).
     31 Functions (Per, Adrian, Peter, Mahder) 40%::
     32   Partial support for functions. Instantiation and typing of functions is implemented. Positional arguments and named arguments are supported. Vectorization support has been be implemented. Support for reductions needs to be implemented. Per is working now on a way of storing functions during the instantiation is needed so that they end up in the DAE (we can probably use the component tree directly for this).
    3133
    32  Records (Lennart & Mahder) 5%::
    33    No support for records so far, except that the instantiation will instantiate the records as normal classes. Support for record constructors needs to be implemented, and other record things.
     34 Records (Mahder) 50%::
     35   Support for records and for record constructors in the works.
    3436
    35  Builtin (Per) 5%::
     37 Builtin (Per, Peter) 30%::
    3638   So far only support for the basic types and time is implemented. Support for all the builtin functions and other builtin things (e.g. StateSelect, ExternalObject, etc.) needs to be implemented. As much as possible should be implemented via ModelicaBuiltin.
    3739
    38  Typing (Mahder, Peter) 60%::
     40 Typing (Mahder, Peter) 70%::
    3941   Quite a lot of typing is already implemented, but it needs to be expanded to handle all kinds of expressions and so on.
    4042
    41  Type Checking (Mahder, Peter, Arun) 10%::
     43 Type Checking (Mahder, Peter) 60%::
    4244   Some parts of the type checking module from the "old new frontend" is being used to type check binary expressions at the moment. Everything in NFTypeCheck that's not used is commented out since some of it doesn't compile any more. We need to investigate if more of the old code can be reused, and implement missing/nonreusable parts.
    4345
    44  Flattening (Per) 25%::
     46 Flattening (Per) 40%::
    4547   Expansion of array bindings is currently broken and need to be fixed. Subscripting needs to be improved, and the module in general needs to be expanded to keep up with the phases before it.
    4648
    47  Connection Handling (Adrian) 40%::
     49 Connection Handling (Adrian) 50%::
    4850   Handling of connect equations using the DAE and the instance tree.
    4951
     
    5153   Ported the backend unit checking to the new frontend. Added tests. Based on the DAE intermediate form.
    5254
    53  Operator Overloading (Lennart & Mahder & Martin) 1%::
     55 Operator Overloading (Mahder & Martin) 1%::
    5456  The support for operator overloading from the current front-end (or the previous implementation of the new front-end) should be ported to the new front-end.
    5557
    56  Constant Evaluation (Per) 1%::
    57   Constant evaluate structural parameters (minimal) or any other constant/parameter bindings (not by default). Per is working on a new type of DAE component reference that will contain a link to the instantiated component tree on which one can do evaluation of bindings.
     58 Constant Evaluation (Lennart) 30%::
     59  Constant evaluate structural parameters (minimal) or any other constant/parameter bindings (not by default). Per implemented a new type of DAE component reference that contains links to the instantiated component tree on which one can do evaluation of bindings. Partial support for evaluating component references has been implemented, needs extending to support all types of expressions. We should ONLY evaluate what we need and nothing more.
    5860
    5961 Function Evaluation (Lennart) 1%::
    6062  Sometimes to evaluate structural parameters one needs to evaluate functions. This will port the function interpretation from the current front-end to the new front-end.
     63
     64 Expression Simplification (Lennart) %::
     65  Expression simplification is needed together with constant/function evaluation to evaluate structural parameters. This needs to be a separate package so that can be reused in some other parts of the compiler. The current implementation is rather slow, should be improved up if possible.
    6166
    6267 Local balance checking (Mahder) ::
     
    6570 Synchronous Features (BernhardT) ::
    6671   The handling of the synchronous features (Clocks, etc) and state machines should be ported from the current front-end to the new front-end.
     72   This functionality needs function, builtin and inner/outer support.