Menu

QM 3.0.0-beta released

QM 3 brings new type of code generation for the new state machine implementation added in QP5. This new type of state machine implementation in QP5 is based on the new QMsm class, which takes advantage of the QM tool as an advanced "state machine compiler". QM can perform optimizations that were not possible with the C pre-processor alone. Specifically, the QM can easily determine the LCA (Least-Common-Ancestor) state for every transition and it can generate the complete transition-sequences (sequences of exit/entry/initial actions) at code-generation time. The resulting code is still highly human-readable, but it is no longer human-maintainable. The lab tests indicate that the new "housekeeping" code for executing hierarchical state machines is about twice as fast as the code based on the QHsm class. Additionally, the new code requires less run-time support (smaller event processor) and uses 70% less of stack space in the call to the QMsm::dispatch() operation than QHsm::dispatch().

This release also fixes several bugs related to Cut-and-Paste feature and saving the model with the shortcut Ctrl-S.

NOTE: QM 3.0.0 remains backwards compatible with models generated by the earlier QM versions (2.x) for QP 4.x. In other words, you don't necessarily need to upgrade to QP5 to use QM 3.x, but you won't be able to use QMsm base classes, as they are not provided in QP 4.x.

Posted by Quantum Leaps 2013-12-06

Log in to post a comment.