W3C home > Mailing lists > Public > www-voice@w3.org > January to March 2013

Re: Reentering child of parallel state leaves all childs?

From: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date: Sun, 10 Feb 2013 16:15:07 +0000
To: Jim Barnett <Jim.Barnett@genesyslab.com>
CC: "www-voice@w3.org (www-voice@w3.org)" <www-voice@w3.org>
Message-ID: <6A775895400B8040A331C2963964820C19533C8E@exchange01.tk.informatik.tu-darmstadt.de>
Thank you, my findLCCA was not filtering for compound states - it's working now.
  Stefan

On Feb 9, 2013, at 11:15 PM, Jim Barnett <Jim.Barnett@genesyslab.com<mailto:Jim.Barnett@genesyslab.com>> wrote:

The LCCA of a is actually the <scxml> node.  A transition from a to a Is supposed to take you out of b and p, and then cause re-entry.  Any transition that exits a direct child of the <parallel> node causes the <parallel> node to be exited (and hence all its active descendants as well.)

There may be a bug in addStatesToEnter.  If you look in enterStates, when it adds the ancestors of the target state, it checks to see if any of them is a parallel state and adds its other default siblings if they arenít already on the list to be entered.  addStatesToEnter doesnít do this check.  Iíll have to look at this more closely.

= Jim

From: Stefan Radomski [mailto:radomski@tk.informatik.tu-darmstadt.de<http://tk.informatik.tu-darmstadt.de>]
Sent: Saturday, February 09, 2013 4:46 PM
To: www-voice@w3.org<mailto:www-voice@w3.org> (www-voice@w3.org<mailto:www-voice@w3.org>)
Subject: Reentering child of parallel state leaves all childs?

Hi, it's me again.

I am currently trying to get Jacob's test-cases to run and ran into something peculiar with the following SCXML document:

<scxml
xmlns="http://www.w3.org/2005/07/scxml"
version="1.0"
profile="ecmascript">

<parallel id="p">
<state id="a">
    <transition target="a" event="t"/>
</state>
<state id="b"/>
</parallel>

</scxml>

Its initial stable configuration is {p, a, b}. When event "t" arrives, we are entering exitStates with the transition "a -> a" enabled. Considering the pseudocode in the draft, we will determine the LCCA of {a, a}, which is "p" and subsequently add all of its descendants, which are part of the configuration to statesToExit, which includes "b". Thus exiting "b", even when we are immediately reentering "a" - is this desired?

Worse still, if I read the pseudo-code correctly, we will only reenter "a", not "b" in enterStates, leaving the interpreter in an invalid configuration. What did I miss here?

Regards
Stefan
Received on Sunday, 10 February 2013 16:15:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 10 February 2013 16:15:40 GMT