• Julien Muchembled's avatar
    Simulation: splitted expand, performance improvements and bugfixes · 5c09e2e2
    Julien Muchembled authored
    All interactions and activity tags are reviewed to fix bugs like duplicated
    root applied rules, and also reduces the amount of duplicated/useless work, e.g:
    - Simulation trees are not expanded anymore when simulated objects are modified.
    - 'expand' activities are merged (i.e. dropped) with any other 'expand' activity
      for an ancestor.
    New implementation exposes new API that hides much complexity to the developper
    about activity dependencies.
    
    By default, expand() now automatically defers any work if the current
    transaction takes too long time. This method also gains a parameter to
    explicitely choose when to expand, which is often important in unit tests or
    solvers. In particular, when postponing work, it takes care of setting proper
    activity dependencies.
    - If you have any code requiring to expand everything immediately, you'll have
      to replace 'expand()' by 'expand(expand_policy="immediate")'.
    - On the contrary, you should replace any '...
    5c09e2e2
ExpandPolicy.py 5.18 KB