[root]/testsuite/flattening/modelica/scoping
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 157 (100.0%) | 7685 (100.0%) | 48.9 |
adrpo | 10 (6.4%) | 5530 (72.0%) | 553.0 |
perost | 18 (11.5%) | 854 (11.1%) | 47.4 |
alash325 | 77 (49.0%) | 746 (9.7%) | 9.6 |
hudson | 27 (17.2%) | 306 (4.0%) | 11.3 |
sjoelund.se | 15 (9.6%) | 189 (2.5%) | 12.6 |
mahge930 | 3 (1.9%) | 38 (0.5%) | 12.6 |
vitalij | 7 (4.5%) | 22 (0.3%) | 3.1 |
+ Handle nested array types when creating array equations.
+ Correct subscript ordering when expanding crefs.
+ Fix List.combinationMap to properly order combinations and combination lists. Also accumulate the results.
+ Added List.combination.
20 lines of code changed in 1 file:
Re-enable diagonal() simplification with minor changes. Back-end can't handle unsimplified ones in some cases.
9 lines of code changed in 1 file:
+ Fix #2726.
Handle diagonal() in code generation instead of simplifying it.
9 lines of code changed in 1 file:
imporved negate for binary
1 lines of code changed in 1 file:
-improved simplify
-update test
3 lines of code changed in 1 file:
Merged branches/FFrontEnd into trunk/
Main changes:
- changed the environment to support both non-destructive and destructive updates
- Env.Cache -> FCore.Cache, Env.Env -> FCore.Graph
- FCore.Graph is not a list of Frames anymore is a stucture where the previous list is saved in component "scope"
- all Frames in the new FCore.Graph are FCore.Ref pointing to FCore.Node having different FCore.Data depending on what they are
- all FCore.Nodes have children (FCore.CAvlTree) which maps names to FCore.Ref (which is Array<FCore.Node>, size 1)
- FGraph.openScope pushes an already existing FCore.Ref (or a new one) on the scope list
- for all components having modifications the last class in the type path is renamed to include the
prefix, see FGraph.createVersionScope (this is done because we need unique names for redeclared functions,
records, etc and we need a unique type scope for that)
Example: A.B.C c -> A.B.C$c c
Bug fixes:
- calling function via component (multibody MSL 3.2.1 patch not needed anymore, will remove it in a next commit)
- #2837 array equations wrongly handled in RemoveSimpleEquations (used in ThermoPower and PowerSystems libraries, etc)
#2784, #2727, #2739 (missing modifiers combined with redeclare and unique function generation for redeclared functions)
#2835 - handle overconstrained connectors extending basic types (used in PowerSystems library)
- do not loose modifications on derived classes handled by InstExtends
- some error messages about missing components in Fluid library are gone
- for components of size 0 do not check if they are assigned before use in functions (residue in equalityConstraint)
6 lines of code changed in 1 file:
#2786
- Fix code generation for multiple iterators (threaded)
- Ceval constant function calls in the front-end
8 lines of code changed in 1 file:
Fix for #2806:
- Remove input/output also from record components that are not top-level.
240 lines of code changed in 1 file:
Fix for #2806:
- Remove input/output from variables which are not at top-level or inside a
top-level connector.
454 lines of code changed in 1 file:
Fixes for #2779:
- Restructured subscript elaboration to provide more helpful error messages.
- Added error checking for index out of bounds in connect.
- Fixed various cref typing issues and got rid of the +correctCrefTypes flag.
2 lines of code changed in 1 file:
added some simplify rules
3 lines of code changed in 1 file:
added rules:
- a*x*b + c*x = x*(a*b + c)
- a*x + b*x*c = x*(a + b*c)
1 lines of code changed in 1 file:
[Janitor mode] Set auto-props
1 lines of code changed in 1 file:
Fix for #2738:
- Respect fully qualified crefs in Static.elabCrefSubs.
- Some random code cleaning in Expression.
28 lines of code changed in 2 files:
- imporved rule x/c1 = c2*x
10 lines of code changed in 1 file:
Fix some of the sorting of components based on dependencies in the bindings
- Would silently fail in some cases in the past
- Some models now give no warnings in compile-time and run-time
- AIMS_Start gives a different result for one variable
- UnevaluateableFixedAttribute.mos gives different results for RML and bootstrapped omc versions
158 lines of code changed in 1 file:
Fix for #2705:
- Propagate inline annotations in derived component functions.
1 lines of code changed in 1 file:
- Improved DAEDumpTpl and switched to it as default.
- Untupled min and max in DAE.VariableAttributes.
7 lines of code changed in 2 files:
Various bugfixes and new features
- A new implementation for overloaded (binary) operators.
* Follows the specification more strictly and produces less fewer warnings for legal code
* matrix*matrix and matrix*vector uses reduction expressions to implement sum and array
* Checked that inlining of the generated functions works and produces simple expressions
* The code has been split into its own file since it is 2200 LOC and very few things in there actually depend on Static.mo (most of the remaining ones should be refactored)
- Implemented inlining of functions that assign to record members instead of call the record constructor in a single statement
- When evaluating function inputs to determine output array dimensions, keep the evaluated results
- Adding new preOptModule evaluateReplaceProtectedFinalEvaluateParameters which replaces evaluateReplaceFinalEvaluateParameters as a default module
* Causes problems for NPendulum.mos and PrismaticConstraint. They have different preOptModules set in the tests
- Added simulation flag `-abortSlowSimulation` used for the library tests in the testsuite
- EngineV6 now causes chattering behaviour. It was set to a Compilation test.
* The test will not spin thanks to the `-abortSlowSimulation` flag
- Improve elaboration, simplification, evaluation, and code generation for reductions
* Each operator now has unique indexes to avoid conflicts when replacing iterator crefs
* We can now simplify user-defined operators
* Added a new kind of mode for reductions: DAE.THREAD(), as opposed to the standard DAE.COMBINE()
- When we have multiple iterators, the default DAE.COMBINE() is used and iterates over all combinations of the expressions in the iterators. DAE.THREAD() instead assumes the arrays have equal length and folds over the reduction expression with the n-th expression in each iterator at a time. Used by operator overloading to implement element-wise and `sum` operations.
* This changes the DAE slightly
- Implemented DAE.FuncArg as a uniontype instead of tuple (DAE change)
- Some better simplification for ASUB (ranges and reductions)
- And some more things. Hopefully the major changes are all listed.
8 lines of code changed in 1 file:
- added rule
a - (-b)*c = a + b*c
2 lines of code changed in 1 file:
- added rule
- x*x = x^2
motivation: simplification for derivations as for expression evaluation
2 lines of code changed in 1 file:
[Janitor mode] Fix whitespace
288 lines of code changed in 23 files:
Fix bug: #2650
- proper prefixing of outer when you have same name several times in the prefix.
- added testsuite/flattening/modelica/scoping/InnerOuterSamePrefix.mo
5467 lines of code changed in 2 files:
Fix for #2503:
- Propagate visibility prefix to components of structured components.
22 lines of code changed in 2 files:
- some support for ExternalMedia (some more work is needed for full support)
- add function calls and external function inputs to dependency analysis in element sorting
- use Inst.updateCompeltsMods just in Inst.instElementList2
1 lines of code changed in 1 file:
Fix for bug: #2346
- sort also the variable components for instantiation based on their bindings
- sort the DAE in the order it is defined in the Modelica file
3 lines of code changed in 3 files:
Fix stackoverflow, expected output
2 lines of code changed in 1 file:
[Janitor mode] Set auto-props
1 lines of code changed in 1 file:
- fixes to inner outer prefixing when prefix is Prefix.NOPRE (top scope).
- testsuite/flattening/modelica/scoping/InnerEnumeration.mo to test the fix.
52 lines of code changed in 2 files:
- Fixed punctuation of error messages.
4 lines of code changed in 3 files:
- QUITE SOME CHANGES. Do make clean!
- fix old inst to work with Media and Fluid by default with no flags.
- got rid of some files and some of the error messages
- i will still keep +d=scodeInstShortcut for a while longer until I test more.
- Modelica.Fluid.Examples.IncompressibleFluidNetwork.mos segfaults on Linux, works in Windows,
Modelica.Fluid.Examples.HeatingSystem does not work anymore (NLS problems again) I guess due to parameters moving around.
I will investigate more these issues in the next days.
1 lines of code changed in 1 file:
[Janitor mode] Fix tabs
16 lines of code changed in 2 files:
Fix eol-style
2 lines of code changed in 2 files:
- Handle more cases for prefixing inner/outer arrays.
66 lines of code changed in 2 files:
- Fixed inner/outer prefixing of array elements.
29 lines of code changed in 2 files:
- Removed checks for duplicate elements and type names that are the same as the
component name from SCodeUtil.
1 lines of code changed in 1 file:
Fix tests
5 lines of code changed in 4 files:
Always use full pathnames for file info of parsed files
5 lines of code changed in 4 files:
- Fix line-endings
1 lines of code changed in 1 file:
- Naming mistake correction Makefile
1 lines of code changed in 1 file:
(4 more)