On Tue, Feb 2, 2016 at 9:55 PM, Klaim - Joël Lamotte [via Boost] < ml-node+s2283326n4683151h0@n4.nabble.com> wrote:
On 2 February 2016 at 22:29, Krzysztof Jusiak <[hidden email] http:///user/SendEmail.jtp?type=node&node=4683151&i=0> wrote:
On Tue, Feb 2, 2016 at 7:09 PM, Klaim - Joël Lamotte <[hidden email] http:///user/SendEmail.jtp?type=node&node=4683151&i=1> wrote:
On 2 February 2016 at 19:41, Vicente J. Botet Escriba < [hidden email] http:///user/SendEmail.jtp?type=node&node=4683151&i=2> wrote:
I see that MSM eUML defines the transitions like
target == source + event [guard] / action
but MSM-lite reverse the source and target
src_state == dst_state + event[ guard ] / action This is confusing.
Why have you chosen this syntax? Vicente
Same question here. I misread the examples at first because the meaning is reversed. It feels unnatural that the state you are going to is part of the expression stating the conditions to get there.
The MSM syntax is clearer to me at least.
I see your point. It seems like I will have to change the default behaviour then as it's clearer for most devs. Guess, I'm the ackward one here. Please, check the euML emulation example ->
as DSL behaviour might be changed if it comes to states order by defining BOOST_MSM_DSL_DST_STATE_FIRST.
If it comes to the transition table DSL. I was concidering a lot of options. For example MSM3(eUML2) is using src + event [guard] / action -> dst which looks great, however, having a dst state at the end is not really practical, especially after a lot of noice introduced by guard and actions (for example in place lambda expressions).
Right now, I'm thinking of introducing DSL which would look like that.
make_transition_table( "idle* -> state1"_t + event [ guard ] / action , "state1 -> X"_t [ guard ] / action );
Nevertheless, I'm not sure whether such approach would be seen
http://boost-experimental.github.io/msm-lite/examples/index.html#euml-emulat... positively
because following MSM approach it should be more like that.
make_transition_table( "state1 <- idle*"_t + event [ guard ] / action , "X <- state1"_t [ guard ] / action );
which looks confusing for me. Any thought on this?
I was going to suggest <= and => but I don't know the potential problems.
It's a compile time string parsing so there are no issues with characters here, just the design. So your suggestion would be: // *=initial "state1 <= idle*" or "idle* => state1" is that correct? '->' was chosen, simply because it might be found in the UML2 specification, but there are no limitations here. Whatever works the best. Thanks for the suggestion, Kris
Thanks for your feedback, Cheers, Kris
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://boost.2283326.n4.nabble.com/MSM-Is-there-any-interest-in-C-14-Boost-M... To unsubscribe from [MSM] Is there any interest in C++14 Boost.MSM-eUML like library which compiles up to 60x quicker whilst being a slightly faster too?, click here http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4683016&code=a3J6eXN6dG9mQGp1c2lhay5uZXR8NDY4MzAxNnwtMTY0MTkzNTIwMA== . NAML http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
-- View this message in context: http://boost.2283326.n4.nabble.com/MSM-Is-there-any-interest-in-C-14-Boost-M... Sent from the Boost - Dev mailing list archive at Nabble.com.