tech-kern archive

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

Re: [patch] changing lua_Number to int64_t



On Sun, Nov 17, 2013 at 10:10 AM, Justin Cormack
<justin%specialbusservice.com@localhost> wrote:
> On Sun, Nov 17, 2013 at 11:30 AM, Alexander Nasonov 
> <alnsn%yandex.ru@localhost> wrote:
>> Mouse wrote:
>>> Also, using an exact-width type assumes that the hardware/compiler in
>>> question _has_ such a type.
>>>
>>> It's possible that lua, NetBSD, or the combination of the two is
>>> willing to write off portability to machines where one or both of those
>>> potential portability issues becomes actual.  But that seems to be
>>> asking for trouble to me; history is full of "but nobody will ever want
>>> to port this to one of _those_" that come back to bite people.
>>
>> I was perfectly fine with long long because it's long enough to
>> represent all integers in range [-2^53-1, 2^53-1].
>>
>> As Marc pointed out, Lua has a single numeric type which is double
>> by default. Many Lua libraries don't need FP and they use a subset of
>> exactly representable integers (not all of them do range checks, though).
>> Extending the range when porting from userspace to kernel will decrease
>> "the pain factor" of porting.
>
> The range [-2^53-1, 2^53-1] is not sufficient - in kernel you need to
> be able to deal with the longest type the kernel uses, it is
> incredibly annoying to have to use userdata to deal with off_t or
> gratuitously hope that losing some bits is ok (as happens with Lua in
> userspace now). As the widest type in the kernel is int64_t thats
> what Lua should use. (The issue of uint64_t is left as an exercise for
> the Lua programmer). When/if the kernel uses something longer then Lua
> can change, but using intmax_t is not useful as the kernel is explicit
> about sizes.

Indeed.

Regards,
-- 
Lourival Vieira Neto


Home | Main Index | Thread Index | Old Index