Subject: Re: [boost] [msm] deferral stack overfolw
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2011-12-08 14:40:43
>> Hi Richard,
>> ah, how could I miss this? There is a mistake in your LogDefer functor:
>> typedef int deferring_action;
> Ah thanks for finding it ... I will try this out for you.
> In a mean time I have implemented our own event queue.
> But I will give a try to the original one ... it would be better to
> use that anyhow ...
> For the VC problem I had to time to play with it at all :( I found a
> one line change in the boost back end to solve my problem ..... I had
> to do this I was under high time pressure .....
> even you disagree :(.
> line : if (!handled && !is_contained() &&
> changed to : if ( ( handled == HANDLED_FALSE || handled ==
> HANDLED_GUARD_REJECT) && !is_contained() &&
Cutting corners under time pressure is ok I think. In the meantime we'll see
how to make VC9 happy.
And if not, I can still make a compile-time flag to get this behaviour so
that you can keep working.
> However I will prepare you a test project with the complexity/size
> similar to our current .... future size / complexity just for
> experiment and also give you a strip down version of our way of
> splitting the state machines maybe you can review it and give some
> ideas how to do thinks better :).
> But it takes some time to prepare this example and I have to check
> where are the limits of sharing our code base with open source
> community .... I personally would be happy to give all as it is but
> the company has different view about it I believe.
I think if you anonymize your state machine, it should be ok. If you wish,
you can also send it to me privately.
> I find MSM great I think it is easy to understand very expressive but
> the biggest downsize is the scalability in order to use it for our
> purpose, to write a complex communication protocol stack with a lot of
> events and state machines connected to each other.
Writing too big machines is like a big function, somehow, you get to pay for
it. I write protocols with it by adding a fsm level on top of another etc.
etc. By layering much, I manage to keep my fsms relatively small.
But yes, MSM is demanding on compilers and VC9 is not the best out there.
>MSM is not usable
> as it is .... ( sorry to saying that It would hurt me if MSM would be
> my code ) we had to put in some effort to find an semi decent way of
> get around this problem ... So I think there is some work needs to be
> done in this area I'm happy to help as much as I can with it ... eg
> try to prepare an example project for experimenting ....
It also remains to be seen how much VC9 has to do with the story. I wouldn't
be surprised to seethat the compiler is the one to blame.
> So thanks for the help ... I will come back to you when I have
> something to play with but it will take some time ... hopefully it can
> be a christmas persent :).
I'd prefer chocolates but ok, I'll do with it ;-)
> Thans for all the great support ...