
On Wed, May 18, 2016 at 4:04 PM, Roberto Ierusalimschy <roberto@inf.pucrio.br> wrote:One problem with all proposed solutions is math.mininteger. The
lexer reads numbers without signal. (Several languages do the
same, e.g. C). This means that 9223372036854775808 is read as
(9223372036854775808) (a unary minus applied over a positive
constant). But 9223372036854775808 is not a valid integer, so it would
result in a float (or nil, or inf, or error). Whatever the choice, the
final value of 9223372036854775808 would not be an integer, despite
it being a valid integer.BTW, if user has redefined numeric operations,
how do you decide the way the following Lua code should be interpreted:x=9223372036854775808Which of the following two variants it is equivalent to:x=math.minintegerorx=getmetatable(0).__unm(9223372036854775808)