[root]/testsuite/mofiles/drmodelica
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 1789 (100.0%) | 22193 (100.0%) | 12.4 |
perost | 361 (20.2%) | 13944 (62.8%) | 38.6 |
x06klasj | 374 (20.9%) | 1973 (8.9%) | 5.2 |
sjoelund.se | 389 (21.7%) | 1413 (6.4%) | 3.6 |
davbr | 18 (1.0%) | 1238 (5.6%) | 68.7 |
g-karbe | 23 (1.3%) | 1116 (5.0%) | 48.5 |
x05andfe | 25 (1.4%) | 862 (3.9%) | 34.4 |
adrpo | 146 (8.2%) | 584 (2.6%) | 4.0 |
petar | 47 (2.6%) | 527 (2.4%) | 11.2 |
kajny | 26 (1.5%) | 369 (1.7%) | 14.1 |
x06krino | 70 (3.9%) | 115 (0.5%) | 1.6 |
mahge930 | 2 (0.1%) | 30 (0.1%) | 15.0 |
x02lucpo | 1 (0.1%) | 6 (0.0%) | 6.0 |
haklu | 1 (0.1%) | 6 (0.0%) | 6.0 |
levsa | 2 (0.1%) | 5 (0.0%) | 2.5 |
g-bjoza | 1 (0.1%) | 5 (0.0%) | 5.0 |
krsta | 40 (2.2%) | 0 (0.0%) | 0.0 |
alash325 | 263 (14.7%) | 0 (0.0%) | 0.0 |
-- testsuite/3rdparty/AVM + testsuite/3rdparty/ThermoSysPro are temporarily moved to testsuite directory + testsiuite/Libraries + testsuite/mofiles + testsuite/3rdparty are deleted from SVN
0 lines of code changed in 263 files:
- Changed Util.swap to work as expected (i.e. swap on true).
10 lines of code changed in 2 files:
- Expected output
10 lines of code changed in 2 files:
- Removed space after first parenthesis when dumping asserts in DAEDump, to ease
the transition to a template based dumper.
1 lines of code changed in 1 file:
- Updated test.
1 lines of code changed in 1 file:
- Implemented a new template based expression dumping.
- Updated test suite.
85 lines of code changed in 49 files:
- Fixed correct types on array-scalar and scalar-array operations.
- Updated test cases due to changed operation order.
13 lines of code changed in 2 files:
- Changed the Dependency+SCode+Inst calls everywhere to:
+ CevalScript.runFrontEnd(...), which does more error-checking
- Removed Inst.{instantiate,instProgram} as they are not needed (they were used to inst the last class of the program; which can be performed by asking for the last class of the program and instantiating that)
16 lines of code changed in 14 files:
+ The test-suite makefile now contain DEPENDENCIES. This are the files that are needed for the test cases.
+ "make clean" or (make -j clean) will clean the test-suite. i.e. all files that are not listed as DEPENDENCIES will be cleaned.
For OMDEV/MINGW ppl (linux already has partest)
+ "make threaded" will clean and then run the test-suite with 5 threads (my pc has 4 cores so :) ). (or just use "make -jN")
- 'msl31simulation.log' and 'msl31mediasimulation.log' still give problems with multiple threads. Very strange problem since the
output matches exactly with the expected but for some reason it is compared with outputs from another file. But For now this might help a bit.
Normal test-suite operation is not affected in anyway as far as I can tell. (Just some additions)
27 lines of code changed in 1 file:
+ Fix for missing parameter passing for records.
Bug #1675
+ Fix for missing bindings for records with classmod modifications on output variables.
+ Fix for constant evaluated bindings to default values for record to record assignments.
3 lines of code changed in 1 file:
- Forbid subscripted arrays. They are an OM extension and have been removed from
the Modelica specification (and not supported by Dymola), and will not be
supported in the new instantiation. They are therefore disabled now, to
discourage any further usage of them.
- Added Absyn.Info to Absyn.MODIFICATION and SCode.MOD to allow better error
messages for modifiers.
- Changed SCode.REDECL to have a single component instead of a list, since you
can only redeclare one element at a time.
- Implemented handling of modifiers in SCodeInst.
0 lines of code changed in 1 file:
HUGE update to SVN with *a lot* of changes: DO MAKE CLEAN!
==========================================================
- The DAE.ExpType is *no more*
- The BackendDAE.Type is *no more*
Both got replaced by DAE.Type!
- The DAE.ExpVar is *no more*
It got replaced by DAE.Var!
Now we have *ONLY ONE* type in the compiler: DAE.Type!
Just to know why I got this done:
BEFORE, the model HumMod took 6m51 seconds to instantiate
adrpo@ida-liu050 ~/dev/OpenModelica/doc/performance/benchmarks/tests
$ time /c/OpenModelica1.8.0-r10584/bin/omc instHumMod.mos > trace.txt 2>&1
real 6m51.354s
user 0m0.000s
sys 0m0.015s
AFTER, the model HumMod takes 47 seconds to instantiate
adrpo@ida-liu050 ~/dev/OpenModelica/doc/performance/benchmarks/tests
$ time ../../../../build/bin/omc instHumMod.mos > mytrace.txt 2>&1
real 0m47.248s
user 0m0.000s
sys 0m0.000s
Is about 8,74468085106383 times faster now.
Basically, before, we were doing DAE.T_*
-> DAE.ET_* translation for 6 minutes!
I started this work on Friday after the OpenModelica 1.8.0
got released, so for 4+ days of work I think the result is
quite OK.
Crash course into the new types (actually old ones from DAE.Type):
==================================================================
1. DAE.Type is not a tuple anymore, instead the optional path
became DAE.TypeSource which is a list of paths and is now
part of *all* the records in DAE.Type.
The needed types from DAE.ExpType got merged into DAE.Type:
DAE.ET_METATYPE -> DAE.T_METATYPE
DAE.ET_FUNCTION_REFERENCE_VAR -> DAE.T_FUNCTION_REFERENCE_VAR
DAE.ET_FUNCTION_REFERENCE_FUNC -> DAE.T_FUNCTION_REFERENCE_FUNC
Some DAE.Type types got split:
DAE.T_COMPLEX split into DAE.T_COMPLEX for types not extending
basic types and DAE.T_SUBTYPE_BASIC is now used for types
extending basic types.
Some DAE.Type types changed name:
DAE.T_NOTYPE -> DAE.T_UNKNOWN
Renamed also the meta-types a bit to make them more homogeneous.
Some DAE.ExpType are gone:
DAE.ET_OTHER is gone, use DAE.T_UNKNOWN instead!
Some DAE.Type types changed structure (besides the DAE.TypeSource addition):
(DAE.T_ARRAY(dim, ty), optPath) -> DAE.T_ARRAY(ty, list<dim>, list<Path>)
so we now have similar structure for DAE.T_ARRAY and the previous DAE.ET_ARRAY.
2. In cases, when matching:
Instead of | Use now:
-------------------------------------------------------
DAE.ET_INT() | DAE.T_INTEGER(source = _)
DAE.ET_REAL() | DAE.T_REAL(source = _)
DAE.ET_BOOL() | DAE.T_BOOL(source = _)
DAE.ET_STRING() | DAE.T_STRING(source = _)
DAE.ET_ENUMERATION(...) | DAE.T_ENUMERATION(...)
DAE.ET_COMPLEX(...) | DAE.T_COMPLEX(...)
DAE.ET_OTHER(...) | DAE.T_UNKNOWN(source = _)
DAE.ET_ARRAY(...) | DAE.T_ARRAY(...)
-------------------------------------------------------
3. When constructing values, in the then part or in right
hand side in equations:
Instead of | Use now:
-------------------------------------------------------
DAE.ET_INT() | DAE.T_INTEGER_DEFAULT
DAE.ET_REAL() | DAE.T_REAL_DEFAULT
DAE.ET_BOOL() | DAE.T_BOOL_DEFAULT
DAE.ET_STRING() | DAE.T_STRING_DEFAULT
DAE.ET_ENUMERATION(...) | DAE.T_ENUMERATION(...)
DAE.ET_COMPLEX(...) | DAE.T_COMPLEX(...)
DAE.ET_OTHER(...) | DAE.T_UNKNOWN(source = _)
DAE.ET_ARRAY(...) | DAE.T_ARRAY(...)
-------------------------------------------------------
4. Types.elabType got renamed to Types.simplifyType
and does some type simplification (instead of the
previous DAE.T_* -> DAE.ET_* translation).
Feel free to ask me anything if something is unclear.
The code can be further improved (we need better handling
of DAE.T_ARRAY that has several dimensions instead of one)
by getting rid of Types.simplifyType/Types.expTypetoTypesType,
but for now is good enough. Also, functionality for the old
DAE.ET_* handling from Expression*.mo can be merged with the
DAE.T_ handling from Types so we can get rid of duplicate
code too.
1 lines of code changed in 1 file:
- Some rewrite rules for a*(b^(-r)) => a/(b^r) and similar expressions
3 lines of code changed in 1 file:
Error.mo
- typo fix
DAEUtil.mo
- better error messages
Inst.mo
- sort innerouter after the element dependency analysis
- add record constructors that are function inputs to the DAE (IdealGasH2O now compiles but has dassl issues)
- speedup Inst.makeFullyQualified a bit
InstExtends.mo
- more fix* calls which were missed
Interactive.mo
- use System.get/setPartialInst instead of RTOpts debug flags as they are REALLY slow
- this will speed up the MSL query for qt & java clients a bit.
SimCodeC.tpl
- use -O0 when running the testsuite.
Derive.mo
- better printout for derivative function error message
testsuite/
- update tests (more record constructors now)
- add one more to Media simulation and 2 more to Fluid flattening
mingw makefiles
- use wget (will be replaced by svn put into OMDev later)
to fetch revision number and put it part of the OMC version
7 lines of code changed in 1 file:
- include the modifiers and dimensions in the dependency analysis in Inst.instElementList
- move annotation checking functions from DAEUtil to SCode.
- convert type of the Value in the binding if needed (to get rid of things like min = 0, instead of min = 0.0)
- in partial instantiation disregard parameters, instantiate only constants.
- rename the really bad name "subs" to restCref in Static.elabCrefSubs.
- clear errors when loadingFileInteractiveQualified API and parseFile API
- added vaporizing.mo test
- a LOT of tests have changed
- small fixes to tools/validatetest/validatetest.pl
45 lines of code changed in 14 files:
- Fixed correct type when elaborating the builtin cat operator.
7 lines of code changed in 1 file:
- Added a flag to OMC, +std, to set the Modelica language version to use. API
calls setLanguageStandard and getLanguageStandard are also implemented for
this.
- The Modelica language version is now set automatically if a specific version
of the MSL is loaded, and gives a notification if the version has changed.
- Added new package RTOptsData, which contains data types and some functions
which can't be in RTOpts since RML doesn't allow mixing external and
non-external things.
- Turned on error messages for replaceable base classes if Modelica version is
at least 3.0.
- Turned on balance checking of connectors if Modelica version is at least 3.0.
- Updated test suite, and added a new test case redeclare/ReplaceableBaseClass.
7 lines of code changed in 7 files:
- Implemented linspace in ModelicaBuiltin.mo
10 lines of code changed in 1 file:
- Made the dumping of external declarations better.
- Changed so that only constant complex equations are constant evaluated in
InstSection.instEqEquation2.
- Added handling of integers in omc-diff, so that integers are compared exactly
(otherwise we allow a relative error for line numbers in errors).
3 lines of code changed in 3 files:
- Reimplemented connection handling to be more efficient.
36 lines of code changed in 14 files:
- Added simplify rules for the cat() operator
36 lines of code changed in 2 files:
- Expected output
1 lines of code changed in 1 file:
- Fix code generation of ASUB(ASUB(...,x),y), by making ASUB(...,xy) instead
- Previously, we created one case for integer asub, one for 2d integer asub, etc... But forgot mixed int and enum asubs... The new code should work for any dimension, and any mix of asubs
- Testcases were updated because we print [1,2] instead of [1][2]
12 lines of code changed in 1 file:
#1572
- Added check for external function output assignment
1 lines of code changed in 1 file:
- Add simplification (e*e1)+(e*e2) => e*(e1+e2) (for +/- and swapping argument order)
2 lines of code changed in 2 files:
- Added rule to simplify x+x+x-x-x=x
10 lines of code changed in 8 files:
- Fixed return values for size in Expression.sizeof (size(x) returns an array
and size(x, 1) a scalar, not the other way around).
- Cleaned up and moved Inst.elabArraydimDecl to Static.elabArrayDim.
2 lines of code changed in 1 file:
- Simplify after doing type-conversion
1 lines of code changed in 1 file:
- Use simplify1 instead of simplify in many places of the FrontEnd
- simplify now returns a Boolean that signifies if the expression has changed
10 lines of code changed in 2 files:
- Flat Modelica now uses "and, or, not" instead of "AND, OR, NOT"
- This is to match actual Modelica syntax
5 lines of code changed in 5 files:
- Changed simplify of LUNARY and LBINARY (we now only simplify these at the end; i.e. in the equations and bindings - not while doing static elaboration of the expression)
5 lines of code changed in 5 files:
- Use elabExp to determine the actual expression that should be used in code generation
- This is an extra field stored in DAE.REDUCTION, and is needed in order to handle sum() for different array types, etc
1 lines of code changed in 1 file:
- Remove path prefix from imported function in the same scope in SCodeLookup.
- Removed check for checkModel in elabBuiltinCat2, it's needed otherwise too.
- Ported external function parts of r7879 from the maintenance branch.
- Added support for fill and ranges on integers in c_runtime.
- Fixes for external fortran function:
- Fixed correct types for function definitions.
- Commented out function parameter names function definitions, since several
parameters might have the same name.
- Moved initialisation of output variables after initialisation of local
variables, since the output variables might depend on them.
- Added default values for scalar output variables (not sure if this is
according to the standard, but Dymola does this).
- Added test case libraries/msl31/Modelica.Media for Modelica.Media models.
- Updated test suite.
9 lines of code changed in 2 files:
- Changed fail case in Algorithm.makeAssignment to use failtrace.
- Updated test cases.
0 lines of code changed in 1 file:
Fix for bug #1334:
- Added cycle detection to instElementList for constants and parameters.
- Also sort parameters in instElementList.
- Updated test cases due to different sorting of parameters.
- Updated mofiles/CyclicBindingParam and mofiles/CyclicBindingConst and moved
them from failing tests to working tests.
14 lines of code changed in 3 files:
- Known external "C" calls are now treated as external "builtin"
- That is, Modelica.Math.sin becomes a call to sin because it is calling the same C function we know that the builtin function is calling
- This finds more functions than just Modelica.Math.sin (some of the testcases mapped their own external "C" function to C)
- We should also be able to change Derive.mo to do pattern-matching against "sin" now, instead of calling Builtin.isSin
788 lines of code changed in 73 files:
#1373
- Added Absyn.Info to SCode.EXTENDS
- Added a warning when extending from a function containing an external declaration
1 lines of code changed in 1 file:
#1062
- Added Error.mo messages for invalid when-equations
1 lines of code changed in 1 file:
Fix for #1356
- More of the function in the initial environment now have real classes instead of just a type
- Added test Import7.mo that tests if you can write "import sinx = sin;"
6 lines of code changed in 1 file:
- DAEDump now displays the language of an external function instead of always displaying external "C"
- Added initial support for external function language "builtin"
- These functions call the other function directly without overhead
- external "builtin" functions are omitted from DAEDump
21 lines of code changed in 1 file:
(72 more)