Version history
Boost 1.90
-
feat/backmp11: New back-end backmp11, requires C++ 17
-
fix/back: boost::any stopped working as Kleene event
-
feat: The documentation has been refurbished, it is now built with Antora
Boost 1.85
-
Backend update (back11). Requires C++ 11. The documentation now uses it as default.
-
New front-end (PlantUML). Requires C++ 20
-
Div. bugfixes
Boost 1.57
-
Fixed BOOST_MSM_EUML_EVENT_WITH_ATTRIBUTES (broken in 1.56).
-
Fixed execute_queued_events, added execute_single_queued_event
-
Fixed warnings for unused variables
Boost 1.56
-
Bugfix: no_transition in case of an exception.
-
Bugfix: Trac 9280
-
Bugfix: incomplete namespace names in eUML
Boost 1.55
-
New feature: interrupt states now support a sequence of events to end the interruption
-
Bugfix: Trac 8686.
Boost 1.54
-
Bugfix: Exit points broken for the favor_compile_time policy.
-
Bugfix: copy breaks exit points of subsubmachines.
-
Bugfix: Trac 8046.
From V2.23 to V2.24 (Boost 1.51)
-
Support for
boost::anyorkleeneas an acceptable event. -
Bugfix: compiler error with fsm internal table and
none(compound) event. -
Bugfix:
euml::defer_leading to stack overflow.
From V2.22 to V2.23 (Boost 1.50)
-
eUML: better syntax for front-ends defined with eUML as transititon table only. Caution: Breaking Change! -
Bugfix: graph building was only working if
initial_statedefined as a sequence -
Bugfix: flags defined for a Terminate or Interrupt state do not break the blocking function of these states any more.
-
Bugfix: multiple deferred events from several regions were not working in every case.
-
Bugfix: visitor was passed by value to submachines.
-
Bugfix:
no_transitionwas not called for submachines who send an event to themselves. -
Fixed warnings with gcc
From V2.21 to V2.22 (Boost 1.48)
-
eUML: added easier event reprocessing:
process(event_)andreprocess() -
Rewrite of internal transition tables. There were a few bugs (failing recursivity in internal transition tables of sub-sub machines) and a missing feature (unused internal transition table of the main state machine).
-
Bugfixes
-
Reverted favor_compile_time policy to Boost 1.46 state
-
noneevent now is convertible from any other event -
eUML and pseudo exit states
-
Fixed not working Flag_AND
-
Fixed rare bugs causing multiple processing of the same event in a submachine whose transition table contains this event and a base event of it.
-
gcc warnings about unused variables
-
-
Breaking change: the new internal transition table feature causes a minor breaking change. In a submachine, the "Fsm" template parameter for guards / actions of an internal table declared using
internal_transition_tablenow is the submachine, not the higher-level state machine. Internal transitions declared using internal rows in the higher-level state machine keep their behavior (the "Fsm" parameter is the higher-level state machine). To sum up, the internal transition "Fsm" parameter is the closest state machine containing this transition.
From V2.20 to V2.21 (Boost 1.47)
-
Added a
stop()method in the back-end. -
Added partial support for Boost.Phoenix functors in eUML -
Added the possibility to choose when
state switchingoccurs. -
Bugfixes
-
Trac 5117, 5253, 5533, 5573
-
gcc warnings about unused variables
-
better implemenation of favor_compile_time back-end policy
-
bug with eUML and state construction
-
incorrect eUML event and state macros
-
incorrect event type passed to a direct entry state’s on_entry action
-
more examples
-
From V2.12 to V2.20 (Boost 1.46)
-
Compile-time state machine analysis using mpl_graph:
-
checking of region orthogonality. -
search for unreachable states. -
automatic region index search for pseudo entry or explicit entry states.
-
-
Boost.Parameter interface definitionfor msm::back::state_machine<> template arguments. -
Possibility to provide a containerfor the event and deferred event queues. A policy implementation based on a more efficient Boost.CircularBuffer is provided. -
msm::back::state_machine<>::is_flag_active method made const.
-
added possibility to
enqueue eventsfor delayed processing. -
Bugfixes
-
Trac 4926
-
stack overflow using the Defer functor
-
anonymous transition of a submachine not called for the initial state
-
From V2.10 to V2.12 (Boost 1.45)
-
Support for
serialization -
Possibility to use normal functors(from functor front-end) in eUML. -
New constructorswhere substates / submachines can be taken as arguments. This allows passing arguments to the constructor of a submachine. -
Bugfixes
From V2.0 to V2.12 (Boost 1.44)
-
New documentation
-
Internal transitions. Either as part of the transition table or using a state’s internal transition table
-
increased dispatch and copy speed
-
new row typesfor the basic front-end -
new eUML syntax, better attribute support, macros to ease developer’s life. Even VC8 seems to like it better.
-
New policy for reduced compile-time at the cost of dispatch speed
-
Support for base events
-
possibility to choose the initial event