You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The shared libs that exist right now are:
- `libomcmemory`: A lib for garbage collection and memory_pool related
functionality. This is used by both OMC itself and simulation
executables.
There are two reasons why this is a separate shared lib.
It is SEPARATE lib because it is has a clear purpose and its functionality
is used all over the OpenModelica code. So it is nice to have a small
library that can be linked everywhere.
It is made a SHARED lib because we really do not want to link to static
GC lib functionality from two different DLLs as this will create two
instances of the garbage collector. This will not work in anything
multi-threaded if you are even a little unlucky since Boehm GC depends
a lot on global variables.
We really want to have only one instance of Boehm GC at all times
if we can achieve that.
The best debugging strategy is just initial paranoia and refusal to give
any room for complications :)
- `libOpenModelicaRuntime`: A lib for common runtime functionality
(e.g the functionality in c/util or c/meta goes here). This (like
`libomcmemory`) is used by both OMC itself and simulation executables.
- `libSimulationRuntimeC`: Contains everything solver related including
linearization and data reconciliation support. This the library needed
for normal simulation executables generated by OMC.
**Depends on**: `libOpenModelicaRuntimeC` and `libomcmemory`.
- `libOpenModelicaOptimization`: A lib for optimization enabled simulation.
will incorporate our optimization code as well as `ipopt` and `coinmumps.`
**Depends on**: libSimulationRuntimeC.
0 commit comments