lua-users home
lua-l archive

Re: Issue with bit shift in Lua 5.4 Work releases

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


On 06/07/2018 17:58, Dirk Laurie wrote:
2018年07月06日 17:55 GMT+02:00 Roberto Ierusalimschy <roberto@inf.puc-rio.br>:
The following three lines runs without errors in Lua 5.3.
local foo = 13.37
local bar = foo // 1
type( bar << 8 )
The shift on the third line fails with Lua 5.4 with the following error:
"number (local 'bar') has no integer representation".
It still fails with the error "attempt to perform bitwise operation on a nil
value (local 'bar')" when 'bar' is explicit converted to an integer.
local foo = 13.37
local bar = math.tointeger( foo // 1 )
type( bar << 8 )
Is this a bug or did I use the wrong method?
It is a (stupid) bug, but not in bit shift:
foo = 13.37
print(foo // 1) --> 13.7
When is a bug not stupid?
It somewhat depends on your reaction when you find it.
Stupid bug:
"doh!!!" (*palm-face*)	
Not-so-stupid bug:
"aha!!!"
(*mumbling: "I found you! You little dirty <add your favourite expletive here>"*) Of course this is somewhat relative: it depends on the "doh"-threshold of the specific programmer with the specific language.
:-)
There are no bug-free programs.
Any program has at least one unavoidable big bug: its end-user.
:-D

AltStyle によって変換されたページ (->オリジナル) /