Boost logo

Boost :

Subject: Re: [boost] [msm] Review
From: David Bergman (David.Bergman_at_[hidden])
Date: 2009-12-06 12:28:55


On Dec 6, 2009, at 4:51 AM, Andreas Huber wrote:

>>> So I guess for the use cases you encountered, I doesn't make much difference whether you'd use MSM or Statechart, right?
>>
>> Exactly. I want to find cases where it *does* matter, so I can justify
>> another SFM library in Boost. I have tried the last few days to create
>> toy-but-real-time apps with high load to see what gives.
>
> Ok then, but you do realize that your original statement ...
>
>> MSM and Statechart do not merely overlap, the do the exact same
>> thing: letting the developer specify and execute a state machine.
>
> ... does come across as pretty universal?

First of all, sorry about the "SFM"...

Yes. If either one of you had had a radically different approach to the representation of states, for instance as enums, or had used Boost.Signal for the events and/or actions, or one of the libraries did not support nested machines at all, then, yes, I could retract such a universal (is that a bad thing? ;-)) comment.

> I mean there's no headroom here like "For my use cases ..." or "To me ...". In absence of such qualifiers the reader must assume that you think that from a purely functional POV the two libraries are exchangeable for *all* possible uses. Add your remarks regarding library removal and the reader must IMO come to the conclusion that you think *all* users will be better served with MSM once compilers catch up. For sure, MSM *does* look terrific and may well satisfy a good majority of FSM implementers but there are certain use cases (e.g. multi-TU FSMs) that MSM will probably never support. OTOH, Statechart will e.g. never be able to guarantee O(1) dispatch.
>
> So yes, there *is* overlap but it is certainly far from total, right?

Not far from, no. If you bring up one feature, multi-TU FSM, I would not call that "far". The overlap is 95%. No?

Just look at the feature list of your own library, Statechart, as described in the Overview section. Which one of those features does *not* apply to MSM?

/David


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk