version 0.013; 2017-08-17 * automatically use the -lrt library on systems where it is required in order to get access to clock_gettime(3) * avoid multiple definitions of U64 (not valid C90 or C99) that happened on Perl 5.23.2 and above * skip thread tests on some old versions of Perl (around 5.10.0) where a core bug makes thread creation violate an internal assertion and causes crashes * in documentation, note that some versions of Windows provide clock_gettime(CLOCK_REALTIME) as another interface to the GetSystemTimeAsFileTime() functionality * in documentation, note that clock_gettime(CLOCK_REALTIME) is indeed used on Cygwin * have autoconfiguration macros always defined, with truth value rather than definedness being significant * correct indentation of some C preprocessor directives version 0.012; 2017-08-09 * bugfix: fix handling of the demanding-accuracy parameter on Perl 5.6, where it could be interpreted as the wrong value in either direction and could erroneously warn about non-numeric values * bugfix: fix compilability of Win32 GetSystemTimeAsFileTime() code by properly defining the U64 type * bugfix: where ntp_adjtime() doesn't supply the actual time, properly handle finding the larger magnitude of the two offset values seen when the offset is negative * bugfix: when loading modules from XS, generate NV form of required version number through Perl's own Atof() conversion function, rather than casting from a C double that might suffer rounding error or might otherwise produce different results from the Perl conversions against which it must be compared * support clock_gettime(CLOCK_REALTIME), the POSIX replacement for gettimeofday() which provides nanosecond resolution * support clock_gettime(CLOCK_UTC), Markus Kuhn's proposed POSIX-like interface for leap-second-correct UTC with a fixed inaccuracy bound * check sub-second field values yielded by ntp_adjtime(), ntp_gettime(), and gettimeofday(), rejecting those that are out of range, such as the out of range values from ntp_gettime() resulting from a FreeBSD kernel bug that confuses microsecond and nanosecond resolution * be more careful to avoid and handle arithmetic overflows when computing the inaccuracy bound supplied by ntp_adjtime() * in documentation, describe the FreeBSD kernel bug that confuses microsecond and nanosecond resolution * in documentation, note that Linux now has the configurable-resolution version of ntp_adjtime() * in documentation, no longer describe the FreeBSD configurable-resolution ntp_adjtime() code as experimental * in documentation, no longer describe the Windows GetSystemTimeAsFileTime() code as experimental * in documentation, note adjtimex() as another name for ntp_adjtime() * in documentation, clarify that the mechanisms are listed in preference order * new test script that displays the results of all available mechanisms, to get that into test reports as a porting/debugging aid version 0.011; 2017-07-29 * update automatic configuration to not rely on . in @INC, which is no longer necessarily there from Perl 5.25.7 * respect extra_linker_flags in automatic configuration tests * avoid declaration-after-statement in C code (not valid in C90) * no longer include a Makefile.PL in the distribution * in documentation, use four-column indentation for all verbatim material * in META.{yml,json}, point to public bug tracker * avoid some compiler warnings that arise on Perl 5.6 * regularise layout of CLONE method definition * fix a typo in a C comment version 0.010; 2012-02-16 * repair portability to pre-5.8.6 non-threading Perls * in documentation and comment, update location of Mills paper * tweak thread cloning test version 0.009; 2012-02-13 * bugfix: require bugfixed version of Math::BigRat (for construction from decimal fraction strings) * bugfix: when loading Math::BigRat, do it in a way that isn't vulnerable to the bug in Perls prior to 5.12 regarding loading context-sensitive modules * bugfix: when calling Time::Unix::time(), don't be too picky about the internal flags on its return value * new now_utc_dec() function to return time in the decimal string form processed by Math::Decimal * refactor documentation for time determination functions * test that now_*() functions return well-formed results * test thread safety (except for thread cloning on Perl 5.6) * new internal architecture to better handle multiple time acquisition APIs * perform transformations of time data into output formats in XS code * new undocumented function to query all time acquisition APIs, for porting and debugging * in XS, declare "PROTOTYPES: DISABLE" to prevent automatic generation of unintended prototypes * correct dynamic_config setting to 0 * include META.json in distribution * convert .cvsignore to .gitignore * add MYMETA.json to .cvsignore version 0.008; 2010-10-20 * in XS, use PERL_NO_GET_CONTEXT for efficiency * in XS, declare all local symbols static * load some modules at build time instead of configure time, to avoid dependency problems * check for required Perl version at runtime * use full stricture in test suite * in Build.PL, explicitly declare configure-time requirements * remove bogus "exit 0" from Build.PL * slightly reformat some C code to avoid exceeding 80 columns * add MYMETA.yml to .cvsignore version 0.007; 2009-03-24 * bugfix: require bugfixed versions of Data::Float and Module::Runtime (for $SIG{__DIE__} handling) * use Win32 API GetSystemTimeAsFileTime() where available * when dealing with the BSD nanosecond-resolution ntp_gettime(), process the uncertainty bound with nanosecond resolution * document the origin of each API that the module attempts to use * separate code for different APIs into different C functions * use typemap to simplify handling of Boolean argument * much improved probe system * don't use ppport.h, because it wasn't doing anything for perl v5.6+ * use simpler "parent" pragma in place of "base" * build with Module::Build instead of ExtUtils::MakeMaker * rearrange source tree to fit Module::Build convention * test POD syntax and coverage, and make a small style change in documentation to satisfy the coverage test * complete dependency list * include signature in distribution * in documentation, separate "license" section from "copyright" section version 0.006; 2007-02-05 * add the utc_day_to_mjdn() function, duplicated from Time::UTC, for interoperability with other code that deals with UT days * when falling back on time(), add half a second onto its return value, because it rounds down version 0.005; 2007-01-14 * handle FreeBSD variations of ntp_gettime() interface: use of struct timespec instead of struct timeval; time may be returned with nanosecond precision instead of microsecond; leap state returned in time_state member of struct ntptimeval instead of return value of ntp_gettime() * in documentation, list OS-specific experiences (so far for Cygwin, FreeBSD, Linux, and Solaris) * when performing configuration tests in Makefile.PL, display the content of the test as well as the compilation command line version 0.004; 2006-08-05 * in now_utc_flt(), allow for the rounding error in converting the uncertainty value to floating point, as well as the rounding error in converting the seconds value to floating point * in now_utc_flt(), when allowing for the rounding error in converting to floating point, use the actual parameters of the floating point type (from Data::Float) instead of assuming IEEE 754 double * use "=> 0" instead of "=> undef" in unversioned dependencies in Makefile.PL version 0.003; 2006-06-29 * use ntp_gettime() in addition to ntp_adjtime() on systems where struct timex does not include the `time' member (the current time): this situation has been seen on FreeBSD 5.4 and Solaris 10, and prevented compilation of the previous version * zero out entire timex structure before ntp_adjtime(), not just the `modes' member, for the benefit of systems that check validity of unused control variables: this problem caused fallback to gettimeofday() on affected systems * include XSLoader in dependency list in Makefile.PL * various documentation clarifications * discuss overflow of day number for now_utc_sna() * add Time::TAI::Now to "see also" list version 0.002; 2006-05-19 * add the utc_day_to_cjdn() function, duplicated from Time::UTC, to avoid the need to use that module in order to process the output of this one * documentation tweaks for clarity version 0.001; 2006-05-17 * bugfix: Unix epoch was wrong in the code, making all returned values a day out version 0.000; 2006-05-16 * initial released version