lua-users home
lua-l archive

Re: Lua for Time Travel (!)

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


On Wed, January 25, 2017 13:29, Gabríel Arthúr Pétursson wrote:
>> The os.clock function uses the 'clock' system call. On that particular
>> system you refer to, `clock_t`, the return value of clock, is defined
>> as a 32-bit integer.
>>
>> What you're seeing is that integer wrapping around due to overflow.
Hello again,
 If I may briefly follow up on my original post, here's a vastly
 simpler program that illustrates the issue:
----------------------------------------
local prevclock, thisclock = 0.0, 0.0
repeat
 prevclock = thisclock
 thisclock = os.clock( )
until thisclock < 0
print( prevclock, thisclock )
----------------------------------------
 On a 32-bit computer, we get:
$ lua clocktest.lua
2147.483647	-2147.483647
 So yes indeed, the value returned by 'os.clock( )' wraps around
 after 2^31-1 microseconds, nicely confirming Gabriel's explanation.
Joseph
PS: The Royal Society for the Prevention of Cruelty to Computers
 asks that you kindly refrain from running the above program
 on a 64-bit computer :-)
------------------------------------------------------------------------
Joseph Manning / Computer Science / UCC Cork Ireland / manning@cs.ucc.ie
------------------------------------------------------------------------

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