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