[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [ANN] Lua 5.3.0 (beta) now available
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 23 Oct 2014 15:09:19 -0200
> Not having followed discussions and development of 5.3, but I find it
> counterintuitive that %f has to be used in format() where previously %d
> and %x would perform the needed conversion of numbers of any type to an
> integer. Similarly, luaL_checkinteger() bails out if a numerical value
> is not an integer. Is there a rationale to and can someone provide
> links to previous discussions of this behavior? Thanks.
>
> My first impression was that both cases needlessly break compatibility,
> in both cases the caller is fully aware of the possibility to lose
> information, and the convenience of the auxlib function is forfeit. For
> me as a caller it would be obvious to distinguish between checking for
> a type and to receiving an integer (or representation of such) as the
> closest approximation of a number.
Previous versions of Lua never specified *how* numbers were rounded in
the C API. So, if you called something like "string.sub(s,3.6)", you
could receive a string with either 3 or 4 bytes. This does not sound
like a behavior worth keeping.
-- Roberto