- partialInstExtendsList is now used (copy/paste made partialInstClass use the regular instExtendsList instead; it was probably just a little bit slower).
- Inst.classdefElts2 now returns 2 lists. One with only constants so these can be explicitly instantiated (this was commented out due to breaking ClassExtends3.mo).
- Inst.instElement now tries to update the mod one last time before instVar (this is because the mod that comes from the baseclass was untyped).
76 lines of code changed in 1 file:
- Removed unused input from Mod.lookupIdxModification2
19 lines of code changed in 1 file:
- Mod.elabModValue now won't try to ceval expression dependent on variables (they should always fail).
- This makes debugging easier since expressions that aren't meant to be ceval'ed won't appear in failtraces.
- Static.elabExp now generates C_CONST for MetaModelica NONE, NONE() and {}.
- Static.elabExp will generate correct const-ness for SOME(exp) and list(e1,..,,en).
19 lines of code changed in 2 files:
Some updates for Cevalfunc, it works better but still not perfect.
447 lines of code changed in 4 files:
- implemented DAEUtil.selectBranches that is used to select the if equation branches
if the conditions are Boolean literals (true/false). This is needed because
Connections.isRoot is replaced with true/false at the end of instantiation.
47 lines of code changed in 1 file:
- Re-added MatchCaseInteractive3.mos to testsuite
- Added some changes to the external Java testsuite
3 lines of code changed in 3 files:
- ConnectionGraph.mo:
+ faster handling of overconstrained connections when the connection graph is empty: no DAE walk!
+ handle expression: (NOT Connections.isRoot(A))
+ gather operations into one new function: ConnectionGraph.handleOverconstrainedConnections
which is called from Inst module when we reach the instantiation of the top level class
- Inst.mo:
+ handle overconstrained connections also in Inst.instantiateClass and Inst.instClassInProgram
(was only in instProgram before)
+ removed some old commented out debug prints.
- Static.mo
+ handle the case where the instance function is made of parts instead of being derived (short
class definition)
- Util.mo
+ implemented listAppendNoCopy that deals with empty lists using
special cases by not generating a new copy of the non-empty list.
+ the normal listAppend(L1, L2) will ALWAYS generate a copy of the first parameter (L1)
- Env.mo
+ trivial comment change
- DAEUtil.mo
+ removed extra parentheses around named pattern as it doesn't parse using omc
- DAELow.mo
+ DAELow.COMPLEX_EQUATION describes equations of the form record=functionCall(...).
+ more handling of DAELow.COMPLEX_EQUATION so at least checkModel works.
+ more is needed so that DAELow.COMPLEX_EQUATION works in simulation
512 lines of code changed in 7 files:
- Implemented extraction and generation of linear-systems and nonlinear
equations
2085 lines of code changed in 5 files:
- Changed SCode Option<Absyn.Path> baseClassPath to Option<tuple<Absyn.Path,Mod>>.
- When extending a class, we also add the SCode.Mod to the baseclass, so we instantiate the correct class later on.
- Added a testcase that sets the dimensions of a matrix in the extends modifications.
115 lines of code changed in 8 files:
- Extracted more algorithm equations
- Made debug message easier to notice in compiler error message output
24 lines of code changed in 4 files:
- Fixed spelling error in ZEROCROSSING generation
- Updated template scalarLhsCref
- Fixed type bug in range-for generation
- Added template daeExpCrefRhs
- Added support for binary operations: ADD_ARR, SUB_ARR, and DIV_ARRAY_SCALAR
- Changed ASUB template case to match how Codegen works
- Changed the way relations are generated: non-simulation specific relations
are now generated in simulation context
3386 lines of code changed in 5 files:
- Fix the name generated by ClassExtends2.mo (was ClassExtends1)
1 lines of code changed in 1 file:
- When instantating a partial package, force partial instantation instead.
- When partially instantiating a partial class, strip out all non-package elements.
40 lines of code changed in 2 files:
- Moved around in Ceval.mo to only generate a failtrace if all ways to call a function fail (that is, after we try the interactive ones)
33 lines of code changed in 1 file:
Added warning when trying to apply non-array modification to array component
without 'each'.
18 lines of code changed in 2 files:
Replaced error message with fail trace.
3 lines of code changed in 1 file:
Fix for the bug:
http://openmodelica.ida.liu.se:8080/cb/issue/1074?navigation=true
19 lines of code changed in 2 files:
- Fixed Static.elabBuiltinDiagonal - real arrays will now generate RCONST(0) instead of ICONST(0)
11 lines of code changed in 1 file:
- Changed DAE.ComponentRef to SimVar in zeroCrossingsNeedSave
50 lines of code changed in 5 files:
- Refactored how types are generated
- Updated template for CAST
3128 lines of code changed in 3 files:
- Fixed a bug (hopefully correctly) where too many AddEvents were generated
- Implemented STMT_WHILE
- Implemented STMT_ASSERT
- Implemented STMT_WHEN
- Implemented LUNARY
- Implemented MATRIX
- Implemented special build-in functions promote and transpose
3120 lines of code changed in 5 files:
- Fixed testcases ClassExtends{1,2,3}.mo
1 lines of code changed in 1 file:
Changed deriving function to be fullyQualified.
17 lines of code changed in 2 files:
- removed the not needed extra parentheses (these only parse in mmc but not in omc).
3 lines of code changed in 1 file:
- updated OpenModelica back-end to agree with the new DAE.FUNCTION definition.
- 3 tests (testsuite/mofiles/ClassExtends*) fail due to changes in Inst.partialInstClassdef
106 lines of code changed in 8 files:
Changed DAE.FUNCTION to a more generic structure for external and normal function as well as derivatives of functions. Construct in front end derivative information for functions.
Inline'ing changed a bit. Now a record rather then a boolean.
Reverted some inst.partialinstclassdef stuff that martin did, was not compatible with all functioncalls.
1303 lines of code changed in 17 files:
Added initialization of record members by rewriting generateAllocOutvar, adding
generateAllocRecord and modifying generateAllocOutvars and
generateAllocOutvarsExt in Codegen.
106 lines of code changed in 1 file:
- Changed array lists: stateEquations became the two lists allEquations and
stateContEquations
- Ignored when equations in equation lists
- Changed to simulation context in a few places
- Used context in more places
- Generate for loops
- Added templates typeStrFromExp and typeStrFromOp
- Generate some asubs
3714 lines of code changed in 5 files:
- Added boolean inline to DAE.T_FUNCTION.
- Changed elabCallArgs to use this flag instead of doing an extra lookupClass (which causes infinite recursion in Modelica.Media models).
- Removed instElementList from partialInstClassdef (the classdefs are added to the environment and may be looked up anyway).
- Added testcase ClassExtends3.mo.
596 lines of code changed in 18 files:
- enumerations works now
- ToDo: replaceable enumerations in models with equations/algorithms containig explicit
enumeration literals does not work because the componentRef have to be replaced
and the numbers of enumeration litterals from both enumerations should be equal
- ToDo: do not replace enumeration litteral with it value inside loops
- update workplan-status
37 lines of code changed in 3 files:
Added System.addToRoots to SCode.translateAbsyn2SCode.
Also corrected crefEqual from commit #4678. Now it also works on DAE.CREF_IDENT()
34 lines of code changed in 2 files:
- Added tests for inline functions
These tests are not run automatically
0 lines of code changed in 5 files:
- enumeration as loop var work now in algorithm sections
- ToDo do not replace the enumeration literals with it integer value
- start work on replaceable enumeration
73 lines of code changed in 4 files:
- Extracted algorithm equations to templates
- Added context to templates
1630 lines of code changed in 5 files:
- Changed variable name type from String to DAE.ComponentRef
- Handle array variables
- Added arrayCref to SIMVAR to support #defines of arrays
- Extended algStatement template to handle some array operations
- Implemented daeExpSize template
- Temporarily disabled generation of function record declarations
- Cleaned up some code
2608 lines of code changed in 5 files:
- Merged instClass partial function case with the generic case.
71 lines of code changed in 3 files:
- Added missing operators to Exp.typeofOp
9 lines of code changed in 1 file:
Update of Adrians, Martins, Pers time log until moring 091214. Fix of summation error for MultiBody spent days. Other minor edits.
0 lines of code changed in 1 file:
- calling an function via an instance (world.gravityAcceleration) now WORKS!
- Static.elabCallArgs intercepts the world.gravityAcceleration, and then
copies the function (World.gravityAcceleration) and dependencies (World.gravityAccelerationTypes)
from World into the current scope with new name that prefixed by the instance name:
"world.gravityAcceleration" and "world.gravityAccelerationTypes"
71 lines of code changed in 1 file:
- testsuite/mosfiles/Enum8.mos fails due to changes in Codegen.mo (to be fixed later).
1 lines of code changed in 1 file:
- Inst.addCachedEnv moved to Env.addCachedEnv (is more natural to be in Env)
- Static.transformModificationsToNamedArguments (does what the long name say)
- Lookup.lookupType2 reordered cases
- Codegen - generate modelica_integer and integer for enumeration type.
testsuite/mosfiles/Enum8.mos will fail because of this. To be fixed later.
- more comments in Inst
- Exp.crefEqual was checking for equality:
+ by comparing idents/subscripts by using
equality(n1, n2) instead of true = stringEqual(n1, n2)
+ as a last resort (last case) by *converting*
the crefs into strings and doing string comparison
on them??!!
+ I changed all equality(n1, n2) into true = stringEqual(n1, n2)
and improved the last case to handle stringified crefs better:
CREF_QUAL(x, CREF_IDENT(y)) will be equal to CREF_IDENT(x.y).
- Inst.isInnerOuterMatch now compares the last
indents from crefs before doing the Exp.crefEqual.
- Inst.propagateAttributes is now walking the DAE once
- Changed the walking the DAE two times:
innerVars =
DAEUtil.getAllMatchingElements(inDae,DAEUtil.isInnerVar);
outerVars =
DAEUtil.getAllMatchingElements(inDae,DAEUtil.isOuterVar);
To walking the DAE once:
(innerVars,outerVars) =
DAEUtil.findAllMatchingElements(
inDae,DAEUtil.isInnerVar,DAEUtil.isOuterVar);
- Inst.instClassIn and Inst.partialInstClassIn are now cached (only one input/result for now)
+ this needs to be developed more as the cache should be cleared after instantiation of
the top class is done.
1510 lines of code changed in 7 files:
- added DAEUtil.findAllMatchingElements to split DAE into inner/outer variables
in ONE walk.
55 lines of code changed in 1 file:
- added DAELow.COMPLEX_EQUATION which is populated from
DAE.COMPLEX_EQUATION and DAE.INITIAL_COMPLEX_EQUATION
- no handling of DAELow.COMPLEX_EQUATION yet.
58 lines of code changed in 1 file:
- added unsafe external functions in System.mo:
+ System.listAppendUnsafe (not used)
+ System.addToRoots and System.getFromRoots to implement global variables.
168 lines of code changed in 2 files:
- replaced tabs with 2 spaces to correctly display code in any editor.
122 lines of code changed in 1 file:
- handle DAE.COMPLEX_EQUATION and DAE.INITIAL_COMPLEX_EQUATION in VarTransform.applyReplacementsDAE
- if no case in VarTransform.applyReplacementsDAE matched just move to next, DO NOT FAIL.
Modelica.Mechanics.MultiBody.Elementary.DoublePendulum did not flatten because
VarTransform.applyReplacementsDAE failed.
- Use DAE.ET_OTHER instead of DAE.ET_REAL in VarTransform.applyReplacementsDAE as otherwise the
correct type is not copied from the replaced expression.
68 lines of code changed in 1 file:
- work on enumerations for loops in algorithm sections
- DoTo: for e in Enum.e1 : Enum.en
- bufgix SimCodegen: print enumeration as integer for T_Complex ComponentRefs
- use modifiers like start, fixed, ... for enumerations and derived enumerations
88 lines of code changed in 4 files:
- fix a bug in Inst.instBooleanClass
- redisign of enumeration instantiation
82 lines of code changed in 2 files:
- faster Exp.crefEqual
91 lines of code changed in 1 file:
Updated status
0 lines of code changed in 1 file:
Added status estimate for DLL/SO-generation.
0 lines of code changed in 1 file:
- updated workplan status
0 lines of code changed in 1 file:
- updated status since 2009-11-06
0 lines of code changed in 1 file:
- Add Makefile dependencies to Compiler/runtime/dynload.o
4 lines of code changed in 2 files:
- Disable failtraces that are not useful.
2 lines of code changed in 1 file:
- Updated partialInstExetendsList to do the same thing as instExtendsList.
- Changed splitElts, listSelect in those functions to use a new splitClassExtendsElts instead (for performance).
32 lines of code changed in 1 file:
- added testmeta target
4 lines of code changed in 1 file:
- implemented SCodeUtil.translateSCodeModToNArgs which translates *derived* class
modifications into named function arguments and also prefixes only the CREF_IDENTs
from the binding expressions with the given prefix.
279 lines of code changed in 1 file:
- small code formatting and a bit more explaining
16 lines of code changed in 1 file:
- fixed a typo.
2 lines of code changed in 1 file:
- use $OPENMODELICAHOME/bin/Compile all the time and if it fails, just report the error.
- this will get rid of g++: No Input Files errors
6 lines of code changed in 1 file:
- added Absyn.joinPathsOpt function
22 lines of code changed in 1 file:
- Generate _functions.cpp file from root template
- Added TODO comments
- Added some notes
105 lines of code changed in 4 files:
- Rename namemods when renaming classes due to CLASS_EXTENDS.
- Fix so that you may extend from classes that use CLASS_EXTENDS nodes.
- Added testcase for this.
138 lines of code changed in 7 files:
-Added function Error.getNumErrorMessages that returns number of messages in queue with severity 'Error'.
28 lines of code changed in 3 files:
- Added test cases for operator overloading
146 lines of code changed in 6 files:
- Fixed class extends by renaming the extended class and creating a new one extending from the old in the same scope.
- We can now put proper modifications in the class extends node (they get elaboated in the correct scope).
- Only the toplevel class extends are expanded (not inherited). This bug will be fixed in a later commit.
- If the modifications on the extends node in the base class modifies the class we extend using class extends, those modifications will have higher priority. This is bug will be fixed in a later commit.
187 lines of code changed in 3 files:
- Added dummy SimEqArray record for debugging purposes
- Extract array equations
- Generate DAE.Exp.ARRAY
- Added listLengthExp function
15188 lines of code changed in 5 files:
- regenerated SimCodeC.mo and SimCode/SimCodeC.mo to make everything compile
2728 lines of code changed in 2 files:
Implemented unary subtraction for real arrays.
24 lines of code changed in 3 files:
-Fixed bug in getMessagesStr in errorext.cpp
3 lines of code changed in 2 files:
Changed scalar types to array types where suitable in Static.operators, and
changed Codegen to reflect these changes. This was done to fix vector operations
that didn't work.
102 lines of code changed in 2 files:
- Generate empty functions file so that compilation will succeed
(generation of function code failed for one test case)
- Replaced DAELow.Equation with SimEqSystem as a step to support array eqs
116 lines of code changed in 3 files:
Added RTOpts.debugFlag guards to lessen overhead when debug output isn't used.
196 lines of code changed in 28 files:
- Fixed incorrect array name
- Fixed incorrect switch variable name
- Added support for constant subscripts
- Generate removed equations in output functions
- Added (temporary) generation of makefile to be able to run testsuit
- Removed print statements since they interfered with rtest in testsuit
- Fixed order of equation lists (they were reversed)
- Fixed order of variables (now sorted by index)
- Fixed indents to match << (and >>) in templates
158 lines of code changed in 3 files:
- a first complete Susan lexer/parser error reporting implementation
it is usable primarily with MDT in Eclipse ... reported errors are marked directly in code editor when the .tpl file is opened
10073 lines of code changed in 13 files:
- Static.operators was speeded up by a factor of 4. We now save a lot of the lists generated as constants.
- Fixed compiler warning in meta_modelica.c
- Fixed the BuiltinArray.mos testcase on 64-bit Linux
53 lines of code changed in 3 files:
-Added HashTable6.mo : (cr,cr) -> exp
-Fixed bug in Errorext.cpp: getMessagesStr (no comma's between messages)
-Added some functions to Util
-Added VarTransform.replaceExpRepeated that iterates replacement rules until it converges.
1044 lines of code changed in 9 files:
Refactored.
34 lines of code changed in 1 file:
Changed vim mode line.
1 lines of code changed in 1 file:
Restructured templates so there is one template per function.
88 lines of code changed in 1 file:
- Added function function_onlyZeroCrossing
- Worked on function call template
58 lines of code changed in 1 file:
Added test case AlgorithmForInClass.
126 lines of code changed in 3 files:
Fixed and added test case SumSeriesWhile.
10 lines of code changed in 3 files:
- use g++ as otherwise we have problems with undefined linker errors for exceptions.
3 lines of code changed in 1 file:
- Fixed lexer/parser external C functions for 11_petrol OMC implementation
280 lines of code changed in 4 files:
Fixed bug in runtime system that caused result data for some points in time to be written twice.
Fixed test case BouncingBall2, because it depended on the above bug.
4 lines of code changed in 2 files:
- Added MetaModelica arrayLength, arrayGet, arrayCreate, arrayList, listArray, arrayUpdate, arrayCopy, arrayAdd. All use arrays as the underlying datatype. The array type should be considered mutable.
198 lines of code changed in 11 files:
Cleaned up Debug.mo a bit.
0 lines of code changed in 1 file:
Removed Exp.subscriptToInts, a duplicate of Exp.subscriptsInt.
3 lines of code changed in 2 files:
- Added initial support for MetaModelica array<ty>, including initial versions of arrayCreate, arrayGet and arrayLength (based on a list implementation which needs to be replaced).
171 lines of code changed in 10 files:
- Moved some failing tests that now work to testfiles
3 lines of code changed in 1 file:
Fixed license in Algorithm.mo, which had been the victim of a runaway search-and-replace.
1 lines of code changed in 1 file:
Added initial support for while- and for-loops in class algorithm sections.
214 lines of code changed in 2 files:
Added expInt function.
9 lines of code changed in 1 file:
Implemented function checkForDiscreteVarChanges.
61 lines of code changed in 3 files:
- Ceval: asin, acos, atan, atan2, cross and log10 implemented and enabled
168 lines of code changed in 13 files:
- Implemented function_updateDependents
- Implemented function_when
- Handle logical binary operations
- Added template daeExpCall
251 lines of code changed in 3 files:
- Add an implementation and testcase for a (very) simple redeclare replaceable model extends (used in Media).
204 lines of code changed in 4 files:
- use fill(...) instead of listFill + listArray
45 lines of code changed in 6 files:
- some updates to testsuite spreadsheet
0 lines of code changed in 1 file:
- atan2 added to modelica built in functions
10 lines of code changed in 4 files:
- PartialFn13 now works with if expressions again
- Fixed some type conversions
- Added function unboxExpType to Exp
25 lines of code changed in 3 files:
- Changed PartialFn13 to use an if statement for now
11 lines of code changed in 5 files:
- Implemented function bound_parameters
- Refactored expression templates
- Fixed incorrect names for derivatives
- Fixed incorrect names for some equations
- Implemented function function_zeroCrossing
- Implemented function handleZeroCrossing
382 lines of code changed in 3 files:
- More RTOpts guards for MetaModelica cases
16 lines of code changed in 1 file:
- Renamed C runtime metamodelica_type to modelica_metatype, to fit with Codegen standards.
- DAE.IFEXP now generates a temporary so it can be used with array functions.
- Disabled PartialFn13.mos since the DAE.CALL of those functions have incorrect return-type, and correct code isn't generated.
109 lines of code changed in 9 files:
- Disable printing "Types.matchProp debug: match prop.". Saves about 1m (20% total time) when trying to flatten double pendulum.
0 lines of code changed in 1 file:
- Fix compilation warnings for 08_pam/lexer.l on 64-bit platforms
3 lines of code changed in 1 file:
- guard the MetaModelica lookupType in Static.elabCallArgs with
true = RTOpts.acceptMetaModelicaGrammar();
as lookup is rather expensive.
- in Static.elabBuiltinSmooth when smooth(0, expr) just return expr.
14 lines of code changed in 1 file:
- changed from mk_scon to mmc_mk_scon as otherwise this test fails on Windows.
1 lines of code changed in 1 file: