$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andreas Huber (ahd6974-spamgroupstrap_at_[hidden])
Date: 2005-03-13 07:50:30
David Abrahams wrote:
> All I'm trying to say is that Andreas hasn't given me the impression
> that he feels high performance is a _crucial_ area for this library to
> address.
You are right inasmuch as that performance is only 2nd on my priority 
list. First comes satisfying the requirements and ease-of-use. However, 
it *is* important for me to deliver something that can be described as 
efficient, given the requirements.
> I come at FSMs from the "pure abstraction" point-of-view; the UML
> statecharts that this library is aimed at can have all kinds of warts
> and complications (some of which are very useful) on them that aren't
> part of the basic FSM abstraction.  Part of what makes FSMs fast may
> be the simplicity of the model.  It seems as though being able to
> model UML statecharts is a primary design goal for Andreas, and that
Yes.
> he doesn't consider providing some useful subset of that functionality
> in order to get high performance an option.  I could be
> misunderstanding; someone please correct me if so.
I did consider that and tried to explain why I failed. I'm afraid that I 
haven't been very successful in convincing people that the main 
obstacles aren't easy to overcome.
> It seems to me that if "orthogonal states" is the only feature in
> conflict with getting the highest dispatching performance, it ought to
> be possible to design a library whose performance only degrades if you
> use that feature.
I suppose you are inferring that from what I said in 
http://tinyurl.com/7ybeq?
I see that this can easily be misunderstood. Fact is that the current 
interface *theoretically* allows for constant time dispatch, as long as 
orthogonal states are not used. If they are used you get O(n) dispatch 
where n is the number of currently active orthogonal regions. However, 
there are a few practical problems for which I'll probably need help to 
overcome them.
> But this library seems to have a design that's
> fundamentally incompatible with an approach like that.  To get there,
> both the interface and the implementation would have to be redesigned
> IIUC.  So that sums up why I think evolving toward support for
> lightweight FSMs is not likely.
See above, a few optimizations are theoretically possible but it is 
clear that the proposed FSM library will probably never earn itself the 
predicate lightweight.
Regards,
-- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.