On Thu, 18 Feb 2010 01:21:27 -0800, Michael G Schwern
<schwern@pobox.com> wrote:
> H.Merijn Brand wrote:> > Fails on 64bit HP-UX since not too long. Note that HP-UX 11.11 and up> > are fine.> > > > ok 51 - year check, gmtime(-70368744177664)> > ok 52 - year check, localtime(-70368744177664)> > ok 53 - year check, gmtime(281474976710656)> > not ok 54 - year check, localtime(281474976710656)> > # Failed at t/op/time.t line 174> > # got "-2837665"> > # expected "8921556"> > ok 55 - year check, gmtime(4.5035996273705e+15)> > not ok 56 - year check, localtime(4.5035996273705e+15)> > # Failed at t/op/time.t line 174> > # got "1604708"> > # expected "142715360"> > ok 57 - year check, gmtime(70368744177664)> > ok 58 - year check, localtime(70368744177664)> > Hrm. 2**46 is fine but 2**48 and 2**52 are not.> > What's your LOCALTIME_MIN and LOCALTIME_MAX please?perl-current 103 > grep LOCALTIME_ config.sh
sLOCALTIME_max='974284125319987199'
sLOCALTIME_min='-62167219200'
> If LOCALTIME_MAX is over 2**48 could you try localtime(2**48) in C please> and see if the system library is at fault?tmp 107 > ./timecheck
0:7fffffffffffffff: 1587287-03-17 15:30:07
0:8000000000000000: 4293383948-10-16 08:29:52
======================
Sizeof time_t = 8
8:7fffffffffffffff: 1587287-03-17 15:30:07
max: 0x7fffffffffffffff 9223372036854775807
8:8000000000000000: 4293383948-10-16 08:29:52
min: -0x8000000000000000 -9223372036854775808
gmtime 2**48
======================
Sizeof time_t = 8
8: 1000000000000: 4292129631-11-18 10:44:16
0x0001000000000000 281474976710656
localtime 2**48
======================
Sizeof time_t = 8
8: 1000000000000: 4292129631-11-18 10:44:16
0x0001000000000000 281474976710656
> Also please compare what Configure's LOCALTIME_MAX is with what Time::y2038's > SYSTEM_LOCALTIME_MAX is.$ ./check_max
# Trying gmtime(67768036160140800) max... failed
# Trying gmtime(33884018080070400) max... success
# Trying gmtime(50826027120105600) max... failed
# Trying gmtime(42355022600088000) max... success
# Trying gmtime(46590524860096800) max... failed
:
:
# Trying gmtime(-42489252465868816) min... failed
# Trying gmtime(-42489252465868784) min... success
# Trying gmtime(-42489252465868800) min... success
# Trying gmtime(-42489252465868808) min... failed
# Trying gmtime(-42489252465868800) min... failed
# Trying gmtime(-42489252465868800) min... failed
# Trying localtime(67768036160140800) max... failed
# Trying localtime(33884018080070400) max... success
# Trying localtime(50826027120105600) max... failed
# Trying localtime(42355022600088000) max... success
:
:
# Trying localtime(-42489252465868816) min... failed
# Trying localtime(-42489252465868784) min... success
# Trying localtime(-42489252465868800) min... success
# Trying localtime(-42489252465868808) min... failed
# Trying localtime(-42489252465868800) min... failed
# Trying localtime(-42489252465868800) min... failed
# Trying mktime(42489252465868800) max... failed
# Trying mktime(21244626232934400) max... failed
# Trying mktime(10622313116467200) max... failed
# Trying mktime(5311156558233602) max... failed
:
:
# Trying mktime(46382541670799) max... success
# Trying mktime(46382541670817) max... failed
# Trying mktime(46382541670808) max... failed
# Trying mktime(46382541670804) max... failed
# Trying mktime(46382541670802) max... failed
# Trying mktime(46382541670801) max... failed
# Trying mktime(-42489252465868800) min... failed
# Trying mktime(-21244626232934400) min... failed
# Trying mktime(-10622313116467200) min... failed
# Trying mktime(-5311156558233600) min... failed
:
:
# Trying mktime(-2147483647) min... success
# Trying mktime(-2147483649) min... failed
# Trying mktime(-2147483648) min... success
# system time.h limits, as JSON
{ "gmtime": { "max": 42489252465868800, "min": -42489252465868800 },
"localtime": { "max": 42489252465868800, "min": -42489252465868800 },
"mktime": {
"max": { "tm_sec": 59, "tm_min": 59, "tm_hour": 1, "tm_mday": 27, "tm_mon": 2, "tm_year": 1469874, "tm_wday": 0, "tm_yday": 85, "tm_isdst": 0 },
"min": { "tm_sec": 52, "tm_min": 45, "tm_hour": 21, "tm_mday": 13, "tm_mon": 11, "tm_year": 1, "tm_wday": 5, "tm_yday": 346, "tm_isdst": 0 }
}
}
> http://search.cpan.org/~mschwern/Time-y2038-20100216.1421_04/
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/