@@ -1,5 +1,13 @@
+0.52 2015.04.16
+ The type of the Time::NVtime pointer is NV ()() not double ()(), as can be seen from looking at the Time::HiRes source.
+ On Linux x86_64 on a uselongdouble build when you replace the Time::NVtime entry with a
+ double (*)() pointer calls to that function end up leaving an entry on the FPU stack,
+ eventually causing the failure seen at https://rt.perl.org/Ticket/Display.html?id=123879
+ This minimal commit fixes that issue and allows DBIX::Class::TimeStamp to pass its tests.
+ (Tony Cook)
-0.51 2014-10-17
+
+0.51 2014.10.17
New maintainer (SZABGAB)
Use Test::More instead of Test
Include META.yml RT #77752
@@ -4,7 +4,7 @@
"Joshua Nathaniel Pritikin <jpritikin@pobox.com>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060",
+ "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001",
"license" : [
"perl_5"
],
@@ -48,5 +48,5 @@
"x_license" : "http://dev.perl.org/licenses/"
}
},
- "version" : "0.51"
+ "version" : "0.52"
}
@@ -7,7 +7,7 @@ build_requires:
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060'
+generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,4 +22,4 @@ requires:
resources:
bugtracker: http://github.com/szabgab/Time-Warp
repository: http://github.com/szabgab/Time-Warp.git
-version: '0.51'
+version: '0.52'
@@ -5,7 +5,7 @@ require Exporter;
require DynaLoader;
@ISA = qw(DynaLoader Exporter);
@EXPORT_OK = qw(reset to scale time);
-$VERSION = '0.51';
+$VERSION = '0.52';
__PACKAGE__->bootstrap($VERSION);
@@ -14,7 +14,7 @@ extern "C" {
/* Is time() portable everywhere? Hope so! XXX */
-static double fallback_NVtime()
+static NV fallback_NVtime()
{ return time(0); }
static void fallback_U2time(U32 *ret)
@@ -26,7 +26,7 @@ static void fallback_U2time(U32 *ret)
/*-----------------*/
static int Installed=0;
-static double (*realNVtime)();
+static NV (*realNVtime)();
static void (*realU2time)(U32 *);
static double Lost; /** time relative to now */
@@ -42,7 +42,7 @@ static void reset_warp()
/*-----------------*/
-static double warped_NVtime()
+static NV warped_NVtime()
{
double now = (*realNVtime)() - Lost;
double delta = now - Zero;
@@ -84,7 +84,7 @@ install_time_api()
}
svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0);
if (!SvIOK(*svp)) croak("Time::NVtime isn't a function pointer");
- realNVtime = (double(*)()) SvIV(*svp);
+ realNVtime = (NV(*)()) SvIV(*svp);
svp = hv_fetch(PL_modglobal, "Time::U2time", 12, 0);
if (!SvIOK(*svp)) croak("Time::U2time isn't a function pointer");
realU2time = (void(*)(U32*)) SvIV(*svp);