- Best to review per commit.
- This merge request addresses two issues:
- The first commits are all for #778 (closed). They extend the CIF simulator with environment event support.
- The last commits are all for #227 (closed), where the extensions of #778 (closed) are used to support SVG input mappings with updates (to input variables) in the CIF simulator.
- I decided to make a single merge request for both, since the first changes are rather abstract and difficult to judge/review without seeing them being used. That way, you can actually see why they are needed and designed this way.
- The changes for #778 (closed) were much more involved than expected. This was mostly due to adding environment events to the
RuntimeSpec.events
list, meaning that CIF event indices and runtime event indices got (even more) out of sync, requiring an extra abstraction layer inCifCompilerContext
, and many small changes to make the various part of the simulator consistent with that. - One thing that is now confusing, is that we have environment events and and environment event option, but they are different/orthogonal concepts. I'll address that in a next merge request, as this one is more than big enough already. But, this means that #778 (closed) is not entirely fixed yet, and this thus only addresses it.
The only end-user visible change are:
- The CIF simulator now supports SVG input mappings with updates (to input variables).
- The CIF simulator runtime error messages for variables getting assigned out of bounds values now use absolute variable names for clarity.
Addresses #227 (closed), #778 (closed)
Edited by Dennis Hendriks