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

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

Received on Saturday, 9 February 2013 19:04:34 UTC