Boost logo

Boost :

Subject: [boost] [msm] scalability
From: Simon Gittins (Simon.Gittins_at_[hidden])
Date: 2009-11-23 23:14:13

Hi There

I've been looking at the msm library with respect to using it in an application with a reasonable number of transitions and states.

In order to simulate a larger application (without having to write more code), I've been using MsmSimple.cpp and EumlSimple.cpp and have been duplicating the rows in the transition table (the original code has 12 transitions, and I would copy and paste all the transitions so we end up with 24, or 36 etc transitions). In this way I hoped to be able to get a reasonable approximation of the compile time performance and limitations of the library. I'm testing with VS8.

I have a couple of comments/questions:

- I think it would be worthwhile talking a little more about compile time performance in the documentation. Also I'd like to see some suggestions of how to improve compile times (and how factors including the number of entries in a transition table affect the compile time).
- Is there provision to split a machine across multiple compilation units (I assume not)?
- You include instructions for how to increase the maximum size of an MPL vector, but this only works up to 50 entries. What do we need to do to increase this further?
- Euml looks really cool, but I'm getting an ICE when using it with 36 transitions in EumlSimple.cpp (12 and 24 work fine though).
- One of my favourite features of boost::statechart is state local storage. It looks like this would have to be done manually in msm?

The library is looking really powerful and expressive (not to mention fast!) for small state machines.

Simon Gittins

CONFIDENTIALITY NOTE: Please consider our environment before printing this email.This email and any attachments are confidential and may be subject to copyright, legal or some other professional privilege. They are intended solely for the attention and use of the named addressee(s). They may only be copied, distributed or disclosed with the consent of the copyright owner. If you have received this email by mistake or by breach of the confidentiality clause, please notify the sender immediately by return email and delete or destroy all copies of the email. Any confidentiality, privilege or copyright is not waived or lost because this email has been sent to you by mistake.

Boost list run by bdawes at, gregod at, cpdaniel at, john at