- Updated external C function testcases. Including the C-file instead of object-file may fail if the linker is g++ instead of gcc (and we eventually want to use g++).
- Using the Include = "#include \"abc.c\"" or Library = "abc.c" annotations won't work if we use g++ as linker.
- mofiles testcases now use rtest -v so errors are more visible when grepping for == in a testsuite log.
57 lines of code changed in 16 files:
- Removed some cp -u lines from Makefiles. They don't work in OSX (GNU extension).
- Added x86_64-OSX version of liblpsolve55.dylib.
- Most regular Modelica testcases work in 64-bit OSX. MetaModelica testcases seem to fail, however (probably due to not using the 64-bit datatypes in the headers).
2657 lines of code changed in 5 files:
Added time estimates to workplan.
0 lines of code changed in 1 file:
- ValuesUtil.unparsePtolemySet2 was failing due to some problems with dimensions of Values.ARRAY;
because of this plotting was failing, now it works again.
35 lines of code changed in 1 file:
- continue with division by zero implementation
74 lines of code changed in 1 file:
Updated workplan
0 lines of code changed in 1 file:
Updated workplan
0 lines of code changed in 1 file:
- updates of the Workplan-status-estimates.xls
0 lines of code changed in 1 file:
- updates of the Workplan-status-estimates.xls
0 lines of code changed in 1 file:
- Added baseclass paths to the elements of class definition in addInheritScope
- Added ceval for DAE.SLICE
- Added testsuite/mofiles/Extends6.mo to test these things
160 lines of code changed in 5 files:
- continue with division by zero implementation
42 lines of code changed in 1 file:
- Updated Lookup.lookupClass
- Instead of removing prefixes from the path we are trying to look up, we now store previous frames.
- So if we are in scope A.B.C.D and don't find C.E in either D or C, we lookup C.E in A.B with the previosuly stored frames {C,D}. We then rebuild A.B.C and lookup E with previously stored frame {D}.
- We also send a stateful Boolean around in lookupClass.
- If we ever find a matching name, this boolean is set to true.
- If the boolean is true, we can no longer go up a level in the scope.
- So if you have a class A.B.C.B and try to lookup B.C, it will now correctly only look for C in the scope A.B.C.B (and not A.B as it would previosuly do).
- Note: This still doesn't solve all issues because the compiler stores UNTYPED mods sometimes, and this could potentially be elaborated in the scope A.
- Added testcase mofiles/Constant11.mo for one of the issues now solved.
261 lines of code changed in 4 files:
- Updates to testsuite/mathcore-mofiles/msl and testsuite/mathcore-mofiles/drmodelicato match changes made in r5029
601 lines of code changed in 175 files:
- Updates to testsuite/mathcore-mofiles and testsuite/records to match changes made in r5029
163 lines of code changed in 43 files:
Should be rtest -v as rtest -b will just set a baseline.
1 lines of code changed in 1 file:
- Added a stateful Boolean to Util.mo
- It's really a Real[:], but the abstraction makes it look like a single value.
- Useful if you need to set a flag to stop a recursive operation (stop continue on fails).
25 lines of code changed in 1 file:
Quite big check-in:
DAE.mo:
- added some comments to operators
DAEUtil.mo :
-added some utility functions.
Exp.mo:
-implemented simplification of cross
- fixed some bugs in simplification
- added some utility functions
Inst.mo:
- bindings on parameters and constants are now also created using makeVariableBinding, as for variables. This makes them also type converted properly as for variabeles. (This affected many flat models).
- Fixed bug in setFunctionInputIndex (used for derivative information on functions)
Lookup.mo :
- fixed bug in makeExpIntegerArray with wrong value on the scalar attribute.
Static.mo :
- made elabBuiltinCross2 public (used by Exp.simplify1)
+ a lot of updates to testsuite
66577 lines of code changed in 158 files:
Some minor renaming of functions to be more correct according to rest of project.
3 lines of code changed in 1 file:
- Exp.mo
Handle also WHOLEDIM in Exp.replaceSliceSub.
WHOLEDIM is *also* a special case of SLICE
that contains the all subscripts, so we need
to handle that too!
This will get rid of errors like:
The generated equations:
controller.observer.y[:,1] = controller.L.u[:,1];
controller.observer.y[:,2] = controller.L.u[:,2];
should be instead;
controller.observer.y[1] = controller.L.u[1];
controller.observer.y[2] = controller.L.u[2];
- DAEUtil.mo
- count internal equations in if equations by removing assert and terminate
- handle more equation types in DAEUtil.makeEquationToResidualExp
- todo: handle assert in if equations by translating them to
assert(NOT condition_from_if OR condition_from_assert, ...)
or something like this (my boolean logic doesn't work at this hour).
141 lines of code changed in 2 files:
- start implementation of check division by zero
17 lines of code changed in 1 file:
- undo more simplification (Rev 5008) because speedup is less than 1%, so numerical stability will be preferred
175 lines of code changed in 29 files:
- Merged cases in lookupClass2 to make it easier to follow
5 lines of code changed in 1 file:
Added a Absyn function to strip last cref of a qualified cref
25 lines of code changed in 2 files:
- Bugfix: there was an error in daelow for bind expressions. The error occurred because in Exp.replaceExp has been traversed a component refs but this is wrong because m2.a will be replaced to m2.%$a for {{a,%&a},{m2.a,%&m2$Pa}}.
71 lines of code changed in 4 files:
- do a bit more simplification
195 lines of code changed in 37 files:
Fixed failing test case mosfiles/BooleanArray.mos.
42550 lines of code changed in 5 files:
- Refactoring of code; no changes made to the DAE AST
+ Constructors of builtin types, such as (DAE.T_INTEGER({}),NONE) are now made through a constant DAE.T_INTEGER_DEFAULT
+ This refactoring will make it easier to change the representation of the DAE.Type
1151 lines of code changed in 12 files:
- Fix mosfiles/BuiltinMath.mos (expected result was incorrect).
2 lines of code changed in 1 file:
- add missing built in math function return types
69 lines of code changed in 4 files:
- fixed for bug [#1175] (https://openmodelica.org:8443/cb/issue/1175?navigation=true)
instantiateModel(Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum);
wrongly gives errors:
Error: Variable body.sequence_start[1] not found in scope <global scope>
Error: No constant value for variable body.sequence_start[1] in scope <global scope>.
Error: Variable body.sequence_angleStates[1] not found in scope <global scope>
Error: No constant value for variable body.sequence_angleStates[1] in scope <global scope>.
- the problem was in Inst.mo, Inst.instEqEquation2 where the call:
Ceval.ceval(Env.emptyCache(),Env.emptyEnv, e2, false, NONE, NONE, Ceval.MSG());
gets no env(ironment) and no cache and is required to print error messages via Ceval.MSG().
Or course error messages will be printed as lookup and constant evaluation of
any component references will fail without any environment.
- updated all testsuite/library/multibody/*.mos
44 lines of code changed in 18 files:
Some minor changes to inst->deriveing function and Exp functions.
27 lines of code changed in 3 files:
- disabled the meta failing tests for now, until they are fixed
7 lines of code changed in 2 files:
- updated all rtest files to use grep instead of egrep because:
system "egrep -s '^#|Execution failed!' $log";
would *wrongly* succeed if $log contains word "failed"
9 lines of code changed in 12 files:
ForceAndTorque.mo
- is a new test for testing a bug that in qualified component subscripting
- this tests for a bug that wrongly generated things like:
force.y[1] = forceAndTorque.force[1];
instead of correct:
force[1].y = forceAndTorque.force[1];
77 lines of code changed in 2 files:
updated some of the tests
- modifyOuter.mo now does not fail anymore as we only generate a warning
- InnerOuterSystem.mo now has components in a different order due to instantiation of inner component first
- AlgorithmForInClass.mos now tests flattening also
81 lines of code changed in 4 files:
new Makefile.omdev.mingw target called testlog
- adds file logging of testsuite as we need if we have plenty of output because Eclipse console is limited.
- the log file is saved into: testsuite/testsuite-trace.txt
4 lines of code changed in 1 file:
*BEWARE*, quite BIG changes, MathCore will need to update their files!
- new implementation for inner outer to get the Elementary ThreeSprings working
+ inner components are put first in the list returned by Inst.splitElems to be instantiated first
+ when instantiated the inner component environment and the dae is saved into InnerOuter.InstHierarchy
+ when instantiated the outer component the inner component is looked up into InnerOuter.InstHierarchy
and the returned environment and dae are processed to make it usable for outer:
* components in the environment are switched from INNER to OUTER
* components in the dae are switched from INNER to OUTER and prefixed with the prefix of outer
- tons of other fixes
InnerOuter.mo is a new package
- contains the instance hierarchy and the inner/outer functionality previously in Inst.mo
Prefix.mo split into Prefix.mo and PrefixUtil.mo
- this makes Prefix.mo to contain just data type definitions and can be included almost anywhere.
- Prefix functionality that heavily depends on other packages is moved to PrefixUtil.mo
Connect.mo split into Connect.mo and ConnectUtil.mo
- just data types in Connect.mo to be easily included anywhere
- ConnectUtil.mo better encapsulates the connect functionality from Inst.mo and Env.mo
SCode.mo
- added info node to SCode.CLASS (is now used in Static.mo to get the build time for a function
instead of going via Interactive.getPathedClassInProgram which might do instantiation again)
Inst.mo
- moved big parts of Inst.mo into ConnectUtil.mo and InnerOuter.mo
- modification on outer will be ignored and will generate only a warning
instead of an error as some other Modelica tools do.
Env.mo
- moved parts of Env.mo into ConnectUtil.mo as they really belong there!
- this makes Env.mo much lightweight on imported modules.
DAEUtil.mo
- correctly dump the input/output types of the flattened functions
- got rid of some spaces before the ";"
Cevalfunc.mo
- fixed an error with the dimension of the type of the output components in functions
type AliasToArrayType = Real[3];
output AliasToArrayType x;
wrongly generated:
output Real x;
Main.mo
- better display of errors and warnings when flattening files from the command line
- hopefully fixed the naming of generated code if you load a library via the command line
./omc File.mo Modelica wrongly generated Modelica.cpp Modelica_functions.cpp ...
System.mo and systemimpl.c
- changed a bit the global caching interface.
Static.mo
- return the same expression in makeASUBArrayAdressing if we have qualified component references
This will get rid of x.y.f[{1,2,3}] = ... in the Elementary examples.
- implemented function caching in Ceval.mo (disabled for now as we
get permission denied when trying to delete .dlls in .mos scripts)
Makefile*
- updates to makefiles to compile the new packages
7460 lines of code changed in 34 files:
- added a new function
- use dummyInfo constant rather than construct it on the fly
19 lines of code changed in 1 file:
- update the testing of MultiBody Elementary models
- updated rtest to use grep instead of egrep because:
system "egrep -s '^#|Execution failed!' $log";
would *wrongly* succeed if $log contains word "failed"
17932 lines of code changed in 20 files:
Compilation aid in solving a problem for some 64 bit OS.
27 lines of code changed in 1 file:
- updates so it compiles
1 lines of code changed in 1 file:
- Updated get_array_sizes in dynload.c to use existing dimension information from the Values.ARRAY
11 lines of code changed in 1 file:
- Added list<Integer> dimLst to Values.ARRAY
* This means we can ceval {} and still know it has dimensions [0,3,2,5]
* Updated C runtime
* Updated elabBuiltinXXX to return correct type
* Rewrote parts of vectorizeCall
* Rewrote ValuesUtil and Ceval to set the correct dimensions of its calculated results
* Didn't optimize all parts that use listLength on the valueLst. This could be improved also in in runtime
408 lines of code changed in 12 files:
Types.vectorizableType:
- Changed it so that the expected type is lifted instead of the expression type unlifted
- This means {{1,2,3}} with expected type Real[1,3] now becomes {{1.0,2.0,3.0}} with type Real[1,3] instead of CAST({{1,2,3}}) with type Real[3] as it previously returned.
+ The added dimensions are returned like before, no other changes were required.
106 lines of code changed in 3 files:
minor changes in front-end,
* some new functions
* cleaning of code and complement to existing functions
44 lines of code changed in 4 files:
- update CMake files, now it is possible to at external c sources
7 lines of code changed in 2 files:
Added a variant of buildModel that takes a stepSize instead of startTime,
stopTime and numberOfIntervals. This is used by Parham Vaseles OpenModelica
Interactive implementation.
38 lines of code changed in 1 file:
- Balanced the ptolemyio.cpp indentation.
168 lines of code changed in 1 file:
- Removed tab characters from ptolemyio.cpp
111 lines of code changed in 1 file:
- Added MetaModelica builtin function print(String) as a Modelica builtin function instead (by request from Adrian)
1 lines of code changed in 1 file:
- Bugfix: XMLDump, replace all "<" and ">" with W3C standart "<" and ">", not the best implementation but i thing we should use susan for XMLDump.mo
- implement Tearing in susan codegen (also use DAELow.STATE_DER for state derivative)
- start with division by zero problem
- added a few more simplify to Exp.mo
1709 lines of code changed in 8 files:
- DAEUtil: Added some printing of MetaModelica statements (to see more structure of functions when printing flattened models)
29 lines of code changed in 1 file:
- Fixed elaboration of the builtin vector function (should now give correct result and type).
- Added test case VectorBuiltin to test the fix.
136 lines of code changed in 4 files:
- Static.mo: Improved readability of logic in edge,change and cevalIfConstant
9 lines of code changed in 1 file:
- add Flag "-mt" to measure simulation run time
9 lines of code changed in 1 file:
- added CMake files to generate for example Visual Studio project to debug generated simulation executables
29 lines of code changed in 4 files:
- Exp.printExp:
+ Added WILD
+ Added VALUEBLOCK
11 lines of code changed in 1 file:
- Added better _init.txt trace messages during verbose simulation
1 lines of code changed in 1 file:
- Fixes for code generation of scalar arrays (now works for boolean arrays in simulation context)
57 lines of code changed in 4 files:
- QHP/TestRedCellsTotal.mo ... another model to be translated to C#
2355 lines of code changed in 4 files:
- C# codegen update for OM Workshop
- C# functional code in RightHeartStarling.cs
43441 lines of code changed in 12 files:
- Bugfix: tearing algorithm
- add new variable kind STATE_DER in DAELow to differentiate between State and der(State)
165 lines of code changed in 2 files:
Added some functions used by MC back end
62 lines of code changed in 2 files:
- Added missing file Sample1.mos for testsuite
2 lines of code changed in 1 file:
- Fix for sample(startTime,i). Now doesn't generate events unless time >= startTime, as expected.
14 lines of code changed in 3 files:
Fixed elaboration of built-in function 'integer' when the argument is an
Integer.
16 lines of code changed in 2 files:
- Fixed vectorization of types extended from base types to also work for matrices
of any dimensions (bug #1119).
- Extended the VectorizeExtendedType test case to also test this fix.
12 lines of code changed in 2 files:
- fixes for 3.x annotations
- added getNthInheritedClassIconMapAnnotation and getNthInheritedClassDiagramMapAnnotation
for retrieving annotations placed on extends.
248 lines of code changed in 2 files:
- hopefully faster/better Util.listReduce
8 lines of code changed in 1 file:
- fixes for enableSendData
231 lines of code changed in 8 files:
- Fix for instantiateDaeFunction when the input is fully qualified and the function exists within a model, not a package.
+ Use the non-fully qualified name - the same we used to get the function type.
1 lines of code changed in 1 file:
Fixed bug #1161, where 3*(2^p) was 'simplified' to 3*(p^2.0).
40 lines of code changed in 3 files:
Added dereferencing of the the filename string pointer in read_input, so that
you get a meaningful error message if it fails to open the input data file.
1 lines of code changed in 1 file:
- Added c_runtime/fortran_types.h
+ Contains only fortran_integer - the same size integer as the ones used by the DASSL solver.
- Updated solver_dasrt.h to use fortran_integer instead of long.
+ Fixes some of the new 64-bit issues.
+ Also updated functions that were used by this function.
+ Updated code generation for the new function defintions.
- The testsuite now runs on 64-bit machines (except some MetaModelica tests)
59 lines of code changed in 12 files:
- test update
2 lines of code changed in 1 file:
- tearing implenetation: check if tearing succeed, make negative entries from IncidenceMatrix positiv to get a working matchingAlgorithm
70 lines of code changed in 2 files:
- testfast target to just run all tests but the libraries.
3 lines of code changed in 1 file:
- more info on how to generate .project in README-OMDev-MINGW.txt
6 lines of code changed in 1 file:
- updated tests due to changes in DAE
0 lines of code changed in 4 files:
- tearing implenetation: first codegeneration version works
371 lines of code changed in 6 files:
-Small bugfix for instantiation of derivative functions.
5 lines of code changed in 1 file:
- Moved generation of makefile to templates
- Added skeleton for new function needed by simulation library
1331 lines of code changed in 5 files:
- Added scope name for valueblock scopes
+ Used to be NONE(), but that causes Env.getEnvPath to fail
4 lines of code changed in 2 files:
-Fixed bug with infinite recursion of derivative functions (found throught the derivative annotation)
-Removed "koning lookup" functions that hasn't been used for years.
25 lines of code changed in 2 files:
-Partly fixed instantiation of recursive functions (need to check in so others can continue working on MultiBody). Still some problem left with invalid cache.
96 lines of code changed in 6 files:
Added some functions to Exp.mo
16 lines of code changed in 1 file:
Cleaned up template code and fixed incorrect name for some structs.
910 lines of code changed in 4 files:
Changed C# template to reflect string-to-Path data structure change.
It didn't compile before this fix. I don't know if underscorePath is the
correct replacement, but at least it compiles now.
6 lines of code changed in 4 files:
- Added failtrace when Env.getEnvName fails (related to MetaModelica problems in the testsuite)
6 lines of code changed in 1 file:
A basic implementation of the built-in function delay().
Lacking features:
* Handling of delayed events
* delayMax is ignored
* Checks for some improper usage
720 lines of code changed in 22 files:
- Added better unparsing of valueblocks for debugging purposes.
20 lines of code changed in 1 file:
Added test_susan target to makefile.
14 lines of code changed in 2 files:
Bugfix: DDASRT sometimes jumps to a root at t > tout when INFO(3) = 1.
Affects cases where outputSteps < 0.
3 lines of code changed in 2 files:
- updates to mathcore-mofiles/Matrix1.mo due to compiler changes.
0 lines of code changed in 2 files:
Fixed a bug in DAEUtil.traverseDAE2 that prevented changes to component contents being returned.
8 lines of code changed in 1 file:
- Added test case for return statements
32 lines of code changed in 3 files:
- added simple test case for while loops
27 lines of code changed in 2 files:
- added test cases for simple and nested for loops
67 lines of code changed in 4 files:
Removed debug prints from operators
18 lines of code changed in 1 file:
- Minor changes in the expected output of some testcases affected by the MathCore change.
19 lines of code changed in 4 files: