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