Re: Bug with deep and shallow history in pseudo-code

I should also mention that you need to be careful with SCION's test set.

He has a set of documented differences in his state interpreter from the
SCXML state interpreter.  Differences that I find very compelling,
personally, but it is all of our best interest to ensure the standard gets
tighter rather than ad hoc implement bits of it that we feel are well done.

Chris


On Sat, Feb 9, 2013 at 12:04 PM, chris nuernberger <cnuernber@gmail.com>wrote:

> That being said, if you change t6 transition to target hp, what happens?
>
> Chris
>
>
> On Sat, Feb 9, 2013 at 11:59 AM, chris nuernberger <cnuernber@gmail.com>wrote:
>
>> I think that in this case children doesn't mean history nodes.  I think
>> you only enter history nodes if they are explicitly targetted by a
>> transition but not during the recursive enter states algorithm.
>>
>> I believe there are other problems with enter states but I don't think
>> this is one of them.
>>
>> Chris
>>
>>
>> On Sat, Feb 9, 2013 at 11:04 AM, Stefan Radomski <
>> radomski@tk.informatik.tu-darmstadt.de> wrote:
>>
>>> Hi again,
>>>
>>> the SCXML document at [1] will put my interpreter in an illegal state
>>> configuration. I am sure that there is a more concise example that would
>>> accomplish the same, but it is part of Jacob's test framework.
>>>
>>> Initial:
>>>   Enabled transitions: {root -> a}
>>>   Stable initial configuration: {a}
>>>
>>> t1 arrives:
>>>   Enabled transitions: {a -> p}
>>>   Stable configuration: {p, b, b1, b1.1, c, c1, c1.1}
>>>
>>> t2 arrives:
>>>   Enabled transitions: {b1.1 -> b1.2, c1.1 -> c1.2}
>>>   Stable configuration: {p, b, b1, c, c1, b1.2, c1.2}
>>>
>>> t3 arrives:
>>>   Enabled transitions: {b1.2 -> b2, c1.2 -> c2}
>>>   Stable configuration: {p, b, c, b2, b2.1, c2, c2.1}
>>>
>>> t4 arrives:
>>>   Enabled transitions: {b2.1 -> b2.2, c2.1 -> c2.2}
>>>   Stable configuration: {p, b, c, b2, c2, b2.2, c2.2}
>>>
>>> When t5 arrives, we exit everything and enter "a" again, thus we have to
>>> save three histories:
>>>   hp: {b2.2, c2.2}
>>>   hb: {b2.2}
>>>   hc: {c2}
>>>   Stable configuration: {a}
>>>
>>> t6 will transition into "p" again and bring the interpreter into an
>>> illegal configuration:
>>>   addStatesToEnter will realize that "p" is parallel an attempt to enter
>>> all its children
>>>     Entering hp will enter {b2.2, c2.2} as its history
>>>     As "p" is parallel, we will enter "c" as well, as it is compound, we
>>> will enter its initial shallow history "hc", adding "c2"
>>>       "c2" is compound and its initial state "c2.1" will be entered.
>>>
>>> -> we now have "c2.2" and "c2.1" in the configuration which is illegal.
>>>
>>> Who is supposed to prevent "c2" from entering its initial state? We
>>> already entered "c2.2" per deep history from "hp" and now the shallow
>>> history from "hc" wants to enter "c2" and ultimately its initial state
>>> "c2.1" leading to an invalid configuration.
>>>
>>> Best regards
>>> Stefan
>>>
>>> [1]
>>> https://github.com/jbeard4/scxml-test-framework/blob/master/test/history/history4.scxml
>>>
>>>
>>>
>>>
>>
>>
>> --
>> A foolish consistency is the hobgoblin of little minds - Emerson
>>
>
>
>
> --
> A foolish consistency is the hobgoblin of little minds - Emerson
>



-- 
A foolish consistency is the hobgoblin of little minds - Emerson

Received on Saturday, 9 February 2013 20:01:09 UTC