xref: /openbsd-src/gnu/usr.bin/perl/dist/Time-HiRes/Changes (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
1b8851fccSafresh1Revision history for the Perl extension Time::HiRes.
2b8851fccSafresh1
3b46d8ef2Safresh1{{NEXT}}
4b46d8ef2Safresh1
5eac174f2Safresh1 - Remove obsolete vms code
6eac174f2Safresh1 - Use core version compare
7e0680481Safresh1 - Use GIMME_V instead of the deprecated GIMME
8e0680481Safresh1 - t/utime.t: dragonflybsd has only microsecond precision
9e0680481Safresh1 - t/utime.t: dragonflybsd is noatime by default
10e0680481Safresh1 - t/stat.t: skip testing access times on HaikuOS, it doesn't support
11e0680481Safresh1   atime
12e0680481Safresh1 - darwin: make sure the compiler can find the system perl headers
13e0680481Safresh1   https://github.com/Perl/perl5/issues/20362
14e0680481Safresh1 - darwin: make sure PERL_DARWIN is defined on darwin.
15e0680481Safresh1 - don't compare stat and lstat atime if PERL_FILE_ATIME_CHANGES is set in
16e0680481Safresh1   the environment.
17e0680481Safresh1   https://github.com/Perl/perl5/issues/19321
18e0680481Safresh1 - don't use C++ guards around the perl header files, it caused C++
19e0680481Safresh1   build failures with MSVC.
20*3d61058aSafresh1 - don't try to suppress C++ compatibility warnings in C++ builds, since
21*3d61058aSafresh1   that warns.
22eac174f2Safresh1
23eac174f2Safresh11.9764 [2020-08-10]
24eac174f2Safresh1 - Fix a bunch of repeated-word typos
25eac174f2Safresh1 - Fix compilation with Visual C++ 2013 and older
26eac174f2Safresh1 - Implement clock_gettime() and clock_getres() for win32
27eac174f2Safresh1 - Remove workaround for an ancient Devel::PPPort bug
28eac174f2Safresh1 - Remove the remains of MacOS classic support
29eac174f2Safresh1 - Remove code for perls older than 5.6
30eac174f2Safresh1 - Remove vestiges of mpeix support (removed in 5.17.x)
31eac174f2Safresh1 - Remove trailing blanks
32eac174f2Safresh1 - Add links to pod
33eac174f2Safresh1
34b46d8ef2Safresh11.9760 [2019-02-18]
35b46d8ef2Safresh1 - make utime() available only if we have both fd and name setting
36b46d8ef2Safresh1   [RT #133030]
37b46d8ef2Safresh1 - Adjutst Makefile.PL for windows: the DEFINE() in Makefile.PL
3856d68f1eSafresh1   can't be in sub init() because that sub isn't called on windows
39b46d8ef2Safresh1 - t/itimer.t: avoid race condition.
40b46d8ef2Safresh1 - don't truncate nanosec utime
41b46d8ef2Safresh1 - fallback/const-c.inc: Avoid compiler warning showing up on darwin.
42b46d8ef2Safresh1
439f11ffb7Safresh11.9759 [2018-03-23]
449f11ffb7Safresh1 - This version reverts the changes on CPAN that were included in 1.9754 - 1.9758.
459f11ffb7Safresh1   Several of these changes caused instability on some windows platforms. We can
469f11ffb7Safresh1   revisit these fixes if necessary in Perl 5.29.0
479f11ffb7Safresh1
48b46d8ef2Safresh11.9758 [2018-03-21]
49b46d8ef2Safresh1 - fix build in Win32 with Visual C by introducing a fake struct timezone
50b46d8ef2Safresh1   [rt.cpan.org #124844]
51b46d8ef2Safresh1 - in utime.t detect better being run in a noatime filesystem,
52b46d8ef2Safresh1   and if so, skip the test (for the HAMMER filesystem of DragonflyBSD)
53b46d8ef2Safresh1 - also for the HAMMER fs (if not in noatime), lower the expected subsecond
54b46d8ef2Safresh1   timestamp granularity to microseconds
55b46d8ef2Safresh1 - fix the version number typo in Changes: 1.9577 -> 1.9757
56b46d8ef2Safresh1
57b46d8ef2Safresh11.9757 [2018-03-15]
58b46d8ef2Safresh1 - fix win32 (and cygwin?) builds which have been broken since 1.9755:
59b46d8ef2Safresh1   problem was that gettimeofday() is a macro and needs to stay such
60b46d8ef2Safresh1 - regenerate ppport.h with Perl 5.26.1 (was previously generated with
61b46d8ef2Safresh1   5.25.6) and Devel::PPPort 3.35 (previously 3.36) -- this doesn't
62b46d8ef2Safresh1   change the ppport.h, though
63b46d8ef2Safresh1
64b46d8ef2Safresh11.9756 [2018-03-14]
65b46d8ef2Safresh1 - division by zero in new test tv_interval.t [rt.cpan.org #124775]:
66b46d8ef2Safresh1   made the test pass even if the difference is zero, but also
67b46d8ef2Safresh1   made it practically impossible to ever be zero by adding
68b46d8ef2Safresh1   a sub-second sleep.
69b46d8ef2Safresh1 - remove comments from inside qw [rt.cpan.org #124777],
70b46d8ef2Safresh1   only seemed to be caught by Perl 5.18.4
71b46d8ef2Safresh1
72b46d8ef2Safresh11.9755 [2018-03-14]
73b46d8ef2Safresh1 - adjust the error messages of tv_interval()
74b46d8ef2Safresh1 - the NV_1EX constants now cast to be NV so that
75b46d8ef2Safresh1   tv_interval() with long double builds does not
76b46d8ef2Safresh1   produce ugly results [rt.cpan.org #106456]
77b46d8ef2Safresh1 - add tests for tv_interval()
78b46d8ef2Safresh1 - centralize the mygettimeofday() logic
79b46d8ef2Safresh1 - make the mygettimeofday() a function instead of macro
80b46d8ef2Safresh1 - add the OS X 10.12+ clock_gettime() constants
81b46d8ef2Safresh1   CLOCK_MONOTONIC_RAW_APPROX CLOCK_UPTIME_RAW_APPROX
82b46d8ef2Safresh1 - regenerate the fallback files
83b46d8ef2Safresh1
84b46d8ef2Safresh11.9754 [2018-02-16]
85b46d8ef2Safresh1 - unify the gettimeofday() and time() forked code
86b46d8ef2Safresh1   that had near identical code paths for MacOS Classic
87b46d8ef2Safresh1   (which has two unusual features: unsigned time_t,
88b46d8ef2Safresh1   and a special tz struct member), and for non-MacOS Classic
89b46d8ef2Safresh1 - tv_interval should be implemented in XS
90b46d8ef2Safresh1   [rt.cpan.org #106456]
91b46d8ef2Safresh1   thanks to Sergey Aleynikov (suggested implementation simplified
92b46d8ef2Safresh1   by the above-mentioned MacOS Classic simplification)
93b46d8ef2Safresh1
949f11ffb7Safresh11.9753 [2018-01-11]
959f11ffb7Safresh1 - in t/clock.t in a fast system we need to burn more CPU,
969f11ffb7Safresh1   reported and fix suggested by Joel C. Maslak <jmaslak@antelope.net>
979f11ffb7Safresh1   [rt.cpan.org #124025]
989f11ffb7Safresh1 - for t/utime.t in netbsd we need /sbin in PATH to find the mount command,
999f11ffb7Safresh1   this is needed for the fix in 1.9751 to actually help netbsd with noatime
1009f11ffb7Safresh1   mounts.
1019f11ffb7Safresh1   (thanks to Nigel Horne)
1029f11ffb7Safresh1
1039f11ffb7Safresh11.9752 [2018-01-04]
1049f11ffb7Safresh1 - fix an error in the error message of utimensat() not available:
1059f11ffb7Safresh1   it said futimens() not available
1069f11ffb7Safresh1 - add --force alias for Makefile.PL --configure
1079f11ffb7Safresh1
1089f11ffb7Safresh11.9751 [2018-01-02]
1099f11ffb7Safresh1 - in macOS/OSX/Darwin, use __has_builtin() check also for utimensat(),
1109f11ffb7Safresh1   can cause errors like
1119f11ffb7Safresh1   "HiRes.xs:1474:16: error: unrecognized platform name macOS"
1129f11ffb7Safresh1   [rt.cpan.org #123994]
1139f11ffb7Safresh1   (oversight from 1.9749)
1149f11ffb7Safresh1 - do not define TIME_HIRES_STAT/d_hires_stat if none was found, instead
1159f11ffb7Safresh1   of defining it to be zero, which case has no implementation in hrstatns()
1169f11ffb7Safresh1   (thanks to Nigel Horne)
1179f11ffb7Safresh1 - in t/utime.t try to divine if the filesystem of the tempfiles has been
1189f11ffb7Safresh1   mounted with the 'noatime' option, which can prohibit updating the
1199f11ffb7Safresh1   access time timestamp.  Also document this in HiRes.pm.
1209f11ffb7Safresh1   (thanks to Nigel Horne, original analysis by Slaven Rezic)
1219f11ffb7Safresh1 - synchronize the constant lists in HiRes.pm:@EXPORT_OK
1229f11ffb7Safresh1   and Makefile.PL:doConstants and regenerate fallback/const-c.inc
1239f11ffb7Safresh1   and fallback/const-xs.inc, this fixes Perl 5.6.2 issue with
1249f11ffb7Safresh1   d_futimens not allegedly being a valid macro in t/utime.t
1259f11ffb7Safresh1   (using Perl 5.26.1 for the regenerating, not 5.6.2)
1269f11ffb7Safresh1   (thanks to Nigel Horne)
1279f11ffb7Safresh1 - in t/utime.t define a nop sub done_testing for ancient Perls
1289f11ffb7Safresh1   (like Perl 5.6.2)
1299f11ffb7Safresh1 - in Perl 5.6.2 a bogus warning
1309f11ffb7Safresh1   "Use of uninitialized value in subroutine entry"
1319f11ffb7Safresh1   is issued from t/alarm.t: add a comment documenting that
1329f11ffb7Safresh1
1339f11ffb7Safresh11.9750 [2017-12-22]
1349f11ffb7Safresh1 - update META.yml and META.json for XSLoader instead of DynaLoader
1359f11ffb7Safresh1   [rt.cpan.org #123933]
1369f11ffb7Safresh1
1379f11ffb7Safresh11.9749 [2017-12-21]
1389f11ffb7Safresh1 - CPAN release
1399f11ffb7Safresh1 - Quieten Time-HiRes test noise: blead 0f009486
1409f11ffb7Safresh1 - Switch some core modules to XSLoader: blead b9a5a78f [rt.cpan.org #129789]
1419f11ffb7Safresh1 - disable a flapping test for CI: blead cd2a978d
1429f11ffb7Safresh1 - Avoid newGVgen in blead-upstream modules: blead 732d3893
1439f11ffb7Safresh1 - Declaration after statement in typemap: blead d269f586
1449f11ffb7Safresh1 - semicolon-friendly diagnostic control: blead 7347ee54
1459f11ffb7Safresh1 - in macOS (OS X) check properly in runtime whether futimens()
1469f11ffb7Safresh1   and utimensat() are available
1479f11ffb7Safresh1
1489f11ffb7Safresh11.9748 [2017-12-16]
1499f11ffb7Safresh1 - bleadperl only
1509f11ffb7Safresh1 - semicolon-friendly diagnostic control: blead 7347ee54
1519f11ffb7Safresh1
1529f11ffb7Safresh11.9747 [2017-09-13]
1539f11ffb7Safresh1 - bleadperl only
1549f11ffb7Safresh1 - Switch some core modules to XSLoader: blead b9a5a78f [rt.cpan.org #129789]
1559f11ffb7Safresh1
1569f11ffb7Safresh11.9746 [2017-08-17]
1579f11ffb7Safresh1 - Unreliable t/usleep.t and t/utime.t tests [rt.cpan.org #122819]
1589f11ffb7Safresh1   Avoid testing for $dt = $t2 - $t1 and assuming $dt is less than
1599f11ffb7Safresh1   some value since a heavily loaded machine can delay the $t2.
1609f11ffb7Safresh1   Testing for greater than is fine.
1619f11ffb7Safresh1 - Tweak the configuring messages about subsecond stat/utime.
1629f11ffb7Safresh1
1639f11ffb7Safresh11.9745 [2017-08-14]
1649f11ffb7Safresh1  - Properly check for futimens/utimensat actually doing something.
1659f11ffb7Safresh1    This should handle 'gnukfreebsd' (which has only stubs, so far
1669f11ffb7Safresh1    we have been skipping the test) and as a new thing 'gnu' (Hurd)
1679f11ffb7Safresh1    (also only stubs).  Thanks to Nigel Horne.
1689f11ffb7Safresh1  - Scan in t/utime.t whether the filesystem (wherever File::Temp
1699f11ffb7Safresh1    puts it tempfiles) supports subsecond timestamps.  This removes
1709f11ffb7Safresh1    the fragile Linux/ext3 specific hack.  As a side effect, the
1719f11ffb7Safresh1    setting of subsecond timestamps is tested only if reading of
1729f11ffb7Safresh1    them is supported.  Thanks to Carsten Gaebler for the test idea,
1739f11ffb7Safresh1    and Ryan Voots for testing.
1749f11ffb7Safresh1
1759f11ffb7Safresh11.9744 [2017-07-27]
1769f11ffb7Safresh1  - add more potential clock constants, like CLOCK_MONOTONIC_FAST
1779f11ffb7Safresh1    (available in FreeBSD), and not all potentially found clock
1789f11ffb7Safresh1    constants were properly exported to be available from Perl,
1799f11ffb7Safresh1    see your system's clock_gettime() documentation for the available ones
1809f11ffb7Safresh1
1819f11ffb7Safresh11.9743 [2017-07-20]
1829f11ffb7Safresh1  - correct declared minimum Perl version (should be 5.6, was declared
1839f11ffb7Safresh1    as 5.8 since 1.9727_03): blead af94b3ac
1849f11ffb7Safresh1  - fix the fix for 'do file' to load hints in Makefile.PL: blead 3172fdbc
1859f11ffb7Safresh1
1869f11ffb7Safresh11.9742 [2017-04-16]
1879f11ffb7Safresh1  - prefer 3-argument open: blead 1ae6ead9
1889f11ffb7Safresh1  - fix dist/Time-HiRes/t/*.t that assumed '.' in @INC: blead 465db51d
1899f11ffb7Safresh1  - fix cases where 'do file' should be 'do ./file'.: blead 8b69401c
1909f11ffb7Safresh1
191dcce7324Safresh11.9741 [2016-11-20]
192dcce7324Safresh1  - C++11 compatibility: blead a914236c
193dcce7324Safresh1  - El Capitan compatibility: blead 45bbc013
194dcce7324Safresh1  - use CLOCK_REALTIME for clock_nanosleep scan: blead 56ed632c
195dcce7324Safresh1  - include file consistency in scans: blead 605b4dbe
196dcce7324Safresh1  - use clockid_t consistently: blead 2979fdf3
197dcce7324Safresh1  - use hv_fetchs(): blead 07e4dd7a
198dcce7324Safresh1  - scan for clockid_t (needed for macos Sierra): blead 69d1f2c2
199dcce7324Safresh1  - darwin lacks clockid_t: blead d1e7b5aa
200dcce7324Safresh1    [rt.cpan.org #129789]
201dcce7324Safresh1  - provide template for tempfile: blead 91dca83e
202dcce7324Safresh1  - explicit cast for clockid_t in C++11: blead 1c566547
203dcce7324Safresh1  - upgrade to a newer ppport (3.35)
204dcce7324Safresh1
205dcce7324Safresh11.9740 [2016-09-25]
206dcce7324Safresh1  - the ext3/ext2 filesystems do not have subsecond resolution,
207dcce7324Safresh1    therefore skip the t/utime.t test
208dcce7324Safresh1    [rt.cpan.org #116127]
209dcce7324Safresh1
210dcce7324Safresh11.9739 [2016-06-28]
211dcce7324Safresh1  - the upcoming macOS 10.12 (Sierra, the operating system formerly
212dcce7324Safresh1    known as OS X, or Darwin) has implemented the clock_gettime()
213dcce7324Safresh1    and clock_getres() interfaces but not the clock_nanosleep()
214dcce7324Safresh1
215dcce7324Safresh11.9738 [2016-06-26]
216dcce7324Safresh1  - fix the dates in the Changes, it's not July yet
217dcce7324Safresh1    [rt.cpan.org #115553]
218dcce7324Safresh1  - in cygwin, drop the utime.t expected timestamp resolution
219dcce7324Safresh1  - documented for utime that the actual timestamp resolution depends
220dcce7324Safresh1    on the operating system and the filesystem, just like for stat
221dcce7324Safresh1  - looks like in gnukfreebsd 10.1 neither futimens or utimensat work
222dcce7324Safresh1    even though they exist, skipping utime tests there for now
223dcce7324Safresh1  - demodernize the Test::More use in utime.t (no subtest) to
224dcce7324Safresh1    better support older Perl installations
225dcce7324Safresh1  - for all the tests, drop the Test::More 0.82 requirement,
226dcce7324Safresh1    the only "modern" thing used is the note routine which
227dcce7324Safresh1    can be replaced with print("# ...\n") (or printf),
228dcce7324Safresh1    with this works back at least with Test::More 0.54 (perl 5.8.7)
229dcce7324Safresh1
230dcce7324Safresh11.9737 [2016-06-22]
231dcce7324Safresh1  - utime in HiRes.xs had dXSARGS which was unnecessary, leading
232dcce7324Safresh1    to two markstack pops, panic, and two-minute wait for the watchdog
233dcce7324Safresh1    (thanks to Dave Mitchell for the eagle-eye)
234dcce7324Safresh1  - even though 5.10.x should have the Perl_ck_warner, many CPAN
235dcce7324Safresh1    smokes proved otherwise, so requiring now at least 5.12 for
236dcce7324Safresh1    Perl_ck_warner use in IS_SAFE_PATHNAME()
237dcce7324Safresh1
238dcce7324Safresh11.9736 [2016-06-22]
239dcce7324Safresh1  - the IS_SAFE_PATHNAME() emulation was too modern for Perl 5.10
240dcce7324Safresh1  - make it so that only one value is set for -DTIME_HIRES_STAT
241dcce7324Safresh1    even on systems that support many options
242dcce7324Safresh1  - the 1.9734 (only released in blead, and as part of the development
243dcce7324Safresh1    release 5.25.2) fix for Darwin's clock_gettime was wrong under
244dcce7324Safresh1    threaded builds, leading into mutex panics in clock.t
245dcce7324Safresh1  - the d_hires_utime determination was made more precise
246dcce7324Safresh1  - the utime.t was failing in platforms where only one of
247dcce7324Safresh1    futimens/utimensat was present (neither or both was okay)
248dcce7324Safresh1
249dcce7324Safresh11.9735 [2016-06-20]
250dcce7324Safresh1  - Time::HiRes should override `utime` to allow setting hires
251dcce7324Safresh1    (futimens and utimensat support)
252dcce7324Safresh1    [rt.perl.org #114809]
253dcce7324Safresh1  - the utime patch used IS_SAFE_PATHNAME() which isn't available in
254dcce7324Safresh1    too old Perls, so emulate (in case the Devel::PPPort is too old)
255dcce7324Safresh1
256dcce7324Safresh11.9734 [2016-06-17]
257dcce7324Safresh1  - fix Darwins with clock_gettime: blead 2d41a263
258dcce7324Safresh1    [rt.perl.org #128427]
259dcce7324Safresh1
260b8851fccSafresh11.9733 [2016-04-23]
261b8851fccSafresh1  - C90 declaration-after-statement error with darwin threads: blead de1003b4
262b8851fccSafresh1    [rt.cpan.org #113856]
263b8851fccSafresh1
264b8851fccSafresh11.9732 [2016-03-13]
265b8851fccSafresh1  - MUTEX_LOCK, not PERL_MUTEX_LOCK: blead e5b02b5d
266b8851fccSafresh1  - also hrt_ualarm_itimer() is unused: 1cb6cce3
267b8851fccSafresh1  - the mutex needs init: 2d639e20
268b8851fccSafresh1  - version bump to 1.9732: 730d7fdc
269b8851fccSafresh1
270b8851fccSafresh11.9731 [2016-03-13]
271b8851fccSafresh1  - mark unused variable as such: blead a914236c
272b8851fccSafresh1  - OS X emulation mutex accidentally unused: da7a6455
273b8851fccSafresh1  - remove hrt_ualarm: 6da77c36
274b8851fccSafresh1  - pod error fixes: 919ca095
275b8851fccSafresh1  - nanosleep and clock_nanosleep cleanups: c8ea02b8..e3ff671b
276b8851fccSafresh1  - static funcs in HiRes.xs: 4e922c26
277b8851fccSafresh1  - Remove unused variable: 52ffb1b5
278b8851fccSafresh1
279b8851fccSafresh11.9730 [2016-02-17]
280b8851fccSafresh1  - TIME_HIRES_DONT_RUN_PROBES=1 to build the probes but not run them
281b8851fccSafresh1    [rt.cpan.org #111391]
282b8851fccSafresh1
283b8851fccSafresh11.9729 [2016-02-13]
284b8851fccSafresh1  - new constants
285b8851fccSafresh1    [rt.cpan.org #111170]
286b8851fccSafresh1  - clock_getres(), clock_gettime(), clock_nanosleep() emulation for OS X
287b8851fccSafresh1    [rt.cpan.org #78566]
288b8851fccSafresh1
289b8851fccSafresh11.9728 [2015-11-13]
290b8851fccSafresh1  - No changes since 1.9727_03
291b8851fccSafresh1
292b8851fccSafresh11.9727_03 [2015-11-06]
293b8851fccSafresh1  - use PERL_UNUSED_ARG() in the not-here-croak branches
294b8851fccSafresh1  - Makefile.PL/metadata improvements
295b8851fccSafresh1
296b8851fccSafresh11.9727_02 [2015-08-29]
297b8851fccSafresh1  - correct documentation to note that Time::NVtime is NV, not double
298b8851fccSafresh1    [perl #123879]
299b8851fccSafresh1  - avoid a warning about clock_t on OS X / clang 3.6 - 3.6
300b8851fccSafresh1    [rt.cpan.org #102718]
301b8851fccSafresh1
302b8851fccSafresh11.9727_01 [2015-08-17]
303b8851fccSafresh1  - Remove usage of 5.005 thread APIs in favor of 5.6 and up thread APIs
304b8851fccSafresh1    [rt.cpan.org #102799].
305b8851fccSafresh1  - Silence a C++ compiler warning [rt.cpan.org #101497].
306b8851fccSafresh1  - respect $Config{run} for cross-compiling [rt.cpan.org #92607]
307b8851fccSafresh1
308b8851fccSafresh11.9726 [2013-08-17]
309b8851fccSafresh1	- Correct s/us splitting of usleep(1000000) [rt.cpan.org #78266].
310b8851fccSafresh1	- Avoid integer overflow in itimer-based alarm() with large
311b8851fccSafresh1	  argument [rt.cpan.org #87160].
312b8851fccSafresh1	- Define PERL_NO_INLINE_FUNCTIONS during probe compilations, to
313b8851fccSafresh1	  avoid false negatives caused by not linking with the perl core.
314b8851fccSafresh1	- Be more careful about context in stat().
315b8851fccSafresh1	- Install into "site" directories by default on perl 5.11+
316b8851fccSafresh1	  [rt.cpan.org #79797].
317b8851fccSafresh1	- Fix a couple of doc typos [rt.cpan.org #85365].
318b8851fccSafresh1	- Fix function name in a doc example [rt.cpan.org #86318].
319b8851fccSafresh1	- Provide lstat() that yields high-res timestamps, alongside
320b8851fccSafresh1	  the existing high-res stat() [rt.cpan.org #78732].
321b8851fccSafresh1
322b8851fccSafresh11.9725 [2012-02-01]
323b8851fccSafresh1	- Correct stack discipline in stat(), which was screwing up list
324b8851fccSafresh1	  operations in expressions containing calls to it [rt.cpan.org
325b8851fccSafresh1	  #72926].
326b8851fccSafresh1	- Add missing OUTPUT sections to the XS code [rt.cpan.org #70930].
327b8851fccSafresh1	- Skip itimer tests on GNU/Hurd, which has the API but lacks
328b8851fccSafresh1	  the implementation [rt.cpan.org #72754].
329b8851fccSafresh1	- Fix a doubled word in the documentation [rt.cpan.org #72763].
330b8851fccSafresh1
331b8851fccSafresh11.9724 [2011-06-09]
332b8851fccSafresh1	- Correct XS parameter list, and therefore prototype, for
333b8851fccSafresh1	  unimplemented-on-this-platform version of clock_nanosleep()
334b8851fccSafresh1	  [rt.cpan.org #68700].
335b8851fccSafresh1	- Declare package variables with "our" rather than "use vars".
336b8851fccSafresh1	- Corresponding to "our" usage, check for minimum Perl version
337b8851fccSafresh1	  5.006.
338b8851fccSafresh1	- Declare module dependencies.
339b8851fccSafresh1
340b8851fccSafresh11.9723 [2011-06-07]
341b8851fccSafresh1	- Remove $ENV{PERL_CORE} logic from test suite, which is no
342b8851fccSafresh1	  longer desired in the core.
343b8851fccSafresh1	- Convert test suite to use Test::More.
344b8851fccSafresh1	- Factor out watchdog code from test suite.
345b8851fccSafresh1	- In test suite, be consistent about using fully-qualified form
346b8851fccSafresh1	  of function names.
347b8851fccSafresh1	- Divide test suite into feature-specific scripts.
348b8851fccSafresh1	- Make ualarm timing test less vulnerable to delay-induced false
349b8851fccSafresh1	  failure, from Dave Mitchell.
350b8851fccSafresh1
351b8851fccSafresh11.9722 [2011-05-18]
352b8851fccSafresh1	- Update for changes in build process in the core, patches
353b8851fccSafresh1	  from BinGOs [rt.cpan.org #58858] and Craig Berry [rt.cpan.org
354b8851fccSafresh1	  #63363].
355b8851fccSafresh1	- Fix broken linkage on Windows with gcc 3.4 seen with ActivePerl,
356b8851fccSafresh1	  report from Christian Walde [rt.cpan.org #61648], fix derived
357b8851fccSafresh1	  from Vincent Pit.
358b8851fccSafresh1	- Jump through hoops to avoid compiler warnings.
359b8851fccSafresh1
360b8851fccSafresh11.9721 [2010-03-17]
361b8851fccSafresh1	- Address [rt.cpan.org #54196] alarm and ularm return values are bogus,
362b8851fccSafresh1	  additional fix from Gisle Aas
363b8851fccSafresh1	- Address [rt.cpan.org #55665] "Bad plan" on Windows,
364b8851fccSafresh1	  report and fix from Jan Dubois
365b8851fccSafresh1
366b8851fccSafresh11.9720 [2010-02-14]
367b8851fccSafresh1	- Address [rt.cpan.org #54196] alarm and ularm return values are bogus,
368b8851fccSafresh1	  report and fix from Nicholas Clark
369b8851fccSafresh1
370b8851fccSafresh11.9719	[2009-01-04]
371b8851fccSafresh1	- As with QNX, Haiku has the API of interval timers but not
372b8851fccSafresh1	  the implementation (bleadperl change #34630), hence skip
373b8851fccSafresh1	  the tests, via David Mitchell.
374b8851fccSafresh1
375b8851fccSafresh11.9718	[2008-12-31]
376b8851fccSafresh1	- .xs code cleanup from Albert Dvornik
377b8851fccSafresh1	- in the #39 and #40 do not do us I did, mixing alarm() and
378b8851fccSafresh1	  sleep().  Now instead spin until enough time has passed.
379b8851fccSafresh1
380b8851fccSafresh11.9717	[2008-12-30]
381b8851fccSafresh1	- Skip the tests added in 1.9716 (#39, #40) if there's no subsecond
382b8851fccSafresh1	  alarm capability, like with the older subsecond alarm tests
383b8851fccSafresh1
384b8851fccSafresh11.9716	[2008-12-26]
385b8851fccSafresh1	- Change documentation to agree with reality: there are
386b8851fccSafresh1	  no interval timers in Win32.
387b8851fccSafresh1	- Address [rt.cpan.org #35899] (problem in subsecond sleeps),
388b8851fccSafresh1          add two tests to guard against this problem
389b8851fccSafresh1	- Address [rt.cpan.org #36600] 'Division by zero' failure in test suite
390b8851fccSafresh1	- Address [rt.cpan.org #37340] [PATCH] Address timer process in test
391b8851fccSafresh1	- Address [rt.cpan.org#40311 ] bad implementation of hrt_usleep
392b8851fccSafresh1          with TIME_HIRES_NANOSLEEP
393b8851fccSafresh1
394b8851fccSafresh11.9715	[2008-04-08]
395b8851fccSafresh1	- Silly me: Makefile.PL does need to accept arguments other than mine.
396b8851fccSafresh1	  Some testing frameworks obviously do this.
397b8851fccSafresh1	- Add retrying for tests 34..37, which are the most commonly
398b8851fccSafresh1	  failing tests.  If this helps, consider extending the retry
399b8851fccSafresh1	  framework to all the tests.  [Inspired by Slaven Rezic,
400b8851fccSafresh1	  [rt.cpan.org #34711] Occasional failures of test 35 or 36 (FreeBSD)]
401b8851fccSafresh1
402b8851fccSafresh11.9714	[2008-04-07]
403b8851fccSafresh1	- Under Perl 5.6.* NVgf needs to be "g", reported by Zefram,
404b8851fccSafresh1	  it seems that ppport.h 3.13 gets this wrong.
405b8851fccSafresh1	- remove the check in Makefile.PL for 5.7.2, shouldn't be
406b8851fccSafresh1	  (a) necessary (b) relevant
407b8851fccSafresh1	- add logic to Makefile.PL to skip configure/write Makefile
408b8851fccSafresh1	  step if the "xdefine" file already exists, indicating that
409b8851fccSafresh1	  the configure step has already been done, one can still
410b8851fccSafresh1	  force (re)configure by "perl Makefile.PL configure",
411b8851fccSafresh1	  or of course by "make clean && perl Makefile.PL".
412b8851fccSafresh1
413b8851fccSafresh11.9713	[2008-04-04]
414b8851fccSafresh1	- for alarm() and ualarm() [Perl] prefer setitimer() [C]
415b8851fccSafresh1	  instead of ualarm() [C] since ualarm() [C] cannot portably
416b8851fccSafresh1	  (and standards-compliantly) be used for more than 999_999
417b8851fccSafresh1	  microseconds (rt.cpan.org #34655)
418b8851fccSafresh1	- it seems that HP-UX has started (at least in 11.31 ia64)
419b8851fccSafresh1	  #defining the CLOCK_REALTIME et alia (instead of having
420b8851fccSafresh1	  them just as enums)
421b8851fccSafresh1	- document all the diagnostics
422b8851fccSafresh1
423b8851fccSafresh11.9712	[2008-02-09]
424b8851fccSafresh1	- move the sub tick in the test file back to where it used to be
425b8851fccSafresh1	- in the "consider upgrading" message recommend at least Perl 5.8.8
426b8851fccSafresh1	  and make the message to appear only for 5.8.0 since 5.8.1 and
427b8851fccSafresh1	  later have the problem fixed
428b8851fccSafresh1	- VOS tweak for Makefile (core perl change #33259)
429b8851fccSafresh1	- since the test #17 seems to fail often, relax its limits a bit
430b8851fccSafresh1
431b8851fccSafresh11.9711	[2007-11-29]
432b8851fccSafresh1	- lost VMS test skippage from Craig Berry
433b8851fccSafresh1	- reformat the test code a little
434b8851fccSafresh1
435b8851fccSafresh11.9710	[2007-11-29]
436b8851fccSafresh1	- I got the sense of the QNX test the wrong way in an attempt
437b8851fccSafresh1	  to generalize it for future
438b8851fccSafresh1
439b8851fccSafresh11.9709	[2007-11-28]
440b8851fccSafresh1	- casting fixes from Robin Barker for g++ and 64bitint
441b8851fccSafresh1	- in QNX skip the itimer tests because though the API
442b8851fccSafresh1	  is there, the implementation isn't, from Matt Kraai
443b8851fccSafresh1	- raise the dead man timer to 180 seconds for really
444b8851fccSafresh1	  slow/busy systems
445b8851fccSafresh1	- elaborate the UTF-8 locale warning from Makefile.PL
446b8851fccSafresh1
447b8851fccSafresh11.9708	[2007-10-05]
448b8851fccSafresh1	- [rt.cpan.org #29747]: Build failure with perl 5.005_05
449b8851fccSafresh1	  Fixed by regenerating the ppport.h using Devel::PPPort 3.13.
450b8851fccSafresh1
451b8851fccSafresh11.9707	[2007-02-27]
452b8851fccSafresh1	- t/HiRes.t failed in Perl 5.6.2,
453b8851fccSafresh1	  "action is not of type POSIX::SigAction at t/HiRes.t line 318",
454b8851fccSafresh1	  reported and fixed by Anton Berezin, the reason was faulty
455b8851fccSafresh1	  use of sigaction() when restoring the old action.
456b8851fccSafresh1
457b8851fccSafresh11.9706	[2007-02-25]
458b8851fccSafresh1	- with bleadperl in VMS the HiRes.t overrun the maximum number
459b8851fccSafresh1	  of deferred signals because the libc SIGALRM was not strong
460b8851fccSafresh1	  enough to interrupt select(), and select() got restarted every
461b8851fccSafresh1	  time, solution is to use POSIX::SigAction if available.
462b8851fccSafresh1	  A fix from Craig Berry (not 100% there, but helps).
463b8851fccSafresh1	- allow for more measuring noise for ualarm() tests 35..37
464b8851fccSafresh1
465b8851fccSafresh11.9705	[2007-02-06]
466b8851fccSafresh1	- nanosleep() and clock_nanosleep() detection and use were
467b8851fccSafresh1	  quite broken; in Linux -lrt needed; fixes from Zefram
468b8851fccSafresh1	- [internal] slightly cleaner building of $DEFINE in Makefile.PL,
469b8851fccSafresh1	  should avoid double/conflicting -D flags
470b8851fccSafresh1
471b8851fccSafresh11.9704	[2007-01-01]
472b8851fccSafresh1	- allow 10% of slop in test #14 (testing difference between
473b8851fccSafresh1	  CORE::time() and Time::HiRes::time()), there seem to be often
474b8851fccSafresh1	  transient failures from Perl smoke builds on this test
475b8851fccSafresh1	- small pod tweaks
476b8851fccSafresh1
477b8851fccSafresh11.9703	[2006-12-08]
478b8851fccSafresh1	- use int main(int argc, char **argv) consistently in Makefile.PL,
479b8851fccSafresh1	  should help with
480b8851fccSafresh1	  [rt.cpan.org #23868] nanosleep not detected under Mac OS 10.3.9 starting with Time::HiRes 1.96
481b8851fccSafresh1	- if someone still has the locale-broken Perl 5.8.0,
482b8851fccSafresh1	  suggest that they upgrade their Perl
483b8851fccSafresh1
484b8851fccSafresh11.9702	[2006-12-06]
485b8851fccSafresh1	- restore the -DATLEASTFIVEOHOHFIVE, Win32 needed it still
486b8851fccSafresh1
487b8851fccSafresh11.9701	[2006-12-04]
488b8851fccSafresh1	- upgrade to ppport.h 3.10_02
489b8851fccSafresh1	- remove the -DATLEASTFIVEOHOHFIVE
490b8851fccSafresh1	- use the ppport.h PL_ppaddr, PL_statcache, PL_laststatval
491b8851fccSafresh1	- use the ppport.h aTHXR for calling Perl stat()
492b8851fccSafresh1	- switch into four-digit version since 2.0 is coming up
493b8851fccSafresh1	  awfully fast but not feeling like a major rewrite
494b8851fccSafresh1
495b8851fccSafresh11.97	[2006-11-30]
496b8851fccSafresh1	- 1.95 broke building in Win32 (since pp_stat is not exported),
497b8851fccSafresh1	  figured out how to call an op directly in 5.005 (use Perl_ppaddr
498b8851fccSafresh1	  instead of PL_ppaddr)
499b8851fccSafresh1	- backport to Perl 5.004_05  (requires using statcache
500b8851fccSafresh1	  and laststatval instead of PL_statcache and PL_laststatval)
501b8851fccSafresh1	  (also checked to work in 5.005_04, 5.6.1, and 5.8.8 with threads)
502b8851fccSafresh1
503b8851fccSafresh11.96	[2006-11-30]
504b8851fccSafresh1	- 1.95 broke builds for threaded Perls, rt.cpan.org tickets:
505b8851fccSafresh1	  [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
506b8851fccSafresh1	  [rt.cpan.org #23712] Time-HiRes 1.95 Fails make on AIX 5.2 with Perl 5.8.8
507b8851fccSafresh1	  [rt.cpan.org #23730] Time::HiRes 1.95 fails make on MacOS X 10.3.9/perl 5.8.8
508b8851fccSafresh1	- use main() prototype consistently in Makefile.PL
509b8851fccSafresh1
510b8851fccSafresh11.95	[2006-11-29]
511b8851fccSafresh1	- integrate core change #29180: Silence VC++ compiler warnings
512b8851fccSafresh1	  from Steve Hay
513b8851fccSafresh1	- do not use PL_ppaddr in stat() because that is not available
514b8851fccSafresh1	  in Perl 5.005_04
515b8851fccSafresh1	- regenerate fallback/*.inc for older Perls without
516b8851fccSafresh1          ExtUtils::Constant because of d_hires_stat, resolves
517b8851fccSafresh1	  [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1
518b8851fccSafresh1	- Make Makefile.PL more defensive against false PERL_CORE
519b8851fccSafresh1
520b8851fccSafresh11.94	[2006-10-16]
521b8851fccSafresh1	- file timestamps oddities seen: the atime and mtime
522b8851fccSafresh1	  can be out of sync (modify first and read second can leave
523b8851fccSafresh1	  atime < mtime) and mtime can be subsecond while atime is not.
524b8851fccSafresh1	  So make the test more forgiving.
525b8851fccSafresh1
526b8851fccSafresh11.93	[2006-10-15]
527b8851fccSafresh1	- the ualarm() tests (34-37) assumed that ualarm(N)
528b8851fccSafresh1	  could never alarm in less than N seconds, widened
529b8851fccSafresh1	  the acceptable relative range to 0.9..1.5.  Addresses
530b8851fccSafresh1	  [rt.cpan.org #22090] and [rt.cpan.org #22091].
531b8851fccSafresh1
532b8851fccSafresh1	- skip the stat() tests in cygwin and win32, because
533b8851fccSafresh1	  if run on FAT the timestamp granularity is only 2 seconds.
534b8851fccSafresh1	  Any good way to detect (cygwin or win32) whether we are
535b8851fccSafresh1	  being run on NTFS or anywhere with better timestamps?
536b8851fccSafresh1	  Addresses [rt.cpan.org #22089] and [rt.cpan.org #22098].
537b8851fccSafresh1
538b8851fccSafresh11.92	[2006-10-13]
539b8851fccSafresh1	- scan for subsecond resolution timestamps in struct stat,
540b8851fccSafresh1	  some known possibilities:
541b8851fccSafresh1
542b8851fccSafresh1	  (1)  struct  timespec st_atimespec;
543b8851fccSafresh1                                st_atimespec.tv_nsec;
544b8851fccSafresh1	  (2)  time_t  st_atime;
545b8851fccSafresh1	       long    st_atimensec;
546b8851fccSafresh1          (3)  time_t  st_atime;
547b8851fccSafresh1               int     st_atime_n;
548b8851fccSafresh1	  (4)  timestruc_t st_atim;
549b8851fccSafresh1                           st_atim.tv_nsec
550b8851fccSafresh1	  (5)  time_t  st_atime;
551b8851fccSafresh1               int     st_uatime;
552b8851fccSafresh1
553b8851fccSafresh1          If something like this is found, one can do
554b8851fccSafresh1
555b8851fccSafresh1	    use Time::HiRes;
556b8851fccSafresh1	    my @stat = Time::HiRes::stat();
557b8851fccSafresh1
558b8851fccSafresh1	  or even override the standard stat():
559b8851fccSafresh1
560b8851fccSafresh1	    use Time::HiRes qw(stat);
561b8851fccSafresh1
562b8851fccSafresh1          to get the stat() timestamps
563b8851fccSafresh1
564b8851fccSafresh1	    my ($atime, $mtime, $ctime) = @stat[8, 9, 10];
565b8851fccSafresh1
566b8851fccSafresh1	  with subsecond resolution (assuming both the operating
567b8851fccSafresh1	  system and the filesystem support that kind of thing).
568b8851fccSafresh1
569b8851fccSafresh1	  Contributions for more systems (especially non-UNIX,
570b8851fccSafresh1	  e.g. but not limited to: Win32, VMS, OS/2) gladly accepted.
571b8851fccSafresh1	  (also more UNIX variants welcome: HP-UX? IRIX?)
572b8851fccSafresh1
573b8851fccSafresh1	  Thanks to H.Merijn Brand, John Peacock, and Craig
574b8851fccSafresh1	  Berry for brave beta testing.
575b8851fccSafresh1
576b8851fccSafresh11.91	[2006-09-29]
577b8851fccSafresh1	- ualarm() in SuSE 10.1 was overflowing after ~4.2 seconds,
578b8851fccSafresh1	  possibly due to a glibc bug/feature (suspected overflow at
579b8851fccSafresh1	  2**32 microseconds?), workaround by using the setitimer()
580b8851fccSafresh1	  implementation of ualarm() if either useconds or
581b8851fccSafresh1	  interval > 999_999 (this case seems to vary between systems:
582b8851fccSafresh1	  are useconds more than 999_999 for ualarm() defined or not)
583b8851fccSafresh1	  Added more ualarm() tests to catch various overflow points,
584b8851fccSafresh1	  hopefully no problems in various platforms.
585b8851fccSafresh1	  (The problem report by Mark Seger and Jon Paul Sullivan of HP.)
586b8851fccSafresh1
587b8851fccSafresh11.90	[2006-08-22]
588b8851fccSafresh1	- tweak still needed for Const64(), from Jerry Hedden
589b8851fccSafresh1	- get a freshly generated ppport.h
590b8851fccSafresh1	- update Copyright years
591b8851fccSafresh1
592b8851fccSafresh11.89	[2006-08-22]
593b8851fccSafresh1	- Const64() already appends an 'LL' (or i64), so provide LL and i64
594b8851fccSafresh1	  forms for the IV_1E[679] (effects Win32 and Cygwin), reported by
595b8851fccSafresh1	  Jerry Hedden.
596b8851fccSafresh1	- the Changes entry for 1.88 talked about [IN]V_1[679],
597b8851fccSafresh1	  missing the 'E'.
598b8851fccSafresh1
599b8851fccSafresh11.88	[2006-08-21]
600b8851fccSafresh1	- clean up the g++ warnings in HiRes.xs, all of them
601b8851fccSafresh1	  about mixing integer and floating point, introduce
602b8851fccSafresh1	  constants IV_1E[679] and NV_1E[679]
603b8851fccSafresh1
604b8851fccSafresh11.87	[2006-02-13]
605b8851fccSafresh1	- [rt.cpan.org #17442] 'make test' frequently fails under
606b8851fccSafresh1	  Cygwin Perl v5.8.8, reported and patched by J. R. Hedden
607b8851fccSafresh1	  (two race condition bugs in the END block in the case the
608b8851fccSafresh1	   main process dies before the timer process, unearthed
609b8851fccSafresh1	   by a bug in Cygwin ualarm)
610b8851fccSafresh1
611b8851fccSafresh11.86	[2005-12-17]
612b8851fccSafresh1	- HiRes.t:s/ok 32/ok 33/, from Dominic Dunlop
613b8851fccSafresh1	- tighten up the clock() test marginally by requiring non-negative
614b8851fccSafresh1	- clock_nanosleep() and clock() doc tweaks
615b8851fccSafresh1
616b8851fccSafresh11.85	[2005-12-16]
617b8851fccSafresh1	- the interface to clock_nanosleep() is more natural
618b8851fccSafresh1	  when it is like (hires) time() (instead of like nanosleep),
619b8851fccSafresh1	  and the .xs implementation of clock_nanosleep() in 1.84
620b8851fccSafresh1	  was broken anyway
621b8851fccSafresh1	- the semantics of clock() are not quite so silly as I thought,
622b8851fccSafresh1	  but still somewhat odd, documented as such
623b8851fccSafresh1	- additional enhancements to the clock() documentation
624b8851fccSafresh1	- add test for clock_nanosleep() (I cannot test this
625b8851fccSafresh1	  since none of my systems have the function)
626b8851fccSafresh1	- add test for clock()
627b8851fccSafresh1
628b8851fccSafresh11.84	[2005-12-16]
629b8851fccSafresh1	- add clock() which returns the processor time in
630b8851fccSafresh1	  (floating point) seconds since an arbitrary era
631b8851fccSafresh1	- add clock_nanosleep() which suspends the current
632b8851fccSafresh1	  thread until either absolute time or for relative time
633b8851fccSafresh1	- [rt.cpan.org #16486] printf missing value in HiRes.t
634b8851fccSafresh1	- add constants CLOCKS_PER_SEC, CLOCK_SOFTTIME, TIMER_ABSTIME
635b8851fccSafresh1	- tiny typo fixes
636b8851fccSafresh1
637b8851fccSafresh11.83	[2005-11-19]
638b8851fccSafresh1	- has_symbol() was wrong since e.g. ITIMER_VIRTUAL is exported
639b8851fccSafresh1	  via @EXPORT_OK even when it is not available.  This is heinous.
640b8851fccSafresh1	  @EXPORT_OK should be determined at Makefile.PL time.
641b8851fccSafresh1	- be more lenient is testing clock_gettime(): allow more slop,
642b8851fccSafresh1	  and retry up to three times, sleeping a random nap between
643b8851fccSafresh1	  the retries
644b8851fccSafresh1	- human months are one-based (noticed by Anton Berezin)
645b8851fccSafresh1
646b8851fccSafresh11.82	[2005-10-06]
647b8851fccSafresh1	- CLOCK_REALTIME is an enum value (of the clockid_t enum)
648b8851fccSafresh1	  in HP-UX (and might be so elsewhere, too), debugged by
649b8851fccSafresh1	  H. Merijn Brand
650b8851fccSafresh1	- include const-c.inc as late as possible (from Randy Kobes,
651b8851fccSafresh1	  [rt.cpan.org #15552] to avoid undefined usleep() on Win32
652b8851fccSafresh1
653b8851fccSafresh11.81	[2005-11-05]
654b8851fccSafresh1	- try to be more robust and consistent in the detection of
655b8851fccSafresh1          CLOCK_REALTIME and ITIMER_VIRTUAL in HiRes.t: the proper
656b8851fccSafresh1	  way is
657b8851fccSafresh1
658b8851fccSafresh1		sub has_symbol {
659b8851fccSafresh1		    my $symbol = shift;
660b8851fccSafresh1		    eval 'import Time::HiRes qw($symbol)';
661b8851fccSafresh1		    return 0 unless $@ eq '';
662b8851fccSafresh1		    return exists ${"Time::HiRes::$symbol"};
663b8851fccSafresh1		}
664b8851fccSafresh1
665b8851fccSafresh1	  and then use
666b8851fccSafresh1
667b8851fccSafresh1		&FOO_BAR
668b8851fccSafresh1
669b8851fccSafresh1	  in the test.  All these moves are needed because
670b8851fccSafresh1
671b8851fccSafresh1	  1) one cannot directly do eval 'Time::HiRes::FOO_BAR'
672b8851fccSafresh1	     because FOO_BAR might have a true value of zero
673b8851fccSafresh1	     (or in the general case an empty string or even undef)
674b8851fccSafresh1
675b8851fccSafresh1	  2) In case FOO_BAR is not available in this platform,
676b8851fccSafresh1	     &FOO_BAR avoids the bareword warning
677b8851fccSafresh1
678b8851fccSafresh1	- wait more (1.5 seconds instead of 0.1) for the CLOCK_REALTIME test
679b8851fccSafresh1	  but expect the 'customary' slop of 0.20 instead of 0.25
680b8851fccSafresh1	- fixed inside a comment HAS_POLL -> TIME_HIRES_NANOSLEEP
681b8851fccSafresh1	- at the end of HiRest.t tell how close we were to termination
682b8851fccSafresh1
683b8851fccSafresh11.80	[2005-11-04]
684b8851fccSafresh1	- Gisle noticed a mistake (using HAS_NANOSLEEP) in 1.79
685b8851fccSafresh1
686b8851fccSafresh11.79	[2005-11-03]
687b8851fccSafresh1	- try nanosleep for emulating usleep -- may help in some weird
688b8851fccSafresh1	  embedded realtime places which have nanosleep but neither usleep
689b8851fccSafresh1	  nor select nor poll (doesn't have to be weird embedded realtime
690b8851fccSafresh1	  place, though -- in many places usleep is nanosleep anyway)
691b8851fccSafresh1	- try poll for emulating usleep -- this may help some obscure/old
692b8851fccSafresh1	  SVR4 places that have neither usleep nor select
693b8851fccSafresh1	- a redundant test guard in HiRes.t
694b8851fccSafresh1
695b8851fccSafresh11.78	[2005-11-03]
696b8851fccSafresh1	- ITIMER_VIRTUAL detection in HiRes.t had problems (that we cannot
697b8851fccSafresh1	  in the general case fail already at 'use' phase is suboptimal)
698b8851fccSafresh1	- fixes to the documentation of clock_gettime() and clock_getres()
699b8851fccSafresh1
700b8851fccSafresh11.77	[2005-11-03]
701b8851fccSafresh1	- add support for the POSIX clock_gettime() and clock_getres(),
702b8851fccSafresh1	  if available, either as library calls or as syscalls
703b8851fccSafresh1	- be more defensive about missing functionality: break out
704b8851fccSafresh1	  early (during 'use') if no e.g. clock_getres() is available,
705b8851fccSafresh1	  and protect our back by trapping those cases also in HiRes.xs
706b8851fccSafresh1	- the test added in 1.76 could cause an endless loop e.g. in Solaris,
707b8851fccSafresh1	  due to mixing of sleep() and alarm() (bad programmer, no cookie!)
708b8851fccSafresh1
709b8851fccSafresh11.76	[2005-10-22]
710b8851fccSafresh1	- testing for nanosleep had wrong logic which caused nanosleep
711b8851fccSafresh1	  to become undefined for e.g. Mac OS X
712b8851fccSafresh1	- added a test for a core dump that was introduced by Perl 5.8.0
713b8851fccSafresh1	  safe signals and was fixed for the time of 5.8.1 (one report of
714b8851fccSafresh1	  the core dump was [perl #20920]), the test skipped pre-5.8.1.
715b8851fccSafresh1	- *cough* s/unanosleep/nanosleep/g; *cough*
716b8851fccSafresh1
717b8851fccSafresh11.75	[2005-10-18]
718b8851fccSafresh1	- installation patch from Gisle Aas: in Perls 5.8.x and later
719b8851fccSafresh1	  use MakeMaker INSTALLDIRS value of 'perl' instead of 'site'.
720b8851fccSafresh1
721b8851fccSafresh11.74	[2005-09-19]
722b8851fccSafresh1	- [cpan #14608] Solaris 8 perl 5.005_03 File::Spec module does not have method rel2abs
723b8851fccSafresh1	  (the workaround is not to use rel2abs, should not be necessary)
724b8851fccSafresh1	- [cpan #14642] U2time wrongly exported on the C API
725b8851fccSafresh1	  (patch supplied by the reporter, SALVA@cpan.org)
726b8851fccSafresh1	- add release dates to Changes
727b8851fccSafresh1
728b8851fccSafresh11.73	[2005-08-16]
729b8851fccSafresh1	- Time::HiRes::nanosleep support for Solaris [PATCH]
730b8851fccSafresh1	  (POSIX::uname() not available if building with core perl,
731b8851fccSafresh1	   from Gisle Aas, via perl5-porters, perl change #25295)
732b8851fccSafresh1
733b8851fccSafresh11.72	[2005-07-01]
734b8851fccSafresh1	- going back to the 1.68 loader setup (using DynaLoader)
735b8851fccSafresh1	  since too many weird things starting breaking
736b8851fccSafresh1	- fix a typo in José Auguste-Etienne's name
737b8851fccSafresh1
738b8851fccSafresh11.71	[2005-06-28]
739b8851fccSafresh1	- a thinko in the nanosleep() detection
740b8851fccSafresh1	- move more changes stuff from the README to Changes
741b8851fccSafresh1	- add -w to the Makefile.PL
742b8851fccSafresh1
743b8851fccSafresh11.70	[2005-06-26]
744b8851fccSafresh1	- oops in 1.69 about @ISA (not affecting anything but silly)
745b8851fccSafresh1	- add copyright 2005 to HiRes.pm
746b8851fccSafresh1	- add copyright and license to HiRes.xs
747b8851fccSafresh1	- add copyrights 2003, 2004, 2005 to README
748b8851fccSafresh1
749b8851fccSafresh11.69	[2005-06-25]
750b8851fccSafresh1	- actually run a test for nanosleep
751b8851fccSafresh1	  (if there is no $Config{d_nanosleep}) since e.g. in AIX 4.2
752b8851fccSafresh1	  it seems that one can link in nanosleep() but then calling
753b8851fccSafresh1	  it fails instantly and sets errno to ENOSYS (Not implemented).
754b8851fccSafresh1	  This may be fixable in the AIX case by figuring out the right
755b8851fccSafresh1	  (realtime POSIX?) libs and whatnot, but in the general case
756b8851fccSafresh1	  running a real test case is better.  (Of course, this change
757b8851fccSafresh1	  will no doubt run into portability problems because of the
758b8851fccSafresh1	  execution step...)  Note that because of hysterical raisins
759b8851fccSafresh1	  most Perls do NOT have $Config{d_nanosleep} (scanning for
760b8851fccSafresh1	  it by Configure would in many platforms require linking in
761b8851fccSafresh1	  things like -lrt, which would in many platforms be a bad idea
762b8851fccSafresh1	  for Perl itself).
763b8851fccSafresh1	  (from José Auguste-Etienne)
764b8851fccSafresh1	- support XSLoader also since it's much faster
765b8851fccSafresh1	  (from Alexey Tourbin)
766b8851fccSafresh1	- add SEE ALSO (BSD::Resource and Time::TAI64)
767b8851fccSafresh1
768b8851fccSafresh11.68	[2005-05-14]
769b8851fccSafresh1	- somehow 1.67 had a lot of doubled lines (a major cut-and-paste
770b8851fccSafresh1	  error suspected), but miraculously it still worked since the
771b8851fccSafresh1	  doubling took place below the __END__ token
772b8851fccSafresh1	- undef Pause() before defining it to avoid redefinition warnings
773b8851fccSafresh1	  during compilation in case perl.h had already defined Pause()
774b8851fccSafresh1	  (part of perl change #24271)
775b8851fccSafresh1	- minor doc tweaks
776b8851fccSafresh1
777b8851fccSafresh11.67	[2005-05-04]
778b8851fccSafresh1	- (internal) don't ignore the return value of gettimeofday()
779b8851fccSafresh1	- (external) return undef or an empty if the C gettimeofday() fails
780b8851fccSafresh1	  (affects Time::HiRes gettimeofday() and the hires time())
781b8851fccSafresh1
782b8851fccSafresh11.66	[2004-12-19]
783b8851fccSafresh1	- add nanosleep()
784b8851fccSafresh1	- fix the 'hierachy' typo in Makefile.PL [rt.cpan.org #8492]
785b8851fccSafresh1	- should now build in Solaris [rt.cpan.org #7165] (since 1.64)
786b8851fccSafresh1	- should now build in Cygwin [rt.cpan.org #7535] (since 1.64)
787b8851fccSafresh1	- close also [rt.cpan.org #5933] "Time::HiRes::time does not
788b8851fccSafresh1	  pick up time adjustments like ntp" since ever reproducing it
789b8851fccSafresh1	  (and therefore verifying a possible fix) in the same environment
790b8851fccSafresh1	  has become rather unlikely
791b8851fccSafresh1
792b8851fccSafresh11.65	[2004-09-18]
793b8851fccSafresh1	- one should not mix u?alarm and sleep (the tests modified
794b8851fccSafresh1	  by 1.65, #12 and #13, hung in Solaris), now we just busy
795b8851fccSafresh1	  loop executing an empty block
796b8851fccSafresh1	- in the documentation underline the unspecificity of mixing
797b8851fccSafresh1	  sleeps and alarms
798b8851fccSafresh1	- small spelling fixes
799b8851fccSafresh1
800b8851fccSafresh11.64	[2004-09-16]
801b8851fccSafresh1	- regenerate ppport.h with Devel::PPPort 3.03,
802b8851fccSafresh1	  now the MY_CXT_CLONE is defined in ppport.h,
803b8851fccSafresh1	  we no more need to do that.
804b8851fccSafresh1
805b8851fccSafresh1	- the test #12 would often hang in sigsuspend() (at least that's
806b8851fccSafresh1	  where Mac OS X' ktrace shows it hanging).  With the sleep()s
807b8851fccSafresh1	  changed to sleep(1)s, the tests still pass but no hang after
808b8851fccSafresh1	  a few hundred repeats.
809b8851fccSafresh1
810b8851fccSafresh11.63	[2004-09-01]
811b8851fccSafresh1	- Win32 and any ithread build: ppport.h didn't define
812b8851fccSafresh1	  MY_CXT_CLONE, which seems to be a Time-HiRes-ism.
813b8851fccSafresh1
814b8851fccSafresh11.62	[2004-08-31]
815b8851fccSafresh1	- Skip testing if under PERL_CORE and Time::HiRes has not
816b8851fccSafresh1	  been Configured (from Marcus Holland-Moritz, core change
817b8851fccSafresh1	  #23246)
818b8851fccSafresh1	- Use ppport.h generated by Devel::PPPort 3.01,
819b8851fccSafresh1	  allowing cutting away our own portability code.
820b8851fccSafresh1	- Don't use $ENV{PERL_CORE} for < 5.6.0.
821b8851fccSafresh1	- Don't use "for my $i" for <= 5.003.
822b8851fccSafresh1	- Don't use Pause() for <= 5.003.
823b8851fccSafresh1	- Can't use newSVpvf for <= 5.003.
824b8851fccSafresh1	(most of the changes from Marcus)
825b8851fccSafresh1
826b8851fccSafresh11.61	[2004-08-21]
827b8851fccSafresh1	- Win32: reset reading from the performance counters every
828b8851fccSafresh1	  five minutes to better track wall clock time (thanks to
829b8851fccSafresh1	  PC timers being often quite bad), should help long-running
830b8851fccSafresh1	  programs.
831b8851fccSafresh1
832b8851fccSafresh11.60	[2004-08-15]
833b8851fccSafresh1	- Win32: Patch from Steve Hay
834b8851fccSafresh1	  [PATCH] Re: [perl #30755] [Win32] Different results from Time::HiRes::gettimeofdayunder the debugger
835b8851fccSafresh1	  to [perl #30755] reported by Nigel Sandever
836b8851fccSafresh1
837b8851fccSafresh1	- Cygwin: Use the Win32 recalibration code also in Cygwin if the
838b8851fccSafresh1	  <w32api/windows.h> APIs are available.  Cygwin testing by
839b8851fccSafresh1	  Yitzchak Scott-Thoennes.
840b8851fccSafresh1
841b8851fccSafresh1	- Solaris: use -lposix4 to get nanosleep for Solaris 2.6,
842b8851fccSafresh1	  after that keep using -lrt, patch from Alan Burlison,
843b8851fccSafresh1	  bug reported in [cpan #7165]
844b8851fccSafresh1
845b8851fccSafresh11.59	[2004-04-08]
846b8851fccSafresh1	- Change the Win32 recalibration limit to 0.5 seconds and tweak
847b8851fccSafresh1	  the documentation to blather less about the gory details of the
848b8851fccSafresh1	  Win32 implementation and more about the complications in general
849b8851fccSafresh1	  of meddling with the system clock.
850b8851fccSafresh1
851b8851fccSafresh11.58	[2004-04-08]
852b8851fccSafresh1	- Document the 1.57 change better.
853b8851fccSafresh1
854b8851fccSafresh11.57	[2004-07-04]
855b8851fccSafresh1	- Win32/Cygwin/MinGW: if the performance counter drifts by more
856b8851fccSafresh1	  than two seconds from the system clock (due to ntp adjustments,
857b8851fccSafresh1	  for example), recalibrate our internal counter: from Jan Dubois,
858b8851fccSafresh1	  based on [cpan #5933] by Jerry D. Hedden.
859b8851fccSafresh1
860b8851fccSafresh11.56	[2004-29-02]
861b8851fccSafresh1	- Give a clearer message if the tests timeout (perl change #22253)
862b8851fccSafresh1	- Don't use /tmp or its moral equivalents (perl bug #15036,
863b8851fccSafresh1	  perl change #22258)
864b8851fccSafresh1
865b8851fccSafresh11.55	[2004-01-14]
866b8851fccSafresh1	- Windows: mingw32 patch from Mike Pomraning (use Perl's Const64()
867b8851fccSafresh1	  instead of VC-specific i64 suffix)
868b8851fccSafresh1
869b8851fccSafresh11.54	[2003-12-31]
870b8851fccSafresh1	- Solaris: like Tru64 (dec_osf) also Solaris need -lrt for nanosleep
871b8851fccSafresh1
872b8851fccSafresh11.53	[2003-12-30]
873b8851fccSafresh1	- Windows: higher resolution time() by using the Windows
874b8851fccSafresh1	  performance counter API, from Jan Dubois and Anton Shcherbinin.
875b8851fccSafresh1	  The exact new higher resolution depends on the hardware,
876b8851fccSafresh1	  but it should be quite a bit better than using the basic
877b8851fccSafresh1	  Windows timers.
878b8851fccSafresh1
879b8851fccSafresh11.52	[2003-10-28]
880b8851fccSafresh1	- In AIX (v?) with perl 5.6.1 the HiRes.t can hang after
881b8851fccSafresh1	  the subtest 18.  No known analysis nor fix, but added
882b8851fccSafresh1	  an alarm (that requires fork() and alarm()) to the test.
883b8851fccSafresh1
884b8851fccSafresh11.51	[2003-09-22]
885b8851fccSafresh1	- doc tweaks from mjd (perl change #20456)
886b8851fccSafresh1	- NCR MP-RAS hints file added (svr4.pl) (perl change #21249)
887b8851fccSafresh1
888b8851fccSafresh11.50	[2003-08-02]
889b8851fccSafresh1	- add a message (for non-core builds) to Makefile.PL about
890b8851fccSafresh1	  the LC_ALL=C workaround
891b8851fccSafresh1	- &Time::HiRes::d_nanosleep was broken (perl change #20131)
892b8851fccSafresh1	- the nanosleep() probe was broken (perl change #20061)
893b8851fccSafresh1	- use existence instead of definedness for feature probes
894b8851fccSafresh1	  (perl change #20043)
895b8851fccSafresh1	- MPE/iX tweak (perl change #20042)
896b8851fccSafresh1	- do not use HAS_NANOSLEEP (perl change #19898)
897b8851fccSafresh1
898b8851fccSafresh11.49	[2003-06-23]
899b8851fccSafresh1	- UVuf for non-IVSIZE platforms (from Keiichiro Nagano)
900b8851fccSafresh1	- OS/2 can always mix subsecond sleeps with signals
901b8851fccSafresh1	  (part of perl change #19789)
902b8851fccSafresh1
903b8851fccSafresh11.48	[2003-06-04]
904b8851fccSafresh1	- workaround for buggy gcc 2.95.3 in openbsd/sparc64
905b8851fccSafresh1	  (perl change #19592)
906b8851fccSafresh1
907b8851fccSafresh11.47	[2003-05-03]
908b8851fccSafresh1	- do not use -lrt in Linux (from March Lehmann, perl change #19449)
909b8851fccSafresh1		- unnecessary (nanosleep is in libc anyway)
910b8851fccSafresh1		- harmful (-lrt slows down execution)
911b8851fccSafresh1		- incompatible (with many distributions' pthreads)
912b8851fccSafresh1
913b8851fccSafresh11.46	[2003-04-25]
914b8851fccSafresh1	- do not create files in blib directories under core
915b8851fccSafresh1	  (perl change #19160, from rgs)
916b8851fccSafresh1	- detypo s/VTLARM/VTARLM/ (perl change #19328, from mjd)
917b8851fccSafresh1
918b8851fccSafresh11.45	[2003-04-01]
919b8851fccSafresh1	- guarantee that $xdefine in HiRes.t is always defined
920b8851fccSafresh1	  (perl change #19109, from IlyaZ)
921b8851fccSafresh1	- a cleaner way to detect PERL_CORE (perl change #19111,
922b8851fccSafresh1	  from IlyaZ)
923b8851fccSafresh1
924b8851fccSafresh11.44	[2003-03-30]
925b8851fccSafresh1	- add hints/irix.pl to turn off overly POSIX flags that
926b8851fccSafresh1	  cause hide struct timespec to be hidden (and compilation
927b8851fccSafresh1	  to fail) (bleadperl change #19085)
928b8851fccSafresh1	- documentation tweaks
929b8851fccSafresh1
930b8851fccSafresh11.43	[2003-03-11]
931b8851fccSafresh1	- add c:/temp to the list of temp directories to probe
932b8851fccSafresh1	  so that cygwin (and win*?) builds are happy.  This was
933b8851fccSafresh1	  needed at least in my cygwin 1.3.20/w2k setup.
934b8851fccSafresh1
935b8851fccSafresh11.42	[2003-01-07]
936b8851fccSafresh1	- modernize the constants code (from Nicholas Clark)
937b8851fccSafresh1
938b8851fccSafresh11.41	[2003-01-03]
939b8851fccSafresh1	- At some point the ability to figure our the correct incdir
940b8851fccSafresh1	  for EXTERN.h (either a core perl build, or an installed perl)
941b8851fccSafresh1	  had broken (which lead into all test compiles failing with
942b8851fccSafresh1	  a core perl build, but thanks to the robustness of Makefile.PL
943b8851fccSafresh1	  nothing of this was visible).  The brokenness seemed to be
944b8851fccSafresh1	  caused by $ENV{PERL_CORE} not being on for core builds?
945b8851fccSafresh1	  Now stole a trick from the Encode that sets $ENV{PERL_CORE}
946b8851fccSafresh1	  right, and both styles of build should work again.
947b8851fccSafresh1
948b8851fccSafresh11.40	[2003-01-03]
949b8851fccSafresh1	- Nicholas Clark noticed that the my_catdir() emulation function
950b8851fccSafresh1	  was broken (which means that we didn't really work for Perls
951b8851fccSafresh1	  5.002 and 5.003)
952b8851fccSafresh1	- inspired by fixing the above made the whole Makefile.PL -w
953b8851fccSafresh1	  and strict clean
954b8851fccSafresh1	- tightened up the Makefile.PL output, less whitespace
955b8851fccSafresh1
956b8851fccSafresh11.39	[2003-10-20]
957b8851fccSafresh1	- fix from Craig Berry for better building in VMS with PERL_CORE
958b8851fccSafresh1
959b8851fccSafresh11.38	[2003-10-13]
960b8851fccSafresh1	- no functional changes
961b8851fccSafresh1	- move lib/Time/HiRes.pm as Hires.pm
962b8851fccSafresh1	- libraries scanning was slightly broken (always scanned
963b8851fccSafresh1	  for a library even when $Config{libs} already had it)
964b8851fccSafresh1
965b8851fccSafresh11.37	[2003-09-23]
966b8851fccSafresh1	- Ray Zimmerman ran into a race condition in Mac OS X.
967b8851fccSafresh1	  A 0.01-second alarm fired before the test expected.
968b8851fccSafresh1	  The test first slept indefinitely (blocking for signals)
969b8851fccSafresh1	  and only after that tested for the signal having been sent.
970b8851fccSafresh1	  Since the signal had already been sent, the test #12 never
971b8851fccSafresh1	  completed.  The solution: test first, then block.
972b8851fccSafresh1	- default to being silent on all probing attempts, set the
973b8851fccSafresh1	  environment variable VERBOSE to a true value to see the
974b8851fccSafresh1	  details (the probing command and the possible errors)
975b8851fccSafresh1
976b8851fccSafresh11.36	[2003-09-12]
977b8851fccSafresh1	- do not clear MAN3PODS in Makefile.PL (Radoslaw Zielinski)
978b8851fccSafresh1	- INSTALLDIRS => 'perl' missing which means that Time::HiRes
979b8851fccSafresh1	  cannot be upgraded from CPAN to override the 5.8.0 version
980b8851fccSafresh1	  (Guido A. Ostkamp)
981b8851fccSafresh1	- Time::HiRes 1.35 could not be dropped as-is to bleadperl
982b8851fccSafresh1	  because the include directories did not adjust themselves
983b8851fccSafresh1	  if $ENV{PERL_CORE} (Hugo van der Sanden)
984b8851fccSafresh1	- add documentation about the restart of select() under alarm()
985b8851fccSafresh1
986b8851fccSafresh11.35	[2003-08-24]
987b8851fccSafresh1	- small documentation tweaks
988b8851fccSafresh1
989b8851fccSafresh1
990b8851fccSafresh11.34	[2003-08-22]
991b8851fccSafresh1	- better VMS operation (Craig Berry)
992b8851fccSafresh1
993b8851fccSafresh11.33	[2003-08-20]
994b8851fccSafresh1	- our time machine is accelerating: now works with Perl 5.004_01
995b8851fccSafresh1	  (tried with 5.003_07 and 5.002 but I get segmentation faults
996b8851fccSafresh1	   from running the Makefile.PL with those in Tru64 4.0D)
997b8851fccSafresh1
998b8851fccSafresh11.32	[2003-08-20]
999b8851fccSafresh1	- backward compatibility (pre-5.6.0) tweaks:
1000b8851fccSafresh1	  - no XSLoader in 5.00503, use DynaLoader instead
1001b8851fccSafresh1	  - no SvPV_nolen, either
1002b8851fccSafresh1	  - no PerlProc_pause(), either
1003b8851fccSafresh1	  - now tested with 5.00404 and 5.00503
1004b8851fccSafresh1	  - Makefile.PL requires 5.00404 (no more 5.002)
1005b8851fccSafresh1	- use nanosleep instead of usleep, if it is available (Wilson Snyder)
1006b8851fccSafresh1	  (this means that one can mix subsecond sleeps with alarms)
1007b8851fccSafresh1	- because of nanosleep we probe for -lrt and -lposix4
1008b8851fccSafresh1	- the existence of getitimer/nanosleep/setitimer/ualarm/usleep
1009b8851fccSafresh1	  is available by exportable constants Time::HiRes::d_func
1010b8851fccSafresh1	  (since older Perl do not have them in %Config, and even
1011b8851fccSafresh1	   5.8.0 does not probe for nanosleep)
1012b8851fccSafresh1
1013b8851fccSafresh11.31	[2003-08-19]
1014b8851fccSafresh1	- backward compatibility (pre-5.6.1) tweaks:
1015b8851fccSafresh1	  - define NV if no NVTYPE
1016b8851fccSafresh1	  - define IVdf if needed (note: the Devel::PPPort
101756d68f1eSafresh1	    in 5.8.0 does not try hard enough since
1018b8851fccSafresh1	    the IVSIZE might not be defined)
1019b8851fccSafresh1	  - define NVgf if needed
1020b8851fccSafresh1	  - grab the typemap from 5.8.0 for the NV stuff
1021b8851fccSafresh1
1022b8851fccSafresh1	1.31 and 1.32 add more backward compatibility (now all the way
1023b8851fccSafresh1	back to Perl 5.00404), and using nanosleep() (if available) for
1024b8851fccSafresh1	subsecond sleeps.
1025b8851fccSafresh1
1026b8851fccSafresh11.30	[2003-08-16]
1027b8851fccSafresh1
1028b8851fccSafresh1	- release 1.29_02 as 1.30
1029b8851fccSafresh1
1030b8851fccSafresh1	1.30 adds all the changes made during the Perl 5.6->5.7->5.8
1031b8851fccSafresh1	development cycle.  Most notably portability across platforms has been
1032b8851fccSafresh1	enhanced, and the interval timers (setitimer, getitimer) have been
1033b8851fccSafresh1	added.  Note that the version of Time::HiRes that is included in Perl
1034b8851fccSafresh1	5.8.0 calls itself 1.20_00, but it is equivalent to this Time::HiRes
1035b8851fccSafresh1	version.  Note also that in 1.30 Wegscheid turns over the maintenance
1036b8851fccSafresh1	to Jarkko Hietaniemi.
1037b8851fccSafresh1
1038b8851fccSafresh11.29_02	[2003-08-16]
1039b8851fccSafresh1
1040b8851fccSafresh1	- fix a silly unclosed comment typo in HiRes.xs
1041b8851fccSafresh1	- document and export REALTIME_REALPROF (Solaris)
1042b8851fccSafresh1
1043b8851fccSafresh11.29_01	[2003-08-16]
1044b8851fccSafresh1
1045b8851fccSafresh1	- only getitimer(ITIMER_REAL) available in Cygwin and Win32
1046b8851fccSafresh1	  (need to patch this also in Perl 5.[89])
1047b8851fccSafresh1	- remove CVS revision log from HiRes.xs
1048b8851fccSafresh1
1049b8851fccSafresh11.29_00	[2003-08-14]
1050b8851fccSafresh1
1051b8851fccSafresh1	The following numbered patches refer to the Perl 5.7 changes,
1052b8851fccSafresh1	you can browse them at http://public.activestate.com/cgi-bin/perlbrowse
1053b8851fccSafresh1
1054b8851fccSafresh1	- 17558: Add #!./perl to the .t
1055b8851fccSafresh1	- 17201: linux + usemorebits fix, from Rafael Garcia-Suarez
1056b8851fccSafresh1	- 16198: political correctness, from Simon Cozens
1057b8851fccSafresh1	- 15857: doc tweaks, from Jarkko Hietaniemi
1058b8851fccSafresh1	- 15593: optimization in .xs, from Paul Green
1059b8851fccSafresh1	- 14892: pod fixes, from Robin Barker
1060b8851fccSafresh1	- 14100: VOS fixes, from Paul Green
1061b8851fccSafresh1	- 13422: XS segfault, from Marc Lehmann
1062b8851fccSafresh1	- 13378: whether select() gets restarted on signals, depends
1063b8851fccSafresh1	- 13354: timing constraints, again, from Andy Dougherty
1064b8851fccSafresh1	- 13278: can't do subsecond alarms with ualarm;
1065b8851fccSafresh1		 break out early if alarms do not seem to be working
1066b8851fccSafresh1	- 13266: test relaxation (cygwin gets lower hires
1067b8851fccSafresh1		 times than lores ones)
1068b8851fccSafresh1	- 12846: protect against high load, from Jarkko Hietaniemi
1069b8851fccSafresh1	- 12837: HiRes.t VMS tweak, from Craig A. Berry
1070b8851fccSafresh1	- 12797: HiRes.t VMS tweak, from Charles Lane
1071b8851fccSafresh1	- 12769: HiRes.t VMS tweak, from Craig A. Berry
1072b8851fccSafresh1	- 12744: gcc vs MS 64-bit constant syntax, from Nick Ing-Simmons
1073b8851fccSafresh1	- 12722: VMS ualarm for VMS without ualarm, from Charles Lane
1074b8851fccSafresh1	- 12692: alarm() ain't gonna work if ualarm() ain't,
1075b8851fccSafresh1		 from Gurusamy Sarathy
1076b8851fccSafresh1	- 12680: minor VMS tweak, from Charles Lane
1077b8851fccSafresh1	- 12617: don't try to print ints as IVs, from Jarkko Hietaniemi
1078b8851fccSafresh1	- 12609: croak on negative time, from Jarkko Hietaniemi
1079b8851fccSafresh1	- 12595: Cygwin rounds up for time(), from Jarkko Hietaniemi
1080b8851fccSafresh1	- 12594: MacOS Classic timeofday, from Chris Nandor
1081b8851fccSafresh1	- 12473: allow for more than one second for sleep() and usleep()
1082b8851fccSafresh1	- 12458: test tuning, relax timing constraints,
1083b8851fccSafresh1		 from Jarkko Hietaniemi
1084b8851fccSafresh1	- 12449: make sleep() and usleep() to return the number
1085b8851fccSafresh1		 of seconds and microseconds actually slept (analogously
1086b8851fccSafresh1		 with the builtin sleep()), also make usleep() croak if
1087b8851fccSafresh1		 asked for more than 1_000_000 useconds, from Jarkko Hietaniemi
1088b8851fccSafresh1	- 12366: Time::HiRes for VMS pre-7.0, from Charles Lane
1089b8851fccSafresh1	- 12199: do not use ftime on Win32, from Gurusamy Sarathy
1090b8851fccSafresh1	- 12196: use ftime() on Win32, from Artur Bergman
1091b8851fccSafresh1	- 12184: fix Time::HiRes gettimeofday() on Win32, from Gurusamy Sarathy
1092b8851fccSafresh1	- 12105: use GetSystemTime() on Win32, from Artur Bergman
1093b8851fccSafresh1	- 12060: explain the 1e9 seconds problem, from Jarkko Hietaniemi
1094b8851fccSafresh1	- 11901: UNICOS sloppy division, from Jarkko Hietaniemi
1095b8851fccSafresh1	- 11797: problem in HiRes.t, from John P. Linderman
1096b8851fccSafresh1	- 11414: prototype from Time::HiRes::sleep(), from Abhijit Menon-Sen
1097b8851fccSafresh1	- 11409: Time::HiRes qw(sleep) failed, from Abhijit Menon-Sen
1098b8851fccSafresh1	- 11270: dynix/ptx 4.5.2 hints fix, from Peter Prymmer
1099b8851fccSafresh1	- 11032: VAX VMS s/div/lib\$ediv/ fix, from Peter Prymmer
1100b8851fccSafresh1	- 11011: VAX VMS s/qdiv/div/ fix, from Peter Prymmer
1101b8851fccSafresh1	- 10953: SCO OpenServer 5.0.5 requires an explicit -lc for usleep(),
1102b8851fccSafresh1		 from Jonathan Stowe
1103b8851fccSafresh1	- 10942: MPE/IX test tweaks, from Mark Bixby
1104b8851fccSafresh1	- 10784: unnecessary pod2man calls, from Andy Dougherty
1105b8851fccSafresh1	- 10354: ext/ + -Wall, from Doug MacEachern
1106b8851fccSafresh1	- 10320: fix the BOOT section to call myU2time correctly
1107b8851fccSafresh1	- 10317: correct casting for AIX< from H. Merijn Brand
1108b8851fccSafresh1	- 10119: document that the core time() may be rounding, not truncating
1109b8851fccSafresh1	- 10118: test fix, from John Peacock
1110b8851fccSafresh1	-  9988: long =item, from Robin Barker
1111b8851fccSafresh1	-  9714: correct test output
1112b8851fccSafresh1	-  9708: test also the scalar aspect of getitimer()
1113b8851fccSafresh1	-  9705: Add interval timers (setitimer, getitimer)
1114b8851fccSafresh1	-  9692: do not require at least 5.005 using XS
1115b8851fccSafresh1
1116b8851fccSafresh1	The following changes were made on top of the changes
1117b8851fccSafresh1	made for Time::HiRes during the Perl 5.7 development
1118b8851fccSafresh1	cycle that culminated in the release of Perl 5.8.0.
1119b8851fccSafresh1
1120b8851fccSafresh1	- add "require 5.005" to the Makefile.PL
1121b8851fccSafresh1	- remove the REVISION section (CVS log) from HiRes.pm
1122b8851fccSafresh1	- add jhi's copyright alongside Douglas'
1123b8851fccSafresh1	- move HiRes.pm to lib/Time/
1124b8851fccSafresh1	- move HiRes.t to t/
1125b8851fccSafresh1	- modify HiRes.t to use $ENV{PERL_CORE}
1126b8851fccSafresh1	- modify the original Time::HiRes version 1.20 Makefile.PL
1127b8851fccSafresh1	  to work both with Perl 5.8.0 and the new code with pre-5.8.0
1128b8851fccSafresh1	  Perls (tried with 5.6.1)
1129b8851fccSafresh1	- tiny tweaks and updates in README and TODO
1130b8851fccSafresh1	- bump the VERSION to 1.29
1131b8851fccSafresh1
1132b8851fccSafresh11.20  Wed Feb 24 21:30 1999
1133b8851fccSafresh1	- make our usleep and ualarm substitutes into hrt_usleep
1134b8851fccSafresh1	  and hrt_ualarm. This helps static links of Perl with other
1135b8851fccSafresh1	  packages that also have usleep, etc. From
1136b8851fccSafresh1	  Ilya Zakharevich <ilya@math.ohio-state.edu>
1137b8851fccSafresh1	- add C API stuff. From Joshua Pritikin
1138b8851fccSafresh1	  <joshua.pritikin@db.com>
1139b8851fccSafresh1	- VMS Makefile.PL fun.	From pvhp@forte.com (Peter Prymmer)
1140b8851fccSafresh1	- hopefully correct "-lc" fix for SCO.
1141b8851fccSafresh1	- add PPD stuff
1142b8851fccSafresh1
1143b8851fccSafresh1	1.20 adds a platform neutral set of C accessible routines if you are
1144b8851fccSafresh1	running 5.005+.  All other changes are packaging changes and build
1145b8851fccSafresh1	fixes(?) for statically linked Perl, SCO, and VMS.
1146b8851fccSafresh1
1147b8851fccSafresh11.19  Tue Sep 29 22:30 1998
1148b8851fccSafresh1	- put VMS gettimeofday() in. Patch is from Sebastian Bazley
1149b8851fccSafresh1	  <seb@stian.demon.co.uk>
1150b8851fccSafresh1	- change GIMME_V to GIMME to help people with older versions of
1151b8851fccSafresh1	  Perl.
1152b8851fccSafresh1	- fix Win32 version of gettimeofday(). It didn't affect anything,
1153b8851fccSafresh1	  but it confuses people reading the code when the return value
1154b8851fccSafresh1	  is backwards (0 is success).
1155b8851fccSafresh1	- fix Makefile.PL (more) so that detection of gettimeofday is
1156b8851fccSafresh1	  more correct.
1157b8851fccSafresh1
1158b8851fccSafresh1	1.19 has better VMS support.
1159b8851fccSafresh1
1160b8851fccSafresh11.18  Mon Jul 6 22:40 1998
1161b8851fccSafresh1	- add usleep() for Win32.
1162b8851fccSafresh1	- fix Makefile.PL to fix reported HP/UX feature where unresolved
1163b8851fccSafresh1	  externals still cause an executable to be generated (though no
1164b8851fccSafresh1	  x bit set). Thanks to David Kozinn for report and explanation.
1165b8851fccSafresh1	  Problems with the fix are mine :)
1166b8851fccSafresh1
1167b8851fccSafresh1	1.18 has limited Win32 support (no ualarm). Added usleep for Win32.
1168b8851fccSafresh1	Probably buggy. I'm sure I'll hear.
1169b8851fccSafresh1
1170b8851fccSafresh11.17  Wed Jul 1 20:10 1998
1171b8851fccSafresh1	- fix setitimer calls so microseconds is not more than 1000000.
1172b8851fccSafresh1	  Hp/UX 9 doesn't like that. Provided by Roland B Robert, PhD.
1173b8851fccSafresh1	- make Win32. We only get gettimeofday (the select hack doesn't
1174b8851fccSafresh1	  seem to work on my Win95 system).
1175b8851fccSafresh1	- fix test 4 on 01test.t. add test to see if time() and
1176b8851fccSafresh1	  Time::HiRes::time() are close.
1177b8851fccSafresh1
1178b8851fccSafresh11.16  Wed Nov 12 21:05 1997
1179b8851fccSafresh1	- add missing EXTEND in new gettimeofday scalar code.
1180b8851fccSafresh1
1181b8851fccSafresh1	1.16+ should be closer to building out of the box on Linux. Thanks
1182b8851fccSafresh1	to Gisle Aas for patches, and the ualarm equivalent using setitimer.
1183b8851fccSafresh1
1184b8851fccSafresh1	If your underlying operating system doesn't implement ualarm(), then
1185b8851fccSafresh1	a fake using setitimer() will be made.  If the OS is missing usleep(),
1186b8851fccSafresh1	a fake one using select() will be made. If a fake can't be made for
1187b8851fccSafresh1	either ualarm() or usleep(), then the corresponding Perl function will
1188b8851fccSafresh1	not be available.  If the OS is missing gettimeofday(), you will get
1189b8851fccSafresh1	unresolved externals, either at link- or run-time.
1190b8851fccSafresh1
1191b8851fccSafresh1	This is an improvement; the package used to not even build if
1192b8851fccSafresh1	you were missing any of these bits. Roderick Schertler
1193b8851fccSafresh1
1194b8851fccSafresh1	<roderick@argon.org> did all the conditional compilation stuff,
1195b8851fccSafresh1	look at HiRes.pm and the test suites; it's good educational reading.
1196b8851fccSafresh1
1197b8851fccSafresh11.15  Mon Nov 10 21:30 1997
1198b8851fccSafresh1	- HiRes.pm: update pod. Provided by Gisle Aas.
1199b8851fccSafresh1	- HiRes.xs: if gettimeofday() called in scalar context, do
1200b8851fccSafresh1	  something more useful than before. Provided by Gisle Aas.
1201b8851fccSafresh1	- README: tell of xsubpp '-nolinenumber' woes. thanks to
1202b8851fccSafresh1	  Edward Henigin <ed@texas.net> for pointing out the problem.
1203b8851fccSafresh1
1204b8851fccSafresh11.14  Wed Nov 5 9:40 1997
1205b8851fccSafresh1	- Makefile.PL: look for setitimer
1206b8851fccSafresh1	- HiRes.xs: if missing ualarm, but we have setitimer, make up
1207b8851fccSafresh1	  our own setitimer. These were provided by Gisle Aas.
1208b8851fccSafresh1
1209b8851fccSafresh11.13  Tue Nov 4 23:30 1997
1210b8851fccSafresh1	- Makefile.PL: fix autodetect mechanism to do try linking in addition
1211b8851fccSafresh1	  to just compiling; should fix Linux build problem. Fix was provided
1212b8851fccSafresh1	  by Gisle Aas.
1213b8851fccSafresh1
1214b8851fccSafresh11.12  Sun Oct 12 12:00:00 1997
1215b8851fccSafresh1	- Makefile.PL: set XSOPT to '-nolinenumbers' to work around xsubpp bug;
1216b8851fccSafresh1	  you may need to comment this back out if you have an older xsubpp.
1217b8851fccSafresh1	- HiRes.xs: set PROTOTYPES: DISABLE
1218b8851fccSafresh1
1219b8851fccSafresh11.11  Fri Sep 05 16:00:00 1997
1220b8851fccSafresh1	- Makefile.PL:
1221b8851fccSafresh1	  Had some line commented out that shouldn't have been (testing
1222b8851fccSafresh1	  remnants)
1223b8851fccSafresh1	- README:
1224b8851fccSafresh1	  Previous version was corrupted.
1225b8851fccSafresh1
1226b8851fccSafresh11.10  Thu May 22 20:20:00 1997
1227b8851fccSafresh1	- HiRes.xs, HiRes.pm, t/*:
1228b8851fccSafresh1	      -	only compile what we have OS support for (or can
1229b8851fccSafresh1		fake with select())
1230b8851fccSafresh1	      - only test what we compiled
1231b8851fccSafresh1	      - gross improvement to the test suite
1232b8851fccSafresh1	      - fix EXPORT_FAIL.
1233b8851fccSafresh1	  This work was all done by Roderick Schertler
1234b8851fccSafresh1	  <roderick@argon.org>. If you run Linux or
1235b8851fccSafresh1	  one of the other ualarm-less platforms, and you like this
1236b8851fccSafresh1	  module, let Roderick know; without him, it still wouldn't
1237b8851fccSafresh1	  be working on those boxes...
1238b8851fccSafresh1	- Makefile.PL: figure out what routines the OS has and
1239b8851fccSafresh1	  only build what we need. These bits were written by Jarkko
1240b8851fccSafresh1	  Hietaniemi <jhi@iki.fi>. Again, gratitude is due...
1241b8851fccSafresh1
1242b8851fccSafresh11.02  Mon Dec 30 08:00:00 1996
1243b8851fccSafresh1	- HiRes.pm: update documentation to say what to do when missing
1244b8851fccSafresh1	  ualarm() and friends.
1245b8851fccSafresh1	- README: update to warn that ualarm() and friends need to exist
1246b8851fccSafresh1
1247b8851fccSafresh11.01  Fri Oct 17 08:00:00 1996
1248b8851fccSafresh1	- Makefile.PL: make XSPROTOARGS => '-noprototyopes'
1249b8851fccSafresh1	- HiRes.pm: put blank line between __END__ and =head1 so that
1250b8851fccSafresh1	  pod2man works.
1251b8851fccSafresh1
1252b8851fccSafresh11.00  Tue Sep 03 13:00:00 1996
1253b8851fccSafresh1	- original version; created by h2xs 1.16
1254