Boost logo

Boost :

Subject: [boost] [MSM] Meta State Machine Library Accepted
From: David Abrahams (dave_at_[hidden])
Date: 2010-01-12 22:56:58

I'm pleased to announce the acceptance into Boost of

  the Meta State Machine library by Christophe Henry

The library got seven reviews, all thoughtful and in-depth, and was
unanimously accepted by all reviewers (conditionally, by three of
them). Reading through the reviews (not to mention all the other
commentary) was truly an overwhelming experience for me. The
thoroughness and depth of knowledge of the reviewers seemed to be a
cut well above what I'm used to seeing. That, along with the
unanimity of their votes, and Christophe's good-natured responsiveness
to questions and criticism during the review, make me very confident
in accepting MSM.

The reviews contain scads of feature requests, ideas, and other
valuable nuggets for Christophe to work on, so many that nobody other
than Christophe would find a full enumeration useful. So, sorry
Christophe, I'm going to leave it to you to troll for details in the
message archives. [I suggest taking a pass over all issues mentioned
and turning them into Trac tickets. Maybe you can get the review
authors to do that themselves for their own reviews.]

However, I can summarize some broad themes and issues of general
interest to Boosters (and a few things I feel strongly about but won't

* There was universal satisfaction with the performance of state
  machines generated with MSM.

* Though the tutorial was generally praised, every conditional
  acceptance was predicated on improving the documentation, in
  particular on providing a library reference. This really must be
  done. There were also several requests to break the tutorial
  into multiple pages.

* One reviewer had problems reading the tutorial because it relies so
  heavily on UML terms-of-art. I agree with him that people only
  familiar with FSMs ought to be able to read the tutorial as well.
  That may mean including documentation of some UML concepts in the
  library docs.

* eUML is really cool but it is apparently still in flux; for now it
  should probably be labelled as an experimental feature subject to

* SimpleStates do not support internal transitions. They should.

* The name is a bit misleading. Now would be the time to come up with
  something better if you're going to do it. StateChart is called
  StateChart in part because of my insistence that any library called
  Boost.FSM should be able to implement small, tight state machines
  appropriate for embedded systems use. Even though this library has
  those properties, I do not know whether the name would be
  appropriate, for several other reasons I won't list but that you,
  dear reader are probably thinking of right now.

Thank you to Christophe and all the reviewers for restoring my faith
in the Boost review process. And of course, congratulations to
Christophe. Now the fun is over and the hard work begins... :-)

Dave Abrahams           Meet me at BoostCon:
BoostPro Computing

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