Closed arntanguy closed 2 years ago
Could you also introduce a test similar to the one you ran to identify the issue?
Yes, I'll do that as soon as possible :)
Not sure why the tests are failing on windows, but I added the continuity check for the Meta state.
Not sure why the tests are failing on windows, but I added the continuity check for the Meta state.
I think that's a path issue in the multi-configuration build. This should be fixed. If so I will merge when the CI lands :)
I finally figured out the CI issue.
Some time ago, the Fortran compiler on Windows started being picked up from chocolatey’s mingw installation rather than the « raw » mingw installation. It went unseen for a while because the required dll was still in the path but since a few days/weeks they are not anymore. I have added them in our CI script (see https://github.com/jrl-umi3218/github-actions/commit/5f3ce258dce1581ea3ac5fa92cce4e3038c75fc9) and everything is well again.
Merging this PR right away. Thanks @arntanguy
Working with @wyqsnddd on a complex demo involving some (very) fast trajectories, I noticed a discontinuity issue when using the
Meta
state. Namely the creation of the Meta state's first state in the transition map is delayed by one iteration.That is because the state's creation (and thus the call to
start()
) is only done inExecutor::run()
which is only called fromMeta::run()
.Here is a simple example, transitioning from a
Meta
state to another identicalMeta
state. ThisMeta
state uses a state that adds a value to the logger in thestart()
function of the state. This value starts at0
and is then incremented for the next20
iterations before transitioning to the next state doing the same thing (TestInitial
->TestInitial2
).Before: As you can see, before the start of the first state (
TestInitial
) there is one void iteration (see the blank5ms
break between the twoMeta
states). Note that there seems to also be a bug ofmc_log_ui
here as the first value of the state should not appear instead of being displayed as0
(I checked in the log and it is indeed a null value and not a zero here)After: No more missed iteration :