There is no particular mod for the ldl-crash. It was a temporary AOM test setup to try out some ideas for Stan. During the try out, we discovered that moving the button declarations to controlpanel.ldl was a much better idea.
Thanks for testing the "assignable" arrays. When the following statements
do not fire if (4), but do fire if (5), I can only conclude that there were no assignable arrays. Using the assumption that it was all based on using uninitialised stack locations that happened to contain an old value, the following is more plausable:
(1) Does nothing at all - the left hand side can not be assigned to, even when the right hand side may return a (random) result.
(2) Assigns an uninitialised value to int3.
(3) Assigns the same (still uninitialised) value to int4, because the stack has the same layout for both assignments, and local variable retval in SlicStack::Eval happens to be at the same (stack) location again.
(4) Compares 2 different uninitialised values - because there is a stack layout difference (to hold the temporary result) when evaluating the 2 sides of the equality. Once in a while, it may trigger anyway, when the 2 values are identical - pure chance.
(5) Will always trigger, because of (2) and (3).
Thanks for testing the "assignable" arrays. When the following statements
Code:
(1) player[5] = player[3]; (2) int3 = player[5]; (3) int4 = player[3]; ... (4) if(player[3] == player[5]){ ... } ... (5) if(int3 == int4){ ... }
(1) Does nothing at all - the left hand side can not be assigned to, even when the right hand side may return a (random) result.
(2) Assigns an uninitialised value to int3.
(3) Assigns the same (still uninitialised) value to int4, because the stack has the same layout for both assignments, and local variable retval in SlicStack::Eval happens to be at the same (stack) location again.
(4) Compares 2 different uninitialised values - because there is a stack layout difference (to hold the temporary result) when evaluating the 2 sides of the equality. Once in a while, it may trigger anyway, when the 2 values are identical - pure chance.
(5) Will always trigger, because of (2) and (3).
Comment