|
Ralph Hempel wrote:
Glenn McAllister wrote:We've been having some odd problems with the exponent operator ('^') and<snip>Host: ppc 32-bitGiven the following script, it produces the correct results on both x86 and ppc:y = 2^3 print('y = ', y) x = 10 % y print('x = ', x) y = 2^3 print('y = ', y) The output on both platforms is: y = 8 x = 2 y = 8However, if we run the morally equivalent series of operations directly in the lua interpreter on the target ppc system, we get a different result:Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio > x = 2^3 > =x 8 > y = 10 % x > =y 2 > z = 2^3 > =z 4.0096609170284What happens if you run the "morally equivalent" script from a file?
Sorry, I had changed around some of the variable for the interactive session to show that its any assignment of 2^3 that triggers the issue, and not just resetting y.
If I change the script to: x = 2^3 print('x = ', x) y = 10 % x print('y = ', y) z = 2^3 print('z = ', z) I get the expected output: x = 8 y = 2 z = 8
And is the last step z = 2^3 or is it z = y^3
Its z = 2^3, which should have the value of 8. So I'm using constants, not the variable.
But interestingly, if I change the last assignment in the script from z = 2 ^ 3 to be z = y ^ 3 I now get the broken output: x = 8 y = 2 z = 4.0096609170284 Adding the following to the end of the script: a = 2 ^ 3 print ('a = ', a) Gives me the following: x = 8 y = 2 z = 4.0096609170284 a = 8 WTF? -- Glenn McAllister <glenn@somanetworks.com> +1 416 348 1594 SOMA Networks, Inc. http://www.somanetworks.com/ +1 416 977 1414