[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua for Time Travel (!)
- From: "Joseph Manning" <manning@...>
- Date: Wed, 25 Jan 2017 20:57:58 -0000
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
------------------------------------------------------------------------