This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update Time-HiRes to CPAN version 1.9722
[perl5.git] / cpan / Time-HiRes / Changes
1 Revision history for the Perl extension Time::HiRes.
2
3 1.9722 [2011-05-18]
4         - Update for changes in build process in the core, patches
5           from BinGOs [rt.cpan.org #58858] and Craig Berry [rt.cpan.org
6           #63363].
7         - Fix broken linkage on Windows with gcc 3.4 seen with ActivePerl,
8           report from Christian Walde [rt.cpan.org #61648], fix derived
9           from Vincent Pit.
10         - Jump through hoops to avoid compiler warnings.
11
12 1.9721 [2010-03-17]
13         - Address [rt.cpan.org #54196] alarm and ularm return values are bogus,
14           additional fix from Gisle Aas
15         - Address [rt.cpan.org #55665] "Bad plan" on Windows,
16           report and fix from Jan Dubois
17
18 1.9720 [2010-02-14]
19         - Address [rt.cpan.org #54196] alarm and ularm return values are bogus,
20           report and fix from Nicholas Clark
21
22 1.9719  [2009-01-04]
23         - As with QNX, Haiku has the API of interval timers but not
24           the implementation (bleadperl change #34630), hence skip
25           the tests, via David Mitchell.
26
27 1.9718  [2008-12-31]
28         - .xs code cleanup from Albert Dvornik
29         - in the #39 and #40 do not do us I did, mixing alarm() and
30           sleep().  Now instead spin until enough time has passed.
31
32 1.9717  [2008-12-30]
33         - Skip the tests added in 1.9716 (#39, #40) if there's no subsecond
34           alarm capability, like with the older subsecond alarm tests
35
36 1.9716  [2008-12-26]
37         - Change documentation to agree with reality: there are
38           no interval timers in Win32.
39         - Address [rt.cpan.org #35899] (problem in subsecond sleeps),
40           add two tests to guard against this problem
41         - Address [rt.cpan.org #36600] 'Division by zero' failure in test suite
42         - Address [rt.cpan.org #37340] [PATCH] Address timer process in test
43         - Address [rt.cpan.org#40311 ] bad implementation of hrt_usleep
44           with TIME_HIRES_NANOSLEEP
45
46 1.9715  [2008-04-08]
47         - Silly me: Makefile.PL does need to accept arguments other than mine.
48           Some testing frameworks obviously do this.
49         - Add retrying for tests 34..37, which are the most commonly
50           failing tests.  If this helps, consider extending the retry
51           framework to all the tests.  [Inspired by Slaven Rezic,
52           [rt.cpan.org #34711] Occasional failures of test 35 or 36 (FreeBSD)]
53
54 1.9714  [2008-04-07]
55         - Under Perl 5.6.* NVgf needs to be "g", reported by Zefram,
56           it seems that ppport.h 3.13 gets this wrong.
57         - remove the check in Makefile.PL for 5.7.2, shouldn't be
58           (a) necessary (b) relevant
59         - add logic to Makefile.PL to skip configure/write Makefile
60           step if the "xdefine" file already exists, indicating that
61           the configure step has already been done, one can still
62           force (re)configure by "perl Makefile.PL configure",
63           or of course by "make clean && perl Makefile.PL".
64
65 1.9713  [2008-04-04]
66         - for alarm() and ualarm() [Perl] prefer setitimer() [C]
67           instead of ualarm() [C] since ualarm() [C] cannot portably
68           (and standards-compliantly) be used for more than 999_999
69           microseconds (rt.cpan.org #34655)
70         - it seems that HP-UX has started (at least in 11.31 ia64)
71           #defining the CLOCK_REALTIME et alia (instead of having
72           them just as enums)
73         - document all the diagnostics 
74
75 1.9712  [2008-02-09]
76         - move the sub tick in the test file back to where it used to be
77         - in the "consider upgrading" message recommend at least Perl 5.8.8
78           and make the message to appear only for 5.8.0 since 5.8.1 and
79           later have the problem fixed
80         - VOS tweak for Makefile (core perl change #33259)
81         - since the test #17 seems to fail often, relax its limits a bit
82
83 1.9711  [2007-11-29]
84         - lost VMS test skippage from Craig Berry
85         - reformat the test code a little
86
87 1.9710  [2007-11-29]
88         - I got the sense of the QNX test the wrong way in an attempt
89           to generalize it for future
90
91 1.9709  [2007-11-28]
92         - casting fixes from Robin Barker for g++ and 64bitint
93         - in QNX skip the itimer tests because though the API
94           is there, the implementation isn't, from Matt Kraai
95         - raise the dead man timer to 180 seconds for really
96           slow/busy systems
97         - elaborate the UTF-8 locale warning from Makefile.PL
98
99 1.9708  [2007-10-05]
100         - [rt.cpan.org #29747]: Build failure with perl 5.005_05
101           Fixed by regenerating the ppport.h using Devel::PPPort 3.13.
102
103 1.9707  [2007-02-27]
104         - t/HiRes.t failed in Perl 5.6.2,
105           "action is not of type POSIX::SigAction at t/HiRes.t line 318",
106           reported and fixed by Anton Berezin, the reason was faulty
107           use of sigaction() when restoring the old action.
108
109 1.9706  [2007-02-25]
110         - with bleadperl in VMS the HiRes.t overrun the maximum number
111           of deferred signals because the libc SIGALRM was not strong
112           enough to interrupt select(), and select() got restarted every
113           time, solution is to use POSIX::SigAction if available.
114           A fix from Craig Berry (not 100% there, but helps).
115         - allow for more measuring noise for ualarm() tests 35..37
116
117 1.9705  [2007-02-06]
118         - nanosleep() and clock_nanosleep() detection and use were
119           quite broken; in Linux -lrt needed; fixes from Zefram
120         - [internal] slightly cleaner building of $DEFINE in Makefile.PL,
121           should avoid double/conflicting -D flags
122
123 1.9704  [2007-01-01]
124         - allow 10% of slop in test #14 (testing difference between
125           CORE::time() and Time::HiRes::time()), there seem to be often
126           transient failures from Perl smoke builds on this test
127         - small pod tweaks
128
129 1.9703  [2006-12-08]
130         - use int main(int argc, char **argv) consistently in Makefile.PL,
131           should help with
132           [rt.cpan.org #23868] nanosleep not detected under Mac OS 10.3.9 starting with Time::HiRes 1.96
133         - if someone still has the locale-broken Perl 5.8.0,
134           suggest that they upgrade their Perl
135
136 1.9702  [2006-12-06]
137         - restore the -DATLEASTFIVEOHOHFIVE, Win32 needed it still
138
139 1.9701  [2006-12-04]
140         - upgrade to ppport.h 3.10_02
141         - remove the -DATLEASTFIVEOHOHFIVE
142         - use the ppport.h PL_ppaddr, PL_statcache, PL_laststatval
143         - use the ppport.h aTHXR for calling Perl stat()
144         - switch into four-digit version since 2.0 is coming up
145           awfully fast but not feeling like a major rewrite
146
147 1.97    [2006-11-30]
148         - 1.95 broke building in Win32 (since pp_stat is not exported),
149           figured out how to call an op directly in 5.005 (use Perl_ppaddr
150           instead of PL_ppaddr)
151         - backport to Perl 5.004_05  (requires using statcache
152           and laststatval instead of PL_statcache and PL_laststatval)
153           (also checked to work in 5.005_04, 5.6.1, and 5.8.8 with threads)
154
155 1.96    [2006-11-30]
156         - 1.95 broke builds for threaded Perls, rt.cpan.org tickets:
157           [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
158           [rt.cpan.org #23712] Time-HiRes 1.95 Fails make on AIX 5.2 with Perl 5.8.8
159           [rt.cpan.org #23730] Time::HiRes 1.95 fails make on MacOS X 10.3.9/perl 5.8.8
160         - use main() prototype consistently in Makefile.PL
161
162 1.95    [2006-11-29]
163         - integrate core change #29180: Silence VC++ compiler warnings
164           from Steve Hay
165         - do not use PL_ppaddr in stat() because that is not available
166           in Perl 5.005_04
167         - regenerate fallback/*.inc for older Perls without
168           ExtUtils::Constant because of d_hires_stat, resolves
169           [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
170         - Make Makefile.PL more defensive against false PERL_CORE
171
172 1.94    [2006-10-16]
173         - file timestamps oddities seen: the atime and mtime
174           can be out of sync (modify first and read second can leave
175           atime < mtime) and mtime can be subsecond while atime is not.
176           So make the test more forgiving.
177
178 1.93    [2006-10-15]
179         - the ualarm() tests (34-37) assumed that ualarm(N)
180           could never alarm in less than N seconds, widened
181           the acceptable relative range to 0.9..1.5.  Addresses
182           [rt.cpan.org #22090] and [rt.cpan.org #22091].
183
184         - skip the stat() tests in cygwin and win32, because
185           if run on FAT the timestamp granularity is only 2 seconds.
186           Any good way to detect (cygwin or win32) whether we are
187           being run on NTFS or anywhere with better timestamps?
188           Addresses [rt.cpan.org #22089] and [rt.cpan.org #22098].
189
190 1.92    [2006-10-13]
191         - scan for subsecond resolution timestamps in struct stat,
192           some known possibilities:
193
194           (1)  struct  timespec st_atimespec;
195                                 st_atimespec.tv_nsec;
196           (2)  time_t  st_atime;
197                long    st_atimensec;
198           (3)  time_t  st_atime;
199                int     st_atime_n;
200           (4)  timestruc_t st_atim;
201                            st_atim.tv_nsec
202           (5)  time_t  st_atime;
203                int     st_uatime;
204
205           If something like this is found, one can do
206
207             use Time::HiRes;
208             my @stat = Time::HiRes::stat();
209
210           or even override the standard stat():
211       
212             use Time::HiRes qw(stat);
213
214           to get the stat() timestamps
215
216             my ($atime, $mtime, $ctime) = @stat[8, 9, 10];
217
218           with subsecond resolution (assuming both the operating
219           system and the filesystem support that kind of thing).
220
221           Contributions for more systems (especially non-UNIX,
222           e.g. but not limited to: Win32, VMS, OS/2) gladly accepted.
223           (also more UNIX variants welcome: HP-UX? IRIX?)
224
225           Thanks to H.Merijn Brand, John Peacock, and Craig
226           Berry for brave beta testing.
227
228 1.91    [2006-09-29]
229         - ualarm() in SuSE 10.1 was overflowing after ~4.2 seconds,
230           possibly due to a glibc bug/feature (suspected overflow at
231           2**32 microseconds?), workaround by using the setitimer()
232           implementation of ualarm() if either useconds or
233           interval > 999_999 (this case seems to vary between systems:
234           are useconds more than 999_999 for ualarm() defined or not)
235           Added more ualarm() tests to catch various overflow points,
236           hopefully no problems in various platforms.
237           (The problem report by Mark Seger and Jon Paul Sullivan of HP.)
238
239 1.90    [2006-08-22]
240         - tweak still needed for Const64(), from Jerry Hedden
241         - get a freshly generated ppport.h
242         - update Copyright years
243
244 1.89    [2006-08-22]
245         - Const64() already appends an 'LL' (or i64), so provide LL and i64
246           forms for the IV_1E[679] (effects Win32 and Cygwin), reported by
247           Jerry Hedden.
248         - the Changes entry for 1.88 talked about [IN]V_1[679],
249           missing the 'E'.
250
251 1.88    [2006-08-21]
252         - clean up the g++ warnings in HiRes.xs, all of them
253           about mixing integer and floating point, introduce
254           constants IV_1E[679] and NV_1E[679]
255
256 1.87    [2006-02-13]
257         - [rt.cpan.org #17442] 'make test' frequently fails under
258           Cygwin Perl v5.8.8, reported and patched by J. R. Hedden
259           (two race condition bugs in the END block in the case the
260            main process dies before the timer process, unearthed
261            by a bug in Cygwin ualarm)
262
263 1.86    [2005-12-17]
264         - HiRes.t:s/ok 32/ok 33/, from Dominic Dunlop
265         - tighten up the clock() test marginally by requiring non-negative
266         - clock_nanosleep() and clock() doc tweaks
267
268 1.85    [2005-12-16]
269         - the interface to clock_nanosleep() is more natural
270           when it is like (hires) time() (instead of like nanosleep),
271           and the .xs implementation of clock_nanosleep() in 1.84
272           was broken anyway
273         - the semantics of clock() are not quite so silly as I thought,
274           but still somewhat odd, documented as such
275         - additional enhancements to the clock() documentation
276         - add test for clock_nanosleep() (I cannot test this
277           since none of my systems have the function)
278         - add test for clock()
279
280 1.84    [2005-12-16]
281         - add clock() which returns the processor time in
282           (floating point) seconds since an arbitrary era
283         - add clock_nanosleep() which suspends the current
284           thread until either absolute time or for relative time
285         - [rt.cpan.org #16486] printf missing value in HiRes.t
286         - add constants CLOCKS_PER_SEC, CLOCK_SOFTTIME, TIMER_ABSTIME
287         - tiny typo fixes
288
289 1.83    [2005-11-19]
290         - has_symbol() was wrong since e.g. ITIMER_VIRTUAL is exported
291           via @EXPORT_OK even when it is not available.  This is heinous.
292           @EXPORT_OK should be determined at Makefile.PL time.
293         - be more lenient is testing clock_gettime(): allow more slop,
294           and retry up to three times, sleeping a random nap between
295           the retries
296         - human months are one-based (noticed by Anton Berezin)
297
298 1.82    [2005-10-06]
299         - CLOCK_REALTIME is an enum value (of the clockid_t enum)
300           in HP-UX (and might be so elsewhere, too), debugged by
301           H. Merijn Brand
302         - include const-c.inc as late as possible (from Randy Kobes,
303           [rt.cpan.org #15552] to avoid undefined usleep() on Win32
304
305 1.81    [2005-11-05]
306         - try to be more robust and consistent in the detection of
307           CLOCK_REALTIME and ITIMER_VIRTUAL in HiRes.t: the proper
308           way is
309
310                 sub has_symbol {
311                     my $symbol = shift;
312                     eval 'import Time::HiRes qw($symbol)';
313                     return 0 unless $@ eq '';
314                     return exists ${"Time::HiRes::$symbol"};
315                 }
316
317           and then use
318
319                 &FOO_BAR
320
321           in the test.  All these moves are needed because
322
323           1) one cannot directly do eval 'Time::HiRes::FOO_BAR'
324              because FOO_BAR might have a true value of zero
325              (or in the general case an empty string or even undef)
326
327           2) In case FOO_BAR is not available in this platform,
328              &FOO_BAR avoids the bareword warning
329
330         - wait more (1.5 seconds instead of 0.1) for the CLOCK_REALTIME test
331           but expect the 'customary' slop of 0.20 instead of 0.25
332         - fixed inside a comment HAS_POLL -> TIME_HIRES_NANOSLEEP
333         - at the end of HiRest.t tell how close we were to termination
334
335 1.80    [2005-11-04]
336         - Gisle noticed a mistake (using HAS_NANOSLEEP) in 1.79
337
338 1.79    [2005-11-03]
339         - try nanosleep for emulating usleep -- may help in some weird
340           embedded realtime places which have nanosleep but neither usleep
341           nor select nor poll (doesn't have to be weird embedded realtime
342           place, though -- in many places usleep is nanosleep anyway)
343         - try poll for emulating usleep -- this may help some obscure/old
344           SVR4 places that have neither usleep nor select
345         - a redundant test guard in HiRes.t
346
347 1.78    [2005-11-03]
348         - ITIMER_VIRTUAL detection in HiRes.t had problems (that we cannot
349           in the general case fail already at 'use' phase is suboptimal)
350         - fixes to the documentation of clock_gettime() and clock_getres()
351
352 1.77    [2005-11-03]
353         - add support for the POSIX clock_gettime() and clock_getres(),
354           if available, either as library calls or as syscalls
355         - be more defensive about missing functionality: break out
356           early (during 'use') if no e.g. clock_getres() is available,
357           and protect our back by trapping those cases also in HiRes.xs
358         - the test added in 1.76 could cause an endless loop e.g. in Solaris,
359           due to mixing of sleep() and alarm() (bad programmer, no cookie!)
360
361 1.76    [2005-10-22]
362         - testing for nanosleep had wrong logic which caused nanosleep
363           to become undefined for e.g. Mac OS X
364         - added a test for a core dump that was introduced by Perl 5.8.0
365           safe signals and was fixed for the time of 5.8.1 (one report of
366           the core dump was [perl #20920]), the test skipped pre-5.8.1.
367         - *cough* s/unanosleep/nanosleep/g; *cough*
368
369 1.75    [2005-10-18]
370         - installation patch from Gisle Aas: in Perls 5.8.x and later
371           use MakeMaker INSTALLDIRS value of 'perl' instead of 'site'.
372
373 1.74    [2005-09-19]
374         - [cpan #14608] Solaris 8 perl 5.005_03 File::Spec module does not have method rel2abs
375           (the workaround is not to use rel2abs, should not be necessary)
376         - [cpan #14642] U2time wrongly exported on the C API
377           (patch supplied by the reporter, SALVA@cpan.org)
378         - add release dates to Changes
379
380 1.73    [2005-08-16]
381         - Time::HiRes::nanosleep support for Solaris [PATCH]
382           (POSIX::uname() not available if building with core perl,
383            from Gisle Aas, via perl5-porters, perl change #25295)
384
385 1.72    [2005-07-01]
386         - going back to the 1.68 loader setup (using DynaLoader)
387           since too many weird things starting breaking
388         - fix a typo in José Auguste-Etienne's name
389
390 1.71    [2005-06-28]
391         - a thinko in the nanosleep() detection
392         - move more changes stuff from the README to Changes
393         - add -w to the Makefile.PL
394
395 1.70    [2005-06-26]
396         - oops in 1.69 about @ISA (not affecting anything but silly)
397         - add copyright 2005 to HiRes.pm
398         - add copyright and license to HiRes.xs
399         - add copyrights 2003, 2004, 2005 to README
400
401 1.69    [2005-06-25]
402         - actually run a test for nanosleep
403           (if there is no $Config{d_nanosleep}) since e.g. in AIX 4.2
404           it seems that one can link in nanosleep() but then calling
405           it fails instantly and sets errno to ENOSYS (Not implemented).
406           This may be fixable in the AIX case by figuring out the right
407           (realtime POSIX?) libs and whatnot, but in the general case
408           running a real test case is better.  (Of course, this change
409           will no doubt run into portability problems because of the
410           execution step...)  Note that because of hysterical raisins
411           most Perls do NOT have $Config{d_nanosleep} (scanning for
412           it by Configure would in many platforms require linking in
413           things like -lrt, which would in many platforms be a bad idea
414           for Perl itself).
415           (from José Auguste-Etienne)
416         - support XSLoader also since it's much faster
417           (from Alexey Tourbin)
418         - add SEE ALSO (BSD::Resource and Time::TAI64)
419
420 1.68    [2005-05-14]
421         - somehow 1.67 had a lot of doubled lines (a major cut-and-paste
422           error suspected), but miraculously it still worked since the
423           doubling took place below the __END__ token
424         - undef Pause() before defining it to avoid redefinition warnings
425           during compilation in case perl.h had already defined Pause()
426           (part of perl change #24271)
427         - minor doc tweaks
428
429 1.67    [2005-05-04]
430         - (internal) don't ignore the return value of gettimeofday()
431         - (external) return undef or an empty if the C gettimeofday() fails
432           (affects Time::HiRes gettimeofday() and the hires time())
433
434 1.66    [2004-12-19]
435         - add nanosleep()
436         - fix the 'hierachy' typo in Makefile.PL [rt.cpan.org #8492]
437         - should now build in Solaris [rt.cpan.org #7165] (since 1.64)
438         - should now build in Cygwin [rt.cpan.org #7535] (since 1.64)
439         - close also [rt.cpan.org #5933] "Time::HiRes::time does not
440           pick up time adjustments like ntp" since ever reproducing it
441           (and therefore verifying a possible fix) in the same environment 
442           has become rather unlikely
443
444 1.65    [2004-09-18]
445         - one should not mix u?alarm and sleep (the tests modified
446           by 1.65, #12 and #13, hung in Solaris), now we just busy
447           loop executing an empty block
448         - in the documentation underline the unspecificity of mixing
449           sleeps and alarms
450         - small spelling fixes
451
452 1.64    [2004-09-16]
453         - regenerate ppport.h with Devel::PPPort 3.03,
454           now the MY_CXT_CLONE is defined in ppport.h,
455           we no more need to do that.
456
457         - the test #12 would often hang in sigsuspend() (at least that's
458           where Mac OS X' ktrace shows it hanging).  With the sleep()s
459           changed to sleep(1)s, the tests still pass but no hang after
460           a few hundred repeats.
461
462 1.63    [2004-09-01]
463         - Win32 and any ithread build: ppport.h didn't define
464           MY_CXT_CLONE, which seems to be a Time-HiRes-ism.
465
466 1.62    [2004-08-31]
467         - Skip testing if under PERL_CORE and Time::HiRes has not
468           been Configured (from Marcus Holland-Moritz, core change
469           #23246)
470         - Use ppport.h generated by Devel::PPPort 3.01,
471           allowing cutting away our own portability code.
472         - Don't use $ENV{PERL_CORE} for < 5.6.0.
473         - Don't use "for my $i" for <= 5.003.
474         - Don't use Pause() for <= 5.003.
475         - Can't use newSVpvf for <= 5.003.
476         (most of the changes from Marcus)
477
478 1.61    [2004-08-21]
479         - Win32: reset reading from the performance counters every
480           five minutes to better track wall clock time (thanks to
481           PC timers being often quite bad), should help long-running
482           programs.
483
484 1.60    [2004-08-15]
485         - Win32: Patch from Steve Hay
486           [PATCH] Re: [perl #30755] [Win32] Different results from Time::HiRes::gettimeofdayunder the debugger
487           to [perl #30755] reported by Nigel Sandever
488
489         - Cygwin: Use the Win32 recalibration code also in Cygwin if the
490           <w32api/windows.h> APIs are available.  Cygwin testing by
491           Yitzchak Scott-Thoennes.
492
493         - Solaris: use -lposix4 to get nanosleep for Solaris 2.6,
494           after that keep using -lrt, patch from Alan Burlison,
495           bug reported in [cpan #7165]
496
497 1.59    [2004-04-08]
498         - Change the Win32 recalibration limit to 0.5 seconds and tweak
499           the documentation to blather less about the gory details of the
500           Win32 implementation and more about the complications in general
501           of meddling with the system clock.
502
503 1.58    [2004-04-08]
504         - Document the 1.57 change better.
505
506 1.57    [2004-07-04]
507         - Win32/Cygwin/MinGW: if the performance counter drifts by more
508           than two seconds from the system clock (due to ntp adjustments,
509           for example), recalibrate our internal counter: from Jan Dubois,
510           based on [cpan #5933] by Jerry D. Hedden.
511
512 1.56    [2004-29-02]
513         - Give a clearer message if the tests timeout (perl change #22253)
514         - Don't use /tmp or its moral equivalents (perl bug #15036,
515           perl change #22258)
516
517 1.55    [2004-01-14]
518         - Windows: mingw32 patch from Mike Pomraning (use Perl's Const64()
519           instead of VC-specific i64 suffix)
520
521 1.54    [2003-12-31]
522         - Solaris: like Tru64 (dec_osf) also Solaris need -lrt for nanosleep
523
524 1.53    [2003-12-30]
525         - Windows: higher resolution time() by using the Windows
526           performance counter API, from Jan Dubois and Anton Shcherbinin.
527           The exact new higher resolution depends on the hardware,
528           but it should be quite a bit better than using the basic
529           Windows timers.
530
531 1.52    [2003-10-28]
532         - In AIX (v?) with perl 5.6.1 the HiRes.t can hang after
533           the subtest 18.  No known analysis nor fix, but added
534           an alarm (that requires fork() and alarm()) to the test.
535
536 1.51    [2003-09-22]
537         - doc tweaks from mjd (perl change #20456)
538         - NCR MP-RAS hints file added (svr4.pl) (perl change #21249)
539
540 1.50    [2003-08-02]
541         - add a message (for non-core builds) to Makefile.PL about
542           the LC_ALL=C workaround
543         - &Time::HiRes::d_nanosleep was broken (perl change #20131)
544         - the nanosleep() probe was broken (perl change #20061)
545         - use existence instead of definedness for feature probes
546           (perl change #20043)
547         - MPE/iX tweak (perl change #20042)
548         - do not use HAS_NANOSLEEP (perl change #19898)
549
550 1.49    [2003-06-23]
551         - UVuf for non-IVSIZE platforms (from Keiichiro Nagano)
552         - OS/2 can always mix subsecond sleeps with signals
553           (part of perl change #19789)
554
555 1.48    [2003-06-04]
556         - workaround for buggy gcc 2.95.3 in openbsd/sparc64
557           (perl change #19592)
558
559 1.47    [2003-05-03]
560         - do not use -lrt in Linux (from March Lehmann, perl change #19449)
561                 - unnecessary (nanosleep is in libc anyway)
562                 - harmful (-lrt slows down execution)
563                 - incompatible (with many distributions' pthreads)
564
565 1.46    [2003-04-25]
566         - do not create files in blib directories under core
567           (perl change #19160, from rgs)
568         - detypo s/VTLARM/VTARLM/ (perl change #19328, from mjd)
569
570 1.45    [2003-04-01]
571         - guarantee that $xdefine in HiRes.t is always defined
572           (perl change #19109, from IlyaZ)
573         - a cleaner way to detect PERL_CORE (perl change #19111,
574           from IlyaZ)
575
576 1.44    [2003-03-30]
577         - add hints/irix.pl to turn off overly POSIX flags that
578           cause hide struct timespec to be hidden (and compilation
579           to fail) (bleadperl change #19085)
580         - documentation tweaks
581
582 1.43    [2003-03-11]
583         - add c:/temp to the list of temp directories to probe
584           so that cygwin (and win*?) builds are happy.  This was
585           needed at least in my cygwin 1.3.20/w2k setup.
586
587 1.42    [2003-01-07]
588         - modernize the constants code (from Nicholas Clark)
589
590 1.41    [2003-01-03]
591         - At some point the ability to figure our the correct incdir
592           for EXTERN.h (either a core perl build, or an installed perl)
593           had broken (which lead into all test compiles failing with
594           a core perl build, but thanks to the robustness of Makefile.PL
595           nothing of this was visible).  The brokenness seemed to be
596           caused by $ENV{PERL_CORE} not being on for core builds?
597           Now stole a trick from the Encode that sets $ENV{PERL_CORE}
598           right, and both styles of build should work again.
599
600 1.40    [2003-01-03]
601         - Nicholas Clark noticed that the my_catdir() emulation function
602           was broken (which means that we didn't really work for Perls
603           5.002 and 5.003)
604         - inspired by fixing the above made the whole Makefile.PL -w
605           and strict clean
606         - tightened up the Makefile.PL output, less whitespace
607
608 1.39    [2003-10-20]
609         - fix from Craig Berry for better building in VMS with PERL_CORE
610
611 1.38    [2003-10-13]
612         - no functional changes
613         - move lib/Time/HiRes.pm as Hires.pm
614         - libraries scanning was slightly broken (always scanned
615           for a library even when $Config{libs} already had it)
616
617 1.37    [2003-09-23]
618         - Ray Zimmerman ran into a race condition in Mac OS X.
619           A 0.01-second alarm fired before the test expected.
620           The test first slept indefinitely (blocking for signals)
621           and only after that tested for the signal having been sent.
622           Since the signal had already been sent, the test #12 never
623           completed.  The solution: test first, then block.
624         - default to being silent on all probing attempts, set the
625           environment variable VERBOSE to a true value to see the
626           details (the probing command and the possible errors)
627
628 1.36    [2003-09-12]
629         - do not clear MAN3PODS in Makefile.PL (Radoslaw Zielinski)
630         - INSTALLDIRS => 'perl' missing which means that Time::HiRes
631           cannot be upgraded from CPAN to override the 5.8.0 version
632           (Guido A. Ostkamp)
633         - Time::HiRes 1.35 could not be dropped as-is to bleadperl
634           because the include directories did not adjust themselves
635           if $ENV{PERL_CORE} (Hugo van der Sanden)
636         - add documentation about the restart of select() under alarm()
637
638 1.35    [2003-08-24]
639         - small documentation tweaks
640
641
642 1.34    [2003-08-22]
643         - better VMS operation (Craig Berry)
644
645 1.33    [2003-08-20]
646         - our time machine is accelerating: now works with Perl 5.004_01
647           (tried with 5.003_07 and 5.002 but I get segmentation faults
648            from running the Makefile.PL with those in Tru64 4.0D)
649
650 1.32    [2003-08-20]
651         - backward compatibility (pre-5.6.0) tweaks:
652           - no XSLoader in 5.00503, use DynaLoader instead
653           - no SvPV_nolen, either
654           - no PerlProc_pause(), either
655           - now tested with 5.00404 and 5.00503
656           - Makefile.PL requires 5.00404 (no more 5.002)
657         - use nanosleep instead of usleep, if it is available (Wilson Snyder)
658           (this means that one can mix subsecond sleeps with alarms)
659         - because of nanosleep we probe for -lrt and -lposix4
660         - the existence of getitimer/nanosleep/setitimer/ualarm/usleep
661           is available by exportable constants Time::HiRes::d_func
662           (since older Perl do not have them in %Config, and even
663            5.8.0 does not probe for nanosleep)
664
665 1.31    [2003-08-19]
666         - backward compatibility (pre-5.6.1) tweaks:
667           - define NV if no NVTYPE
668           - define IVdf if needed (note: the Devel::PPPort
669             in 5.8.0 does not try hard hard enough since
670             the IVSIZE might not be defined)
671           - define NVgf if needed
672           - grab the typemap from 5.8.0 for the NV stuff
673
674         1.31 and 1.32 add more backward compatibility (now all the way
675         back to Perl 5.00404), and using nanosleep() (if available) for
676         subsecond sleeps.
677
678 1.30    [2003-08-16]
679
680         - release 1.29_02 as 1.30
681
682         1.30 adds all the changes made during the Perl 5.6->5.7->5.8
683         development cycle.  Most notably portability across platforms has been
684         enhanced, and the interval timers (setitimer, getitimer) have been
685         added.  Note that the version of Time::HiRes that is included in Perl
686         5.8.0 calls itself 1.20_00, but it is equivalent to this Time::HiRes
687         version.  Note also that in 1.30 Wegscheid turns over the maintenance
688         to Jarkko Hietaniemi.
689
690 1.29_02 [2003-08-16]
691
692         - fix a silly unclosed comment typo in HiRes.xs
693         - document and export REALTIME_REALPROF (Solaris)
694
695 1.29_01 [2003-08-16]
696
697         - only getitimer(ITIMER_REAL) available in Cygwin and Win32
698           (need to patch this also in Perl 5.[89])
699         - remove CVS revision log from HiRes.xs
700
701 1.29_00 [2003-08-14]
702
703         The following numbered patches refer to the Perl 5.7 changes,
704         you can browse them at http://public.activestate.com/cgi-bin/perlbrowse
705
706         - 17558: Add #!./perl to the .t
707         - 17201: linux + usemorebits fix, from Rafael Garcia-Suarez
708         - 16198: political correctness, from Simon Cozens
709         - 15857: doc tweaks, from Jarkko Hietaniemi
710         - 15593: optimization in .xs, from Paul Green
711         - 14892: pod fixes, from Robin Barker
712         - 14100: VOS fixes, from Paul Green
713         - 13422: XS segfault, from Marc Lehmann
714         - 13378: whether select() gets restarted on signals, depends
715         - 13354: timing constraints, again, from Andy Dougherty
716         - 13278: can't do subsecond alarms with ualarm;
717                  break out early if alarms do not seem to be working
718         - 13266: test relaxation (cygwin gets lower hires
719                  times than lores ones)
720         - 12846: protect against high load, from Jarkko Hietaniemi
721         - 12837: HiRes.t VMS tweak, from Craig A. Berry
722         - 12797: HiRes.t VMS tweak, from Charles Lane
723         - 12769: HiRes.t VMS tweak, from Craig A. Berry
724         - 12744: gcc vs MS 64-bit constant syntax, from Nick Ing-Simmons
725         - 12722: VMS ualarm for VMS without ualarm, from Charles Lane
726         - 12692: alarm() ain't gonna work if ualarm() ain't,
727                  from Gurusamy Sarathy
728         - 12680: minor VMS tweak, from Charles Lane
729         - 12617: don't try to print ints as IVs, from Jarkko Hietaniemi
730         - 12609: croak on negative time, from Jarkko Hietaniemi
731         - 12595: Cygwin rounds up for time(), from Jarkko Hietaniemi
732         - 12594: MacOS Classic timeofday, from Chris Nandor 
733         - 12473: allow for more than one second for sleep() and usleep()
734         - 12458: test tuning, relax timing constraints,
735                  from Jarkko Hietaniemi
736         - 12449: make sleep() and usleep() to return the number
737                  of seconds and microseconds actually slept (analogously
738                  with the builtin sleep()), also make usleep() croak if
739                  asked for more than 1_000_000 useconds, from Jarkko Hietaniemi
740         - 12366: Time::HiRes for VMS pre-7.0, from Charles Lane
741         - 12199: do not use ftime on Win32, from Gurusamy Sarathy
742         - 12196: use ftime() on Win32, from Artur Bergman
743         - 12184: fix Time::HiRes gettimeofday() on Win32, from Gurusamy Sarathy
744         - 12105: use GetSystemTime() on Win32, from Artur Bergman
745         - 12060: explain the 1e9 seconds problem, from Jarkko Hietaniemi
746         - 11901: UNICOS sloppy division, from Jarkko Hietaniemi
747         - 11797: problem in HiRes.t, from John P. Linderman
748         - 11414: prototype from Time::HiRes::sleep(), from Abhijit Menon-Sen
749         - 11409: Time::HiRes qw(sleep) failed, from Abhijit Menon-Sen
750         - 11270: dynix/ptx 4.5.2 hints fix, from Peter Prymmer 
751         - 11032: VAX VMS s/div/lib\$ediv/ fix, from Peter Prymmer
752         - 11011: VAX VMS s/qdiv/div/ fix, from Peter Prymmer
753         - 10953: SCO OpenServer 5.0.5 requires an explicit -lc for usleep(),
754                  from Jonathan Stowe
755         - 10942: MPE/IX test tweaks, from Mark Bixby
756         - 10784: unnecessary pod2man calls, from Andy Dougherty 
757         - 10354: ext/ + -Wall, from Doug MacEachern
758         - 10320: fix the BOOT section to call myU2time correctly
759         - 10317: correct casting for AIX< from H. Merijn Brand
760         - 10119: document that the core time() may be rounding, not truncating
761         - 10118: test fix, from John Peacock
762         -  9988: long =item, from Robin Barker
763         -  9714: correct test output
764         -  9708: test also the scalar aspect of getitimer()
765         -  9705: Add interval timers (setitimer, getitimer)
766         -  9692: do not require at least 5.005 using XS
767                  
768         The following changes were made on top of the changes
769         made for Time::HiRes during the Perl 5.7 development
770         cycle that culminated in the release of Perl 5.8.0. 
771
772         - add "require 5.005" to the Makefile.PL
773         - remove the REVISION section (CVS log) from HiRes.pm
774         - add jhi's copyright alongside Douglas'
775         - move HiRes.pm to lib/Time/
776         - move HiRes.t to t/
777         - modify HiRes.t to use $ENV{PERL_CORE}
778         - modify the original Time::HiRes version 1.20 Makefile.PL
779           to work both with Perl 5.8.0 and the new code with pre-5.8.0
780           Perls (tried with 5.6.1)
781         - tiny tweaks and updates in README and TODO
782         - bump the VERSION to 1.29
783
784 1.20  Wed Feb 24 21:30 1999
785         - make our usleep and ualarm substitutes into hrt_usleep 
786           and hrt_ualarm. This helps static links of Perl with other
787           packages that also have usleep, etc. From
788           Ilya Zakharevich <ilya@math.ohio-state.edu>
789         - add C API stuff. From Joshua Pritikin
790           <joshua.pritikin@db.com>
791         - VMS Makefile.PL fun.  From pvhp@forte.com (Peter Prymmer)
792         - hopefully correct "-lc" fix for SCO.
793         - add PPD stuff
794
795         1.20 adds a platform neutral set of C accessible routines if you are
796         running 5.005+.  All other changes are packaging changes and build
797         fixes(?) for statically linked Perl, SCO, and VMS.
798
799 1.19  Tue Sep 29 22:30 1998
800         - put VMS gettimeofday() in. Patch is from Sebastian Bazley
801           <seb@stian.demon.co.uk>
802         - change GIMME_V to GIMME to help people with older versions of
803           Perl.
804         - fix Win32 version of gettimeofday(). It didn't affect anything,
805           but it confuses people reading the code when the return value
806           is backwards (0 is success).
807         - fix Makefile.PL (more) so that detection of gettimeofday is
808           more correct.
809
810         1.19 has better VMS support.
811
812 1.18  Mon Jul 6 22:40 1998
813         - add usleep() for Win32.
814         - fix Makefile.PL to fix reported HP/UX feature where unresolved
815           externals still cause an executable to be generated (though no
816           x bit set). Thanks to David Kozinn for report and explanation.
817           Problems with the fix are mine :)
818
819         1.18 has limited Win32 support (no ualarm). Added usleep for Win32.
820         Probably buggy. I'm sure I'll hear.
821
822 1.17  Wed Jul 1 20:10 1998
823         - fix setitimer calls so microseconds is not more than 1000000.
824           Hp/UX 9 doesn't like that. Provided by Roland B Robert, PhD.
825         - make Win32. We only get gettimeofday (the select hack doesn't
826           seem to work on my Win95 system).
827         - fix test 4 on 01test.t. add test to see if time() and 
828           Time::HiRes::time() are close.
829
830 1.16  Wed Nov 12 21:05 1997
831         - add missing EXTEND in new gettimeofday scalar code.
832
833         1.16+ should be closer to building out of the box on Linux. Thanks
834         to Gisle Aas for patches, and the ualarm equivalent using setitimer.
835
836         If your underlying operating system doesn't implement ualarm(), then
837         a fake using setitimer() will be made.  If the OS is missing usleep(),
838         a fake one using select() will be made. If a fake can't be made for
839         either ualarm() or usleep(), then the corresponding Perl function will
840         not be available.  If the OS is missing gettimeofday(), you will get
841         unresolved externals, either at link- or run-time.
842
843         This is an improvement; the package used to not even build if
844         you were missing any of these bits. Roderick Schertler
845
846         <roderick@argon.org> did all the conditional compilation stuff,
847         look at HiRes.pm and the test suites; it's good educational reading.
848
849 1.15  Mon Nov 10 21:30 1997
850         - HiRes.pm: update pod. Provided by Gisle Aas.
851         - HiRes.xs: if gettimeofday() called in scalar context, do
852           something more useful than before. Provided by Gisle Aas.
853         - README: tell of xsubpp '-nolinenumber' woes. thanks to
854           Edward Henigin <ed@texas.net> for pointing out the problem.
855
856 1.14  Wed Nov 5 9:40 1997
857         - Makefile.PL: look for setitimer
858         - HiRes.xs: if missing ualarm, but we have setitimer, make up
859           our own setitimer. These were provided by Gisle Aas.
860
861 1.13  Tue Nov 4 23:30 1997
862         - Makefile.PL: fix autodetect mechanism to do try linking in addition
863           to just compiling; should fix Linux build problem. Fix was provided
864           by Gisle Aas.
865
866 1.12  Sun Oct 12 12:00:00 1997
867         - Makefile.PL: set XSOPT to '-nolinenumbers' to work around xsubpp bug;
868           you may need to comment this back out if you have an older xsubpp.
869         - HiRes.xs: set PROTOTYPES: DISABLE
870
871 1.11  Fri Sep 05 16:00:00 1997
872         - Makefile.PL:
873           Had some line commented out that shouldn't have been (testing
874           remnants)
875         - README:
876           Previous version was corrupted.
877
878 1.10  Thu May 22 20:20:00 1997
879         - HiRes.xs, HiRes.pm, t/*:
880               - only compile what we have OS support for (or can 
881                 fake with select())
882               - only test what we compiled 
883               - gross improvement to the test suite
884               - fix EXPORT_FAIL. 
885           This work was all done by Roderick Schertler
886           <roderick@argon.org>. If you run Linux or
887           one of the other ualarm-less platforms, and you like this 
888           module, let Roderick know; without him, it still wouldn't 
889           be working on those boxes...
890         - Makefile.PL: figure out what routines the OS has and
891           only build what we need. These bits were written by Jarkko 
892           Hietaniemi <jhi@iki.fi>. Again, gratitude is due...
893
894 1.02  Mon Dec 30 08:00:00 1996
895         - HiRes.pm: update documentation to say what to do when missing
896           ualarm() and friends.
897         - README: update to warn that ualarm() and friends need to exist
898
899 1.01  Fri Oct 17 08:00:00 1996
900         - Makefile.PL: make XSPROTOARGS => '-noprototyopes'
901         - HiRes.pm: put blank line between __END__ and =head1 so that 
902           pod2man works.
903
904 1.00  Tue Sep 03 13:00:00 1996
905         - original version; created by h2xs 1.16