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