lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> On Jan 14, 2016, at 2:12 PM, Sean Conner <sean@conman.org> wrote:
> 
> It was thus said that the Great Dirk Laurie once stated:
>> 2016-01-14 15:59 GMT+02:00 Roberto Ierusalimschy <roberto@inf.puc-rio.br>:
>>>> 
>>>>>> On Jan 13, 2016, at 3:11 PM, David Given <dg@cowlark.com> wrote:
>>>>>> 
>>>>>> On 13/01/16 05:00, Dirk Laurie wrote:
>>>>>> [...]
>>>>>> Neither. It is in fact correct, provided that you understand
>>>>>> twos complement notation.
>>>>> 
>>>>> If the value won't fit in an int64, shouldn't it be parsed as a double?
>>>> 
>>>> I don't think that would work since a double can only precisely represent integers up to 2^53.
>>> 
>>> Maybe it could parse as "Inf"?
>> 
>> What about parsing it as a string? Lossless. Will cause an error
>> if compared to a number. Error in arithmetic depends on whether
>> Lua was compiled with coercion on or off.
> 
>  There are a number of ways to handle it (convert to double, current
> behavior, return nil, throw an error) and some ways are better in some
> contexts than others, so I don't think there's one good way to deal with
> this.

I'd be tempted to upgrade the number to some sort of arbitrary precision big number (a third number sub-type?) when it overflows an int or float.