Directory Compiler/Global/

Directory Created:
2011-07-01 14:10
Total Files:
Deleted Files:
Lines of Code:


Lines of Code

Compiler/Global/ Lines of Code


Author Changes Lines of Code Lines per Change
Totals 29 (100.0%) 311 (100.0%) 10.7
adrpo 10 (34.5%) 250 (80.4%) 25.0 15 (51.7%) 47 (15.1%) 3.1
perost 2 (6.9%) 9 (2.9%) 4.5
wbraun 1 (3.4%) 4 (1.3%) 4.0
hudson 1 (3.4%) 1 (0.3%) 1.0

Most Recent Commits 2015-02-15 16:56 Rev.: 24585

- Use `goto` instead of `MMC_THROW_INTERNAL` when possible

1 lines of code changed in 1 file:

  • Compiler/Global: (+1) 2014-10-21 11:49 Rev.: 22831

- Added support for a new annotation `__OpenModelica_Interface`, and the corresponding scripting function `checkInterfaceOfPackages`
- Using this function and annotating every source package, it is possible to restrict and document which packages are part of the front-end and which are back-end modules
- The interface types are given in the call to `checkInterfaceOfPackages`
- Currently, too many packages have the backendInterface type (allowing front-end modules to call it even though it is a back-end module. Only one package should be a backendInterface once we refactor)
- Improved Susan to be able to insert a custom class annotation at the end of the class (so we automatically add the required `__OpenModelica_Interface` packages)
- Note that this requires installing an updated omc in order to compile susan files. (or run touch Compiler/Template/*.mo to skip trying to compile these, then touch the tpl files once you have an updated susan compiler)
- Improved SCodeDumpTpl to include non-blacklisted class annotations without +showAnnotations
- Removed the non-standard built-in function differentiate (re-add it as a scripting function if needed, or using bootstrapping tests to test differentiation)

1 lines of code changed in 1 file:

  • Compiler/Global: (+1)
adrpo 2014-09-30 06:33 Rev.: 22496

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)

9 lines of code changed in 1 file:

  • Compiler/Global: (+9 -5) 2014-06-30 12:56 Rev.: 21341

`+d=execstat` now adds the information to the buffer instead of stdout
- execstat now records cumulative time
- Boehm GC now reports memory consumption
- Made the execstat report smaller (1 entry for sorting, 1 for matching, instead of 30000 entries for every small work item)

0 lines of code changed in 1 file:

  • Compiler/Global: (-4) 2014-05-18 20:40 Rev.: 20675

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 (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.

2 lines of code changed in 1 file:

  • Compiler/Global: (+2) 2014-04-15 10:03 Rev.: 20143

Updated copyright notices to 2014
- The script uses regex to update copyright notices since we have different years in there

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1) 2014-04-14 16:59 Rev.: 20136

Various fixes
- Fix bootstrapping
- Fix unparsing of string comments
- Update OSMC-PL header in Compiler/*/*.mo

9 lines of code changed in 1 file:

  • Compiler/Global: (+9 -9)
adrpo 2014-04-04 05:36 Rev.: 19978

- fix Compiler/boot for Windows (seems to work OK now)
* propagate the $defaultMakefileTarget as is different for Windows/Linux
* use forward slash in Parser.parse filenames
* remove and from Compiler/boot/LoadCompilerSources.mos as they are *not portable* yet
- add FFrontEnd files to the compilation
* add builtin graph creation to
* add calls to FInst in

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1)
wbraun 2014-03-03 19:33 Rev.: 19398

- moved calculation of jacobian matrix for non-linear strong components
from SimCodeUtil to module in BackendDAEOptimize.
- moved functions (replaceDerOpInEquationList, replaceDerOpInExp, transformXToXd)
from SimCodeUtil to BackendEquation, Expression, BackendVariable.
- fixed bug with calculation of analytic jacobians in non-linear solver.
- module is still deactived, since it needs more fixes to pass whole testsuite,
further it conflict still with removeUnsedFunctions.

4 lines of code changed in 1 file:

  • Compiler/Global: (+4)
adrpo 2014-01-11 14:25 Rev.: 18622

- fix some meta tests on Windows (crashes because of gc parallel mark, now disabled in Windows)
- update Global.rewriteRules index to 18 (as 10 is already taken) and renamed it to Global.rewriteRulesIndex

2 lines of code changed in 1 file:

  • Compiler/Global: (+2 -2) 2014-01-10 14:12 Rev.: 18618

- Changes to reduce the number of warnings -Wall gives for omc-generated code (unused labels, etc)
- Changes that make more things thread-safe, including
+ Making tmpTick be thread-local
+ Making index 0..8 of setGlobalRoot actually be setLocalRoot (which I did not want to add to rml)
- Removed the old fork method of building omc (while fast, it did not work the way you expect it to, actually restarting the build process several times)
- Added a pthreads implementation that works well enough to bootstrap omc (not enabled by default)
+ NOTE: This is slow because GC halts *all* threads making spawning multiple processes faster despite parsing the compiler sources again. Tweaking libgc could help us though. As could adding GC_free where we know a temporary is no longer used
You are strongly recommended to make clean if you were using the bootstrapped compiler before

13 lines of code changed in 1 file:

  • Compiler/Global: (+13 -11)
adrpo 2014-01-09 11:22 Rev.: 18608

- partial commit for rewrite rules: rule file loading and parsing

2 lines of code changed in 1 file:

  • Compiler/Global: (+2)
adrpo 2013-10-15 10:33 Rev.: 17700

- fix FMI on windows (both import/export) due to main C file split (also DllExport was only for MSVC and not for gcc in SimulationRuntime/fmi/export/fmiModelFunctions.h)
- fix +target=msvc due to main C file split (fix makefile, forward equation functions, use extern "C")

- propagate fileNamePrefix in the backend as part of the BackedDAE.SHARED
- split all the duplicate partial function declarations for function pointers into a new file Compiler/BackEnd/

4 lines of code changed in 1 file:

  • Compiler/Global: (+4) 2013-10-07 14:58 Rev.: 17584

Some tail recursion

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1)
adrpo 2013-10-06 01:58 Rev.: 17556

- fix bug #2403 (quite many changes, do make clean)
- properly count tuple equation size in the BackEnd
BackendDAE.ALGORITHM gets a new component called expand (DAE.Expand)
which tells that this algorithm was translated from an equation as
in this case we SHOULD NOT expand array crefs to the full size
- added test for bug #2403
- fix counting of tuples in

More unrelated fixes:
- add recursion limit depth in and display it in the warnings and errors about recursion limit
- fix typing of record bindings for R a[3](eta = {eta[1], eta[2], eta[3]})
- if function path is longer than 50 chars minimize it by keeping the first
ident.lastIdent.uniqueID (see CevalScript.generateFunctionFileName)
- List.applyAndFold1 -> remove restriction of extra argument to be the same type of the list element.
- add buildModel to

2 lines of code changed in 1 file:

  • Compiler/Global: (+2) 2013-08-07 15:27 Rev.: 16754

More refactoring (fewer inter-module dependencies)

2 lines of code changed in 1 file:

  • Compiler/Global: (+2) 2013-07-08 14:44 Rev.: 16557

Added function Global.initialize() to init roots that are expected to have a default value

6 lines of code changed in 1 file:

  • Compiler/Global: (+6 -1) 2013-06-20 21:29 Rev.: 16425

Separate compilation: Do not instantiate functions until necessary

1 lines of code changed in 1 file:

  • Compiler/Global: (+1)
adrpo 2013-05-19 18:07 Rev.: 16089

- handle SCode.DERIVED (for class extends X)
- strip environment prefix from crefs and paths.
- add first draft of graph for SCode.
- not used yet
- fix tests due to environment strip.

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1) 2013-05-02 21:17 Rev.: 15963

Revert r15962 (accidently replaced 8 spaces with 2 spaces; was supposed to be 1 tab to 2 spaces but text editors messed up the command)
Contact me if you have problems merging your working copy

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1)
hudson 2013-05-02 20:46 Rev.: 15962

[Janitor mode] Fix tabs

1 lines of code changed in 1 file:

  • Compiler/Global: (+1 -1)
adrpo 2013-04-19 03:50 Rev.: 15859

- don't build the initial env all the time.

1 lines of code changed in 1 file:

  • Compiler/Global: (+1) 2013-03-06 13:12 Rev.: 15486

Trim trailing whitespace

5 lines of code changed in 1 file:

  • Compiler/Global: (+5 -5)
adrpo 2012-10-17 09:58 Rev.: 13422

- move unused packages to Compiler/Unused

- add class name to basic type and complex class
- union the inputs/outputs/locals when extending (fixes Modelica.Utilities.Files.loadResource)
- InstUtil.mergeDirection ignore several input or output if they are the same (fixes input Modelica.Blocks.Intefaces.RealInput used in HumMod)
- do not fail if class is partial in (should be put back)
- fix a bug in inst of WHEN equations
- removed contents and added a simplify phase to get rid of extends *Icons* to make debugging easier.
- preliminary InstTypes -> SCode transformer

- handle more in unelabCref/unelabExp and add error printing on failtrace.

0 lines of code changed in 1 file:

  • Compiler/Global: (-185) 2012-03-26 11:17 Rev.: 11531

- Converted some files to UTF-8

3 lines of code changed in 1 file:

  • Compiler/Global: (+3 -3) 2012-01-18 11:02 Rev.: 10918

- Set svn-eol-style on a few files

1 lines of code changed in 1 file:

  • Compiler/Global: (+1)
perost 2011-11-24 17:09 Rev.: 10572

New compiler flag handling:
- Removed RTOpts and OptManager packages, which are replaced by Flags and Config.
- Updated all source files to use the new flag handling.
- Split Parser into Parser and ParserExt, so that extra arguments can be sent to
the external functions.
- Added some string manipulation functions to Util.

1 lines of code changed in 1 file:

  • Compiler/Global: (+1)
perost 2011-11-11 13:37 Rev.: 10433

- Moved global root indices to Global.

8 lines of code changed in 1 file:

  • Compiler/Global: (+8 -1)
adrpo 2011-07-01 14:10 Rev.: 9391

- BREAKING 16 tests in the testsuite with this commit:
==== Log /tmp/omc-rtest-adrpo/biochem/log-BiochemModels.mos
==== Log /tmp/omc-rtest-adrpo/bootstrapping/log-SimCodeTest.mos
==== Log /tmp/omc-rtest-adrpo/interactive/log-Rename.mos
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mofiles/
==== Log /tmp/omc-rtest-adrpo/mosfiles-nosim/log-FinalTests.mos
==== Log /tmp/omc-rtest-adrpo/mosfiles/log-BuiltinMath.mos
==== Log /tmp/omc-rtest-adrpo/mosfiles/log-CheckEvents.mos
==== Log /tmp/omc-rtest-adrpo/parser/log-CheckSourcesForTabs.mos
==== Log /tmp/omc-rtest-adrpo/parser/log-ParseCompilerSources.mos
==== Log /tmp/omc-rtest-adrpo/redeclare/
- i will fix them in the next days (they are not that problematic)
- quite big commit, some fixes for Media 255/26 instantiate/check now.
i'm still loosing redeclares in some cases (mostly weird restrictions
like connectors), i'll do some more chasing for redeclare mods in Inst
in the next days.
- running the Media testsuite with nogen and noevalfunc (for now as even so takse ~10 minutes)
will fix function problems later.
- plenty of other new stuff:
+ some partial Graph implementation,,,,,,
+ general stuff,,, (moved to Util), more stuff in
+ global data structure which could be used anywhere (Global/
+ collecting all files in (i had also send them to templates, but i will not
push those changes as the templates get more complicated).
- added Values.EMPTY and DAE.EMPTY to be returned when we do not have bindings.
- many more things i forgot about.

228 lines of code changed in 1 file:

  • Compiler/Global: (new 228)
Generated by StatSVN 0.7.0