When a constant array is given a an input parameter to a template, then testing the value of this array is unreliable, i.e. a boolean array can be matched against neither true nor false. Furthermore, if a variable is added to the system the behavior changes, even if the variable is not used in any component. See the attached system for detail: Here P takes a constant array as an input parameter. A process is created with P({true,false}). The initial state of P is A, here there is a single transition to the state B. In B we have two transition back to A depending on whether the value of the first entry of the array is true or false. However, the simulator claims the system is deadlocked. When adding a global variable i and not using it in P, the behavior changes. Now, a transition is available in B, however, it is the wrong one.
Created attachment 23 [details] The system that causes problems
Created attachment 24 [details] The system that causes problems
A fix for 3.4 has been checked into CVS. I still need to check the development branch.
I checked the development branch. The bug is not present there, but the test case triggered another problem. A fix for that problem has also been checked into CVS now.