PVBMs mustn't enter anything that turns SVIVisUV_on().
[p5sagit/p5-mst-13.2.git] / ext / Time / HiRes / Changes
CommitLineData
75d5269b 1Revision history for the Perl extension Time::HiRes.
dcf686c9 2
9e000d5b 31.9702 [2006-12-06]
4 - restore the -DATLEASTFIVEOHOHFIVE
5
61.9701 [2006-12-04]
7 - upgrade to ppport.h 3.10_02
8 - remove the -DATLEASTFIVEOHOHFIVE
9 - use the ppport.h PL_ppaddr, PL_statcache, PL_laststatval
10 - use the ppport.h aTHXR for calling Perl stat()
11 - switch into four-digit version since 2.0 is coming up
12 awfully fast but not feeling like a major rewrite
13
141.97 [2006-11-30]
15 - 1.95 broke building in Win32 (since pp_stat is not exported),
16 figured out how to call an op directly in 5.005 (use Perl_ppaddr
17 instead of PL_ppaddr)
18 - backport to Perl 5.004_05 (requires using statcache
19 and laststatval instead of PL_statcache and PL_laststatval)
20 (also checked to work in 5.005_04, 5.6.1, and 5.8.8 with threads)
21
221.96 [2006-11-30]
23 - 1.95 broke builds for threaded Perls, rt.cpan.org tickets:
24 [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
25 [rt.cpan.org #23712] Time-HiRes 1.95 Fails make on AIX 5.2 with Perl 5.8.8
26 [rt.cpan.org #23730] Time::HiRes 1.95 fails make on MacOS X 10.3.9/perl 5.8.8
71ac5476 27 - use main() prototype consistently in Makefile.PL
28
9e000d5b 291.95 [2006-11-29]
7b9ffbef 30 - integrate core change #29180: Silence VC++ compiler warnings
31 from Steve Hay
32 - do not use PL_ppaddr in stat() because that is not available
33 in Perl 5.005_04
34 - regenerate fallback/*.inc for older Perls without
35 ExtUtils::Constant because of d_hires_stat, resolves
36 [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
9e000d5b 37 - Make Makefile.PL more defensive against false PERL_CORE
7b9ffbef 38
c36568be 391.94 [2006-10-16]
40 - file timestamps oddities seen: the atime and mtime
41 can be out of sync (modify first and read second can leave
42 atime < mtime) and mtime can be subsecond while atime is not.
43 So make the test more forgiving.
44
c09e847b 451.93 [2006-10-15]
46 - the ualarm() tests (34-37) assumed that ualarm(N)
47 could never alarm in less than N seconds, widened
48 the acceptable relative range to 0.9..1.5. Addresses
49 [rt.cpan.org #22090] and [rt.cpan.org #22091].
50
51 - skip the stat() tests in cygwin and win32, because
52 if run on FAT the timestamp granularity is only 2 seconds.
53 Any good way to detect (cygwin or win32) whether we are
7b9ffbef 54 being run on NTFS or anywhere with better timestamps?
c09e847b 55 Addresses [rt.cpan.org #22089] and [rt.cpan.org #22098].
56
75d5269b 571.92 [2006-10-13]
58 - scan for subsecond resolution timestamps in struct stat,
59 some known possibilities:
60
61 (1) struct timespec st_atimespec;
62 st_atimespec.tv_nsec;
63 (2) time_t st_atime;
64 long st_atimensec;
65 (3) time_t st_atime;
66 int st_atime_n;
67 (4) timestruc_t st_atim;
68 st_atim.tv_nsec
69 (5) time_t st_atime;
70 int st_uatime;
71
72 If something like this is found, one can do
73
74 use Time::HiRes;
75 my @stat = Time::HiRes::stat();
76
77 or even override the standard stat():
78
79 use Time::HiRes qw(stat);
80
81 to get the stat() timestamps
82
83 my ($atime, $mtime, $ctime) = @stat[8, 9, 10];
84
85 with subsecond resolution (assuming both the operating
86 system and the filesystem support that kind of thing).
87
88 Contributions for more systems (especially non-UNIX,
7b9ffbef 89 e.g. but not limited to: Win32, VMS, OS/2) gladly accepted.
75d5269b 90
91 Thanks to H.Merijn Brand, John Peacock, and Craig
92 Berry for brave beta testing.
93
941.91 [2006-09-29]
34f69483 95 - ualarm() in SuSE 10.1 was overflowing after ~4.2 seconds,
75d5269b 96 possibly due to a glibc bug/feature, workaround by using the
97 setitimer() implementation of ualarm() if either useconds or
98 interval > 999_999 (this case seems to vary between systems:
99 are useconds more than 999_999 for ualarm() defined or not)
100 Added more ualarm() tests to catch various overflow points,
101 hopefully no problems in various platforms.
102 (The problem report by Mark Seger and Jon Paul Sullivan of HP.)
34f69483 103
f445b110 1041.90 [2006-08-22]
105 - tweak still needed for Const64(), from Jerry Hedden
106 - get a freshly generated ppport.h
107 - update Copyright years
108
b69b1b83 1091.89 [2006-08-22]
110 - Const64() already appends an 'LL' (or i64), so provide LL and i64
f445b110 111 forms for the IV_1E[679] (effects Win32 and Cygwin), reported by
112 Jerry Hedden.
75d5269b 113 - the Changes entry for 1.88 talked about [IN]V_1[679],
114 missing the 'E'.
b69b1b83 115
47e797f6 1161.88 [2006-08-21]
117 - clean up the g++ warnings in HiRes.xs, all of them
118 about mixing integer and floating point, introduce
b69b1b83 119 constants IV_1E[679] and NV_1E[679]
47e797f6 120
9b15102a 1211.87 [2006-02-13]
122 - [rt.cpan.org #17442] 'make test' frequently fails under
123 Cygwin Perl v5.8.8, reported and patched by J. R. Hedden
124 (two race condition bugs in the END block in the case the
125 main process dies before the timer process, unearthed
126 by a bug in Cygwin ualarm)
127
ff7df920 1281.86 [2005-12-17]
129 - HiRes.t:s/ok 32/ok 33/, from Dominic Dunlop
130 - tighten up the clock() test marginally by requiring non-negative
131 - clock_nanosleep() and clock() doc tweaks
132
170c5524 1331.85 [2005-12-16]
134 - the interface to clock_nanosleep() is more natural
135 when it is like (hires) time() (instead of like nanosleep),
136 and the .xs implementation of clock_nanosleep() in 1.84
137 was broken anyway
138 - the semantics of clock() are not quite so silly as I thought,
139 but still somewhat odd, documented as such
140 - additional enhancements to the clock() documentation
141 - add test for clock_nanosleep() (I cannot test this
142 since none of my systems have the function)
143 - add test for clock()
144
1451.84 [2005-12-16]
146 - add clock() which returns the processor time in
147 (floating point) seconds since an arbitrary era
148 - add clock_nanosleep() which suspends the current
149 thread until either absolute time or for relative time
150 - [rt.cpan.org #16486] printf missing value in HiRes.t
151 - add constants CLOCKS_PER_SEC, CLOCK_SOFTTIME, TIMER_ABSTIME
152 - tiny typo fixes
153
a5929ff3 1541.83 [2005-11-19]
155 - has_symbol() was wrong since e.g. ITIMER_VIRTUAL is exported
156 via @EXPORT_OK even when it is not available. This is heinous.
157 @EXPORT_OK should be determined at Makefile.PL time.
158 - be more lenient is testing clock_gettime(): allow more slop,
159 and retry up to three times, sleeping a random nap between
160 the retries
161 - human months are one-based (noticed by Anton Berezin)
162
82cbdcc3 1631.82 [2005-10-06]
164 - CLOCK_REALTIME is an enum value (of the clockid_t enum)
165 in HP-UX (and might be so elsewhere, too), debugged by
166 H. Merijn Brand
167 - include const-c.inc as late as possible (from Randy Kobes,
168 [rt.cpan.org #15552] to avoid undefined usleep() on Win32
169
a5929ff3 1701.81 [2005-11-05]
b311af62 171 - try to be more robust and consistent in the detection of
172 CLOCK_REALTIME and ITIMER_VIRTUAL in HiRes.t: the proper
173 way is
174
175 sub has_symbol {
176 my $symbol = shift;
177 eval 'import Time::HiRes qw($symbol)';
178 return 0 unless $@ eq '';
179 return exists ${"Time::HiRes::$symbol"};
180 }
181
182 and then use
183
184 &FOO_BAR
185
186 in the test. All these moves are needed because
187
188 1) one cannot directly do eval 'Time::HiRes::FOO_BAR'
189 because FOO_BAR might have a true value of zero
190 (or in the general case an empty string or even undef)
191
192 2) In case FOO_BAR is not available in this platform,
193 &FOO_BAR avoids the bareword warning
194
195 - wait more (1.5 seconds instead of 0.1) for the CLOCK_REALTIME test
196 but expect the 'customary' slop of 0.20 instead of 0.25
197 - fixed inside a comment HAS_POLL -> TIME_HIRES_NANOSLEEP
198 - at the end of HiRest.t tell how close we were to termination
199
a5929ff3 2001.80 [2005-11-04]
70cf0185 201 - Gisle noticed a mistake (using HAS_NANOSLEEP) in 1.79
202
a5929ff3 2031.79 [2005-11-03]
e5433ad8 204 - try nanosleep for emulating usleep -- may help in some weird
205 embedded realtime places which have nanosleep but neither usleep
206 nor select nor poll (doesn't have to be weird embedded realtime
207 place, though -- in many places usleep is nanosleep anyway)
208 - try poll for emulating usleep -- this may help some obscure/old
209 SVR4 places that have neither usleep nor select
210 - a redundant test guard in HiRes.t
211
a5929ff3 2121.78 [2005-11-03]
1a7d3a53 213 - ITIMER_VIRTUAL detection in HiRes.t had problems (that we cannot
e5433ad8 214 in the general case fail already at 'use' phase is suboptimal)
1a7d3a53 215 - fixes to the documentation of clock_gettime() and clock_getres()
216
a5929ff3 2171.77 [2005-11-03]
ced84e60 218 - add support for the POSIX clock_gettime() and clock_getres(),
219 if available, either as library calls or as syscalls
220 - be more defensive about missing functionality: break out
221 early (during 'use') if no e.g. clock_getres() is available,
222 and protect our back by trapping those cases also in HiRes.xs
223 - the test added in 1.76 could cause an endless loop e.g. in Solaris,
224 due to mixing of sleep() and alarm() (bad programmer, no cookie!)
225
3d0346a5 2261.76 [2005-10-22]
227 - testing for nanosleep had wrong logic which caused nanosleep
228 to become undefined for e.g. Mac OS X
229 - added a test for a core dump that was introduced by Perl 5.8.0
230 safe signals and was fixed for the time of 5.8.1 (one report of
231 the core dump was [perl #20920]), the test skipped pre-5.8.1.
232 - *cough* s/unanosleep/nanosleep/g; *cough*
233
9649b81b 2341.75 [2005-10-18]
235 - installation patch from Gisle Aas: in Perls 5.8.x and later
236 use MakeMaker INSTALLDIRS value of 'perl' instead of 'site'.
237
06252d99 2381.74 [2005-09-19]
239 - [cpan #14608] Solaris 8 perl 5.005_03 File::Spec module does not have method rel2abs
240 (the workaround is not to use rel2abs, should not be necessary)
241 - [cpan #14642] U2time wrongly exported on the C API
242 (patch supplied by the reporter, SALVA@cpan.org)
243 - add release dates to Changes
244
2451.73 [2005-08-16]
246 - Time::HiRes::nanosleep support for Solaris [PATCH]
937b804e 247 (POSIX::uname() not available if building with core perl,
248 from Gisle Aas, via perl5-porters, perl change #25295)
249
06252d99 2501.72 [2005-07-01]
251 - going back to the 1.68 loader setup (using DynaLoader)
0cf8ddea 252 since too many weird things starting breaking
253 - fix a typo in José Auguste-Etienne's name
254
06252d99 2551.71 [2005-06-28]
256 - a thinko in the nanosleep() detection
56c1b3bd 257 - move more changes stuff from the README to Changes
258 - add -w to the Makefile.PL
259
06252d99 2601.70 [2005-06-26]
261 - oops in 1.69 about @ISA (not affecting anything but silly)
f8daf111 262 - add copyright 2005 to HiRes.pm
263 - add copyright and license to HiRes.xs
56c1b3bd 264 - add copyrights 2003, 2004, 2005 to README
f8daf111 265
06252d99 2661.69 [2005-06-25]
267 - actually run a test for nanosleep
56c1b3bd 268 (if there is no $Config{d_nanosleep}) since e.g. in AIX 4.2
26e22fd9 269 it seems that one can link in nanosleep() but then calling
270 it fails instantly and sets errno to ENOSYS (Not implemented).
271 This may be fixable in the AIX case by figuring out the right
272 (realtime POSIX?) libs and whatnot, but in the general case
273 running a real test case is better. (Of course, this change
274 will no doubt run into portability problems because of the
0cf8ddea 275 execution step...) Note that because of hysterical raisins
276 most Perls do NOT have $Config{d_nanosleep} (scanning for
277 it by Configure would in many platforms require linking in
278 things like -lrt, which would in many platforms be a bad idea
279 for Perl itself).
280 (from José Auguste-Etienne)
26e22fd9 281 - support XSLoader also since it's much faster
282 (from Alexey Tourbin)
283 - add SEE ALSO (BSD::Resource and Time::TAI64)
284
06252d99 2851.68 [2005-05-14]
993164ab 286 - somehow 1.67 had a lot of doubled lines (a major cut-and-paste
287 error suspected), but miraculously it still worked since the
288 doubling took place below the __END__ token
289 - undef Pause() before defining it to avoid redefinition warnings
290 during compilation in case perl.h had already defined Pause()
291 (part of perl change #24271)
292 - minor doc tweaks
293
06252d99 2941.67 [2005-05-04]
993164ab 295 - (internal) don't ignore the return value of gettimeofday()
296 - (external) return undef or an empty if the C gettimeofday() fails
297 (affects Time::HiRes gettimeofday() and the hires time())
298
06252d99 2991.66 [2004-12-19]
44d3ce20 300 - add nanosleep()
301 - fix the 'hierachy' typo in Makefile.PL [rt.cpan.org #8492]
302 - should now build in Solaris [rt.cpan.org #7165] (since 1.64)
303 - should now build in Cygwin [rt.cpan.org #7535] (since 1.64)
82cbdcc3 304 - close also [rt.cpan.org #5933] "Time::HiRes::time does not
305 pick up time adjustments like ntp" since ever reproducing it
306 (and therefore verifying a possible fix) in the same environment
44d3ce20 307 has become rather unlikely
308
06252d99 3091.65 [2004-09-18]
64a7a97c 310 - one should not mix u?alarm and sleep (the tests modified
311 by 1.65, #12 and #13, hung in Solaris), now we just busy
312 loop executing an empty block
313 - in the documentation underline the unspecificity of mixing
314 sleeps and alarms
315 - small spelling fixes
316
06252d99 3171.64 [2004-09-16]
64a7a97c 318 - regenerate ppport.h with Devel::PPPort 3.03,
319 now the MY_CXT_CLONE is defined in ppport.h,
320 we no more need to do that.
321
322 - the test #12 would often hang in sigsuspend() (at least that's
323 where Mac OS X' ktrace shows it hanging). With the sleep()s
324 changed to sleep(1)s, the tests still pass but no hang after
325 a few hundred repeats.
326
06252d99 3271.63 [2004-09-01]
1fbb4de4 328 - Win32 and any ithread build: ppport.h didn't define
170c5524 329 MY_CXT_CLONE, which seems to be a Time-HiRes-ism.
1fbb4de4 330
06252d99 3311.62 [2004-08-31]
1fbb4de4 332 - Skip testing if under PERL_CORE and Time::HiRes has not
333 been Configured (from Marcus Holland-Moritz, core change
334 #23246)
335 - Use ppport.h generated by Devel::PPPort 3.01,
336 allowing cutting away our own portability code.
337 - Don't use $ENV{PERL_CORE} for < 5.6.0.
338 - Don't use "for my $i" for <= 5.003.
339 - Don't use Pause() for <= 5.003.
340 - Can't use newSVpvf for <= 5.003.
341 (most of the changes from Marcus)
342
06252d99 3431.61 [2004-08-21]
4ed0e2d4 344 - Win32: reset reading from the performance counters every
345 five minutes to better track wall clock time (thanks to
346 PC timers being often quite bad), should help long-running
347 programs.
348
06252d99 3491.60 [2004-08-15]
4ed0e2d4 350 - Win32: Patch from Steve Hay
351 [PATCH] Re: [perl #30755] [Win32] Different results from Time::HiRes::gettimeofdayunder the debugger
352 to [perl #30755] reported by Nigel Sandever
353
354 - Cygwin: Use the Win32 recalibration code also in Cygwin if the
355 <w32api/windows.h> APIs are available. Cygwin testing by
356 Yitzchak Scott-Thoennes.
357
358 - Solaris: use -lposix4 to get nanosleep for Solaris 2.6,
359 after that keep using -lrt, patch from Alan Burlison,
360 bug reported in [cpan #7165]
361
06252d99 3621.59 [2004-04-08]
d8cb5b61 363 - Change the Win32 recalibration limit to 0.5 seconds and tweak
364 the documentation to blather less about the gory details of the
365 Win32 implementation and more about the complications in general
366 of meddling with the system clock.
367
06252d99 3681.58 [2004-04-08]
d8cb5b61 369 - Document the 1.57 change better.
370
06252d99 3711.57 [2004-07-04]
d8cb5b61 372 - Win32/Cygwin/MinGW: if the performance counter drifts by more
373 than two seconds from the system clock (due to ntp adjustments,
c1dc6e7c 374 for example), recalibrate our internal counter: from Jan Dubois,
375 based on [cpan #5933] by Jerry D. Hedden.
376
06252d99 3771.56 [2004-29-02]
1caec985 378 - Give a clearer message if the tests timeout (perl change #22253)
379 - Don't use /tmp or its moral equivalents (perl bug #15036,
380 perl change #22258)
381
06252d99 3821.55 [2004-01-14]
4ed0e2d4 383 - Windows: mingw32 patch from Mike Pomraning (use Perl's Const64()
b6136f41 384 instead of VC-specific i64 suffix)
385
06252d99 3861.54 [2003-12-31]
0225372c 387 - Solaris: like Tru64 (dec_osf) also Solaris need -lrt for nanosleep
388
06252d99 3891.53 [2003-12-30]
0225372c 390 - Windows: higher resolution time() by using the Windows
391 performance counter API, from Jan Dubois and Anton Shcherbinin.
392 The exact new higher resolution depends on the hardware,
393 but it should be quite a bit better than using the basic
394 Windows timers.
395
06252d99 3961.52 [2003-10-28]
690f7c5f 397 - In AIX (v?) with perl 5.6.1 the HiRes.t can hang after
398 the subtest 18. No known analysis nor fix, but added
399 an alarm (that requires fork() and alarm()) to the test.
400
06252d99 4011.51 [2003-09-22]
b85af263 402 - doc tweaks from mjd (perl change #20456)
403 - NCR MP-RAS hints file added (svr4.pl) (perl change #21249)
404
06252d99 4051.50 [2003-08-02]
d7358e6a 406 - add a message (for non-core builds) to Makefile.PL about
407 the LC_ALL=C workaround
408 - &Time::HiRes::d_nanosleep was broken (perl change #20131)
409 - the nanosleep() probe was broken (perl change #20061)
410 - use existence instead of definedness for feature probes
411 (perl change #20043)
412 - MPE/iX tweak (perl change #20042)
413 - do not use HAS_NANOSLEEP (perl change #19898)
414
06252d99 4151.49 [2003-06-23]
df16a331 416 - UVuf for non-IVSIZE platforms (from Keiichiro Nagano)
417 - OS/2 can always mix subsecond sleeps with signals
418 (part of perl change #19789)
419
06252d99 4201.48 [2003-06-04]
2d9815af 421 - workaround for buggy gcc 2.95.3 in openbsd/sparc64
422 (perl change #19592)
423
06252d99 4241.47 [2003-05-03]
2d9815af 425 - do not use -lrt in Linux (from March Lehmann, perl change #19449)
1a08a6ab 426 - unnecessary (nanosleep is in libc anyway)
427 - harmful (-lrt slows down execution)
428 - incompatible (with many distributions' pthreads)
429
06252d99 4301.46 [2003-04-25]
25ca0970 431 - do not create files in blib directories under core
432 (perl change #19160, from rgs)
433 - detypo s/VTLARM/VTARLM/ (perl change #19328, from mjd)
434
06252d99 4351.45 [2003-04-01]
25ca0970 436 - guarantee that $xdefine in HiRes.t is always defined
437 (perl change #19109, from IlyaZ)
438 - a cleaner way to detect PERL_CORE (perl change #19111,
439 from IlyaZ)
440
06252d99 4411.44 [2003-03-30]
0be47ac6 442 - add hints/irix.pl to turn off overly POSIX flags that
443 cause hide struct timespec to be hidden (and compilation
25ca0970 444 to fail) (bleadperl change #19085)
0be47ac6 445 - documentation tweaks
446
06252d99 4471.43 [2003-03-11]
a0c8e3cf 448 - add c:/temp to the list of temp directories to probe
449 so that cygwin (and win*?) builds are happy. This was
450 needed at least in my cygwin 1.3.20/w2k setup.
451
06252d99 4521.42 [2003-01-07]
98b50af3 453 - modernize the constants code (from Nicholas Clark)
454
06252d99 4551.41 [2003-01-03]
98b50af3 456 - At some point the ability to figure our the correct incdir
457 for EXTERN.h (either a core perl build, or an installed perl)
458 had broken (which lead into all test compiles failing with
459 a core perl build, but thanks to the robustness of Makefile.PL
a0c8e3cf 460 nothing of this was visible). The brokenness seemed to be
461 caused by $ENV{PERL_CORE} not being on for core builds?
462 Now stole a trick from the Encode that sets $ENV{PERL_CORE}
463 right, and both styles of build should work again.
98b50af3 464
06252d99 4651.40 [2003-01-03]
98b50af3 466 - Nicholas Clark noticed that the my_catdir() emulation function
467 was broken (which means that we didn't really work for Perls
468 5.002 and 5.003)
469 - inspired by fixing the above made the whole Makefile.PL -w
470 and strict clean
471 - tightened up the Makefile.PL output, less whitespace
472
06252d99 4731.39 [2003-10-20]
6a20eacc 474 - fix from Craig Berry for better building in VMS with PERL_CORE
475
06252d99 4761.38 [2003-10-13]
3f2ee006 477 - no functional changes
478 - move lib/Time/HiRes.pm as Hires.pm
479 - libraries scanning was slightly broken (always scanned
480 for a library even when $Config{libs} already had it)
481
06252d99 4821.37 [2003-09-23]
3f2ee006 483 - Ray Zimmerman ran into a race condition in Mac OS X.
484 A 0.01-second alarm fired before the test expected.
485 The test first slept indefinitely (blocking for signals)
486 and only after that tested for the signal having been sent.
487 Since the signal had already been sent, the test #12 never
488 completed. The solution: test first, then block.
489 - default to being silent on all probing attempts, set the
490 environment variable VERBOSE to a true value to see the
491 details (the probing command and the possible errors)
492
06252d99 4931.36 [2003-09-12]
3f2ee006 494 - do not clear MAN3PODS in Makefile.PL (Radoslaw Zielinski)
495 - INSTALLDIRS => 'perl' missing which means that Time::HiRes
496 cannot be upgraded from CPAN to override the 5.8.0 version
497 (Guido A. Ostkamp)
498 - Time::HiRes 1.35 could not be dropped as-is to bleadperl
499 because the include directories did not adjust themselves
500 if $ENV{PERL_CORE} (Hugo van der Sanden)
501 - add documentation about the restart of select() under alarm()
502
06252d99 5031.35 [2003-08-24]
3f2ee006 504 - small documentation tweaks
505
506
06252d99 5071.34 [2003-08-22]
3f2ee006 508 - better VMS operation (Craig Berry)
509
06252d99 5101.33 [2003-08-20]
3f2ee006 511 - our time machine is accelerating: now works with Perl 5.004_01
512 (tried with 5.003_07 and 5.002 but I get segmentation faults
513 from running the Makefile.PL with those in Tru64 4.0D)
514
06252d99 5151.32 [2003-08-20]
3f2ee006 516 - backward compatibility (pre-5.6.0) tweaks:
517 - no XSLoader in 5.00503, use DynaLoader instead
518 - no SvPV_nolen, either
519 - no PerlProc_pause(), either
520 - now tested with 5.00404 and 5.00503
521 - Makefile.PL requires 5.00404 (no more 5.002)
522 - use nanosleep instead of usleep, if it is available (Wilson Snyder)
523 (this means that one can mix subsecond sleeps with alarms)
524 - because of nanosleep we probe for -lrt and -lposix4
525 - the existence of getitimer/nanosleep/setitimer/ualarm/usleep
526 is available by exportable constants Time::HiRes::d_func
527 (since older Perl do not have them in %Config, and even
528 5.8.0 does not probe for nanosleep)
529
06252d99 5301.31 [2003-08-19]
3f2ee006 531 - backward compatibility (pre-5.6.1) tweaks:
532 - define NV if no NVTYPE
533 - define IVdf if needed (note: the Devel::PPPort
534 in 5.8.0 does not try hard hard enough since
535 the IVSIZE might not be defined)
536 - define NVgf if needed
537 - grab the typemap from 5.8.0 for the NV stuff
56c1b3bd 538
539 1.31 and 1.32 add more backward compatibility (now all the way
540 back to Perl 5.00404), and using nanosleep() (if available) for
541 subsecond sleeps.
542
06252d99 5431.30 [2003-08-16]
3f2ee006 544
545 - release 1.29_02 as 1.30
546
56c1b3bd 547 1.30 adds all the changes made during the Perl 5.6->5.7->5.8
548 development cycle. Most notably portability across platforms has been
549 enhanced, and the interval timers (setitimer, getitimer) have been
550 added. Note that the version of Time::HiRes that is included in Perl
551 5.8.0 calls itself 1.20_00, but it is equivalent to this Time::HiRes
552 version. Note also that in 1.30 Wegscheid turns over the maintenance
553 to Jarkko Hietaniemi.
554
06252d99 5551.29_02 [2003-08-16]
3f2ee006 556
557 - fix a silly unclosed comment typo in HiRes.xs
558 - document and export REALTIME_REALPROF (Solaris)
559
06252d99 5601.29_01 [2003-08-16]
3f2ee006 561
562 - only getitimer(ITIMER_REAL) available in Cygwin and Win32
563 (need to patch this also in Perl 5.[89])
564 - remove CVS revision log from HiRes.xs
565
06252d99 5661.29_00 [2003-08-14]
3f2ee006 567
568 The following numbered patches refer to the Perl 5.7 changes,
569 you can browse them at http://public.activestate.com/cgi-bin/perlbrowse
570
571 - 17558: Add #!./perl to the .t
572 - 17201: linux + usemorebits fix, from Rafael Garcia-Suarez
573 - 16198: political correctness, from Simon Cozens
574 - 15857: doc tweaks, from Jarkko Hietaniemi
575 - 15593: optimization in .xs, from Paul Green
576 - 14892: pod fixes, from Robin Barker
577 - 14100: VOS fixes, from Paul Green
578 - 13422: XS segfault, from Marc Lehmann
579 - 13378: whether select() gets restarted on signals, depends
580 - 13354: timing constraints, again, from Andy Dougherty
170c5524 581 - 13278: can't do subsecond alarms with ualarm;
3f2ee006 582 break out early if alarms do not seem to be working
583 - 13266: test relaxation (cygwin gets lower hires
584 times than lores ones)
585 - 12846: protect against high load, from Jarkko Hietaniemi
586 - 12837: HiRes.t VMS tweak, from Craig A. Berry
587 - 12797: HiRes.t VMS tweak, from Charles Lane
588 - 12769: HiRes.t VMS tweak, from Craig A. Berry
589 - 12744: gcc vs MS 64-bit constant syntax, from Nick Ing-Simmons
590 - 12722: VMS ualarm for VMS without ualarm, from Charles Lane
591 - 12692: alarm() ain't gonna work if ualarm() ain't,
592 from Gurusamy Sarathy
593 - 12680: minor VMS tweak, from Charles Lane
594 - 12617: don't try to print ints as IVs, from Jarkko Hietaniemi
595 - 12609: croak on negative time, from Jarkko Hietaniemi
596 - 12595: Cygwin rounds up for time(), from Jarkko Hietaniemi
597 - 12594: MacOS Classic timeofday, from Chris Nandor
598 - 12473: allow for more than one second for sleep() and usleep()
599 - 12458: test tuning, relax timing constraints,
600 from Jarkko Hietaniemi
601 - 12449: make sleep() and usleep() to return the number
602 of seconds and microseconds actually slept (analogously
603 with the builtin sleep()), also make usleep() croak if
604 asked for more than 1_000_000 useconds, from Jarkko Hietaniemi
605 - 12366: Time::HiRes for VMS pre-7.0, from Charles Lane
606 - 12199: do not use ftime on Win32, from Gurusamy Sarathy
607 - 12196: use ftime() on Win32, from Artur Bergman
608 - 12184: fix Time::HiRes gettimeofday() on Win32, from Gurusamy Sarathy
609 - 12105: use GetSystemTime() on Win32, from Artur Bergman
610 - 12060: explain the 1e9 seconds problem, from Jarkko Hietaniemi
611 - 11901: UNICOS sloppy division, from Jarkko Hietaniemi
612 - 11797: problem in HiRes.t, from John P. Linderman
613 - 11414: prototype from Time::HiRes::sleep(), from Abhijit Menon-Sen
614 - 11409: Time::HiRes qw(sleep) failed, from Abhijit Menon-Sen
615 - 11270: dynix/ptx 4.5.2 hints fix, from Peter Prymmer
616 - 11032: VAX VMS s/div/lib\$ediv/ fix, from Peter Prymmer
617 - 11011: VAX VMS s/qdiv/div/ fix, from Peter Prymmer
618 - 10953: SCO OpenServer 5.0.5 requires an explicit -lc for usleep(),
619 from Jonathan Stowe
620 - 10942: MPE/IX test tweaks, from Mark Bixby
621 - 10784: unnecessary pod2man calls, from Andy Dougherty
622 - 10354: ext/ + -Wall, from Doug MacEachern
623 - 10320: fix the BOOT section to call myU2time correctly
624 - 10317: correct casting for AIX< from H. Merijn Brand
625 - 10119: document that the core time() may be rounding, not truncating
626 - 10118: test fix, from John Peacock
627 - 9988: long =item, from Robin Barker
628 - 9714: correct test output
629 - 9708: test also the scalar aspect of getitimer()
630 - 9705: Add interval timers (setitimer, getitimer)
631 - 9692: do not require at least 5.005 using XS
632
633 The following changes were made on top of the changes
634 made for Time::HiRes during the Perl 5.7 development
635 cycle that culminated in the release of Perl 5.8.0.
636
637 - add "require 5.005" to the Makefile.PL
638 - remove the REVISION section (CVS log) from HiRes.pm
639 - add jhi's copyright alongside Douglas'
640 - move HiRes.pm to lib/Time/
641 - move HiRes.t to t/
642 - modify HiRes.t to use $ENV{PERL_CORE}
643 - modify the original Time::HiRes version 1.20 Makefile.PL
644 to work both with Perl 5.8.0 and the new code with pre-5.8.0
645 Perls (tried with 5.6.1)
646 - tiny tweaks and updates in README and TODO
647 - bump the VERSION to 1.29
648
dcf686c9 6491.20 Wed Feb 24 21:30 1999
650 - make our usleep and ualarm substitutes into hrt_usleep
651 and hrt_ualarm. This helps static links of Perl with other
652 packages that also have usleep, etc. From
653 Ilya Zakharevich <ilya@math.ohio-state.edu>
654 - add C API stuff. From Joshua Pritikin
655 <joshua.pritikin@db.com>
3f2ee006 656 - VMS Makefile.PL fun. From pvhp@forte.com (Peter Prymmer)
dcf686c9 657 - hopefully correct "-lc" fix for SCO.
658 - add PPD stuff
659
56c1b3bd 660 1.20 adds a platform neutral set of C accessible routines if you are
661 running 5.005+. All other changes are packaging changes and build
662 fixes(?) for statically linked Perl, SCO, and VMS.
663
dcf686c9 6641.19 Tue Sep 29 22:30 1998
665 - put VMS gettimeofday() in. Patch is from Sebastian Bazley
666 <seb@stian.demon.co.uk>
667 - change GIMME_V to GIMME to help people with older versions of
668 Perl.
669 - fix Win32 version of gettimeofday(). It didn't affect anything,
670 but it confuses people reading the code when the return value
671 is backwards (0 is success).
672 - fix Makefile.PL (more) so that detection of gettimeofday is
673 more correct.
674
56c1b3bd 675 1.19 has better VMS support.
676
dcf686c9 6771.18 Mon Jul 6 22:40 1998
678 - add usleep() for Win32.
679 - fix Makefile.PL to fix reported HP/UX feature where unresolved
680 externals still cause an executable to be generated (though no
681 x bit set). Thanks to David Kozinn for report and explanation.
682 Problems with the fix are mine :)
683
56c1b3bd 684 1.18 has limited Win32 support (no ualarm). Added usleep for Win32.
685 Probably buggy. I'm sure I'll hear.
686
dcf686c9 6871.17 Wed Jul 1 20:10 1998
688 - fix setitimer calls so microseconds is not more than 1000000.
689 Hp/UX 9 doesn't like that. Provided by Roland B Robert, PhD.
3f2ee006 690 - make Win32. We only get gettimeofday (the select hack doesn't
dcf686c9 691 seem to work on my Win95 system).
3f2ee006 692 - fix test 4 on 01test.t. add test to see if time() and
dcf686c9 693 Time::HiRes::time() are close.
694
6951.16 Wed Nov 12 21:05 1997
696 - add missing EXTEND in new gettimeofday scalar code.
697
56c1b3bd 698 1.16+ should be closer to building out of the box on Linux. Thanks
699 to Gisle Aas for patches, and the ualarm equivalent using setitimer.
700
701 If your underlying operating system doesn't implement ualarm(), then
702 a fake using setitimer() will be made. If the OS is missing usleep(),
703 a fake one using select() will be made. If a fake can't be made for
704 either ualarm() or usleep(), then the corresponding Perl function will
705 not be available. If the OS is missing gettimeofday(), you will get
706 unresolved externals, either at link- or run-time.
707
708 This is an improvement; the package used to not even build if
709 you were missing any of these bits. Roderick Schertler
710
711 <roderick@argon.org> did all the conditional compilation stuff,
712 look at HiRes.pm and the test suites; it's good educational reading.
713
dcf686c9 7141.15 Mon Nov 10 21:30 1997
715 - HiRes.pm: update pod. Provided by Gisle Aas.
716 - HiRes.xs: if gettimeofday() called in scalar context, do
717 something more useful than before. Provided by Gisle Aas.
718 - README: tell of xsubpp '-nolinenumber' woes. thanks to
719 Edward Henigin <ed@texas.net> for pointing out the problem.
720
7211.14 Wed Nov 5 9:40 1997
722 - Makefile.PL: look for setitimer
723 - HiRes.xs: if missing ualarm, but we have setitimer, make up
724 our own setitimer. These were provided by Gisle Aas.
725
7261.13 Tue Nov 4 23:30 1997
727 - Makefile.PL: fix autodetect mechanism to do try linking in addition
728 to just compiling; should fix Linux build problem. Fix was provided
729 by Gisle Aas.
730
7311.12 Sun Oct 12 12:00:00 1997
732 - Makefile.PL: set XSOPT to '-nolinenumbers' to work around xsubpp bug;
733 you may need to comment this back out if you have an older xsubpp.
734 - HiRes.xs: set PROTOTYPES: DISABLE
735
7361.11 Fri Sep 05 16:00:00 1997
737 - Makefile.PL:
738 Had some line commented out that shouldn't have been (testing
739 remnants)
740 - README:
741 Previous version was corrupted.
742
7431.10 Thu May 22 20:20:00 1997
744 - HiRes.xs, HiRes.pm, t/*:
745 - only compile what we have OS support for (or can
746 fake with select())
747 - only test what we compiled
748 - gross improvement to the test suite
749 - fix EXPORT_FAIL.
750 This work was all done by Roderick Schertler
751 <roderick@argon.org>. If you run Linux or
170c5524 752 one of the other ualarm-less platforms, and you like this
dcf686c9 753 module, let Roderick know; without him, it still wouldn't
754 be working on those boxes...
755 - Makefile.PL: figure out what routines the OS has and
756 only build what we need. These bits were written by Jarkko
757 Hietaniemi <jhi@iki.fi>. Again, gratitude is due...
758
7591.02 Mon Dec 30 08:00:00 1996
760 - HiRes.pm: update documentation to say what to do when missing
761 ualarm() and friends.
762 - README: update to warn that ualarm() and friends need to exist
763
7641.01 Fri Oct 17 08:00:00 1996
765 - Makefile.PL: make XSPROTOARGS => '-noprototyopes'
766 - HiRes.pm: put blank line between __END__ and =head1 so that
767 pod2man works.
768
7691.00 Tue Sep 03 13:00:00 1996
770 - original version; created by h2xs 1.16