Boost logo

Boost :

Subject: Re: [boost] [msm] Review
From: Adam Merz (adammerz_at_[hidden])
Date: 2009-12-07 06:15:56


So you say:

David Bergman writes:
>
> On Dec 6, 2009, at 3:37 AM, Christophe Henry wrote:
<snip>
> > > 5. MSM has eUML, which I have *not* used, to simplify the machine
> > > specification.
> >
> > I'd also count it as an important interface difference.
>
> I think it is, but have not tried it out (unfortunately.)
>

Then later follow that up with:

David Bergman writes:
>
> But, the interfaces are similar enough not to have the audience go "holy
> crap" when seeing the other after the first.
>
> But for "wildly different interfaces", I would except something along the
> lines of Regex vs Xpressive, not two tools using the same C++ constructs for
> virtually everything.
>

Huh..?

How is an EDSL (which I think constitutes a "wildly different interface" by most
people's standards) that results in faster execution [1] not *exactly* analogous
to the Regex vs. Xpressive comparison that you've brought up multiple times? Is
it because eUML is optional, given Msm's support for multiple frontends? I can
only point out that in addition to "static Xpressive" (the EDSL), Xpressive also
contains "dynamic Xpressive," whose interface is extremely similar to Regex,
probably intentionally so (indeed, I suspect this was lauded during Xpressive's
review, not criticized).

eUML makes up *~75%* of Msm's code and ~30% of Msm's documentation; metrically,
it's obviously an extremely significant part of Msm, and is probably what
warranted a major version increment between Msm versions 1.2 and 2.0. And yet
despite not having used it, you've been very vocal about the supposed lack of
differences between Msm's and StateChart's interfaces/representations. This
seems to me misguided at best...

I suspect that your contrast between Msm and StateChart has been tainted by your
use of Msm's "standard" frontend. I could be way off here, but my impression
from the Msm documentation is that the standard frontend exists mostly for
backwards compatibility with 1.x code and to support older compilers, and that
eUML is the recommended frontend for new FSMs on supported compilers. If so, I
would suggest reexamining Msm from a fresh perspective, using eUML; now, given
*that* interface and the very substantial implementation differences, would you
still argue that Msm and StateChart are not different enough to warrant the
inclusion of both into Boost?

[1]
http://svn.boost.org/svn/boost/sandbox/msm/libs/msm/doc/index.htm#_Performance


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