[msm] Boost MPL vector limit size exceeded

Hi, while building a state machine that also includes submachines, we exceeded the possible max number of MPL vector entries (which is to 50 to my knowledge) for transition tables. Is there an easy way to solve that? How to increase the max possible number of MPL vector entries? Do I have to manually create vector60.hpp and vector60_c.hpp? Or is there something that generates all those files (also for larger vectors)? I also tried the define "BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS" with and without specifing the define "FUSION_MAX_VECTOR_SIZE". I tried the "favor_compile_time" vs "favor_runtime_speed" as well. In both cases the MPL vector size was to small. Does it actually mean, in case we use submachines, that MSM generates a flat transition table including everything in one MPL vector? Example: Main state machine consiting of 10 transitions + 1 submachine consiting of 5 transitions. Do we than have a transition table with around 15 entries that are stored somehow in an MPL vector of size 15? Thanks for your help, Michi

AMDG Michael.Herchel@rohde-schwarz.com wrote:
while building a state machine that also includes submachines, we exceeded the possible max number of MPL vector entries (which is to 50 to my knowledge) for transition tables. Is there an easy way to solve that?
How to increase the max possible number of MPL vector entries?
Do I have to manually create vector60.hpp and vector60_c.hpp? Or is there something that generates all those files (also for larger vectors)?
There are scripts in libs/mpl that generate these headers.
I also tried the define "BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS" with and without specifing the define "FUSION_MAX_VECTOR_SIZE".
I don't think FUSION_MAX_VECTOR_SIZE is the right macro. In Christ, Steven Watanabe

On 31.8.2010 21:41, Steven Watanabe wrote:
Michael.Herchel@rohde-schwarz.com wrote:
while building a state machine that also includes submachines, we exceeded the possible max number of MPL vector entries (which is to 50 to my knowledge) for transition tables. Is there an easy way to solve that?
You might find this old post helpful: http://lists.boost.org/Archives/boost/2004/08/70900.php
There are scripts in libs/mpl that generate these headers.
I tried these scripts a while back, also because of msm. I think that this procedure has not been tested for quite a while (years) and is now broken. I recall trying both gcc and msvc for preprocessing, and failed to produce a usable header with either. IIRC with gcc resulting header contained some gcc specific code and msvc choked on it. With msvc resulting header contained some windows API declarations. It is quite possible that I did something wrong - I found no documentation on how to use these scripts. Finally I gave up and used the kludge described in the post referenced above. Meanwhile I managed to trim down the number of transitions in my state machine and got back into vector50 bounds.

Michael Herchel wrote on Tuesday, August 31, 2010 12:23 PM
while building a state machine that also includes submachines, we exceeded the possible max number of MPL vector entries (which is to 50 to my knowledge) for transition tables. Is there an easy way to solve that?
How to increase the max possible number of MPL vector entries?
I also tried the define "BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS" with and without specifying the define "FUSION_MAX_VECTOR_SIZE".
I used the #defines BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS BOOST_MPL_LIMIT_VECTOR_SIZE=60 For my whole project and it worked for me. I wasn't using MSM, though. Erik
participants (4)
-
Juraj Ivančić
-
Michael.Herchel@rohde-schwarz.com
-
Nelson, Erik - 2
-
Steven Watanabe