lua-users home
lua-l archive

[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 <>:
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:

(*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.