Skip to content

Commit 6cf4087

Browse files
authored
Merge pull request #9 from pryrt/v0.014_rc
v0.014 - passed v0.014_rc testing; ready for release
2 parents 1bb300f + 2f02ea2 commit 6cf4087

File tree

3 files changed

+39
-63
lines changed

3 files changed

+39
-63
lines changed

CHANGES

Lines changed: 21 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,22 @@
11
Revision history for Perl module Data::IEEE754::Tools.
22

3-
v0.013 Development Version
4-
- v0.013_010: added spaceship-style equivalents of totalOrder and totalOrderMag
5-
+ add compareFloatingValue() and compareFloatingMag(), with test suite in t\08-totalorder
6-
- v0.013_009: add :signbit -> copy() (with coverage) for completeness
7-
IN PROGRESS = <https://rt.cpan.org/Ticket/Display.html?id=116155>
8-
- v0.013_008: Devel::Cover showed SKIP was too aggressive in t\09 and t\10, so never tested
9-
negate in v0.013_007.
10-
+ FIXED BUG: t\09-signbit: while verifying test coverage in v0.013_008, discovered
11-
that signbit test was never testing negate, because the SKIP was too aggressive;
12-
once I de-aggressified the SKIP, finding more failures.
13-
+ it looks like NEG_IND is not properly sign-changed to POS_IND, either... need to
14-
investigate further on multiple systems
15-
+ Determined that it's pointless to keep trying to make CORE::abs() pass the tests.
16-
Rename Data::IEEE754::Tools::absolute() to ...::abs(), and stop testing the
17-
CORE::abs(). Just make a note that exporting abs or :signbit will override the
18-
builtin behavior, and explain how to still access CORE::abs().
19-
+ remove isCoreAbsWrongForNegNaN(), since apparently Perl itself is the culprit, not
20-
certain implementations. (The auto-stringification of NaN was sometimes not
21-
distinguishing the sign bits.)
22-
+ t\10-copysign: switch to the to_hex_floatingpoint() for comparing abs($x) to abs($z),
23-
to avoid the same display bug that masked the CORE::abs() bug for 5.8.5 and 5.24.0.
24-
- v0.013_007: CPAN Testers for a slew of errors for v0.013_006, so fix those
25-
FIXED = <https://rt.cpan.org/Ticket/Display.html?id=117163>
26-
+ BUG DESCRIPTION: in some configs, the 09-signbit and 10-copysign values have wrong sign
27-
+ added isCoreAbsWrongForNegNaN() to indicate systems for which CORE::abs() has the wrong
28-
sign.
29-
+ t\09-signbit: Use that to skip the NaN tests relying on CORE::abs().
30-
+ t\10-copysign: Use absolute() instead of abs() for verifying the magnitude copied correctly
31-
from argument x.
32-
- v0.013_006: fixing isSignaling bug in test suite
33-
FIXED BUG = <https://rt.cpan.org/Ticket/Display.html?id=117041>
34-
+ add isSignalingConvertedToQuiet() to indicate implementations that make it quiet
35-
+ Test::More::skip() t/07 iff isSignalingConvertedToQuiet and (isSignaling or class eq signalingNaN)
36-
+ Test::More::skip() t/08 iff isSignalingConvertedToQuiet and (one signaling other quiet)
37-
- v0.013_005: adding negate(), abs(), copySign()
38-
IN PROGRESS = <https://rt.cpan.org/Ticket/Display.html?id=116155>
39-
+ negate(), absolute(), copySign() working and tested
40-
+ CORE::abs() confirmed to be equivalent to absolute(); documented as such
41-
(and still remains in the test suite)
42-
- v0.013_004: adding totalOrder, totalOrderMag()
43-
IN PROGRESS = <https://rt.cpan.org/Ticket/Display.html?id=116155>
44-
+ totalOrder() working as I expect: use the trick for both-NaN to convert
45-
them to a real number by changing the exponents to the same value, and doing
46-
a numerical comparison
47-
+ totalOrderMag() = flip the sign bit, then call totalOrder
48-
- v0.013_003: adding 5.7.2 informational operations, adding coverage in t/07*.t;
49-
IN PROGRESS = <https://rt.cpan.org/Ticket/Display.html?id=116155>
50-
+ nextup(), nextdown(), nextafter() => renamed to nextUp(), nextDown(), nextAfter()
51-
to agree with IEEE Std 754-2008 nomenclature.
52-
+ finished the isXxx(): isSignMinus .. isCanonical;
53-
+ finished: class(), radix()
54-
- TODO: totalOrder(), totalOrderMag()
55-
- v0.013_002: add the constants; add test coverage for :constants
56-
FIXED = <https://rt.cpan.org/Ticket/Display.html?id=116154>
57-
- v0.013_001: swap out old ulp() for ulp_by_div(), which benchmarks said ran
58-
50-60% more effeciently; still passes existing tests.
59-
FIXED = <https://rt.cpan.org/Ticket/Display.html?id=116153>
3+
v0.014 2016-Aug-29
4+
- feature request <https://rt.cpan.org/Ticket/Display.html?id=116155>
5+
+ add many functions
6+
:ulp => ulp, nextUp, nextDown, nextAfter
7+
:info => isSignMinus, isNormal, isFinite, isNaN, isSignaling,
8+
isSignalingConvertedToQuiet, isCanonical, class, radix, totalOrder,
9+
totalOrderMag, compareFloatingValue, compareFloatingMag
10+
:signbit => copy, negate, abs, copySign, isSignMinus
11+
- feature request <https://rt.cpan.org/Ticket/Display.html?id=116154>
12+
+ add :constants
13+
- feature request <https://rt.cpan.org/Ticket/Display.html?id=116153>
14+
+ update ulp() with new, faster method
15+
16+
v0.013
17+
- Odd versions are development versions, used for developing and verifying
18+
new features and bug fixes. There may have been one or more alpha
19+
subversions (v0.013_001, etc).
6020

6121
v0.012 2016-Jul-14
6222
- test coverage: Devel::Cover showed two conditionals which can only ever
@@ -87,10 +47,12 @@ v0.012 2016-Jul-14
8747
"work" if the installation is forced)
8848

8949
v0.011
90-
- Bugfix verification alpha releases
50+
- Odd versions are development versions, used for developing and verifying
51+
new features and bug fixes. There may have been one or more alpha
52+
subversions (v0.011_001, etc).
9153

9254
v0.010 Fri Jul 08 16:50:00 PDT 2016
9355
- Initial release
9456

9557
v0.001 - v0.008
96-
- Private development
58+
- Initial development; no public releases

Makefile.PL

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,18 @@ use 5.006;
2121
if( $ExtUtils::MakeMaker::VERSION >= '6.46' ) {
2222
$mm_args{META_MERGE} = {
2323
resources => {
24-
bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Data-IEEE754-Tools',
24+
bugtracker => {
25+
mailto => '[email protected]',
26+
web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Data-IEEE754-Tools',
27+
},
2528
repository => 'https://github.com/pryrt/Data-IEEE754-Tools',
2629
},
2730
keywords => [ 'IEEE-754', 'floating point representation'],
31+
provides => {
32+
'Data::IEEE754::Tools' => {
33+
file => 'Tools.pm',
34+
}
35+
}
2836
},
2937
}
3038
if( $ExtUtils::MakeMaker::VERSION >= '6.31' ) {
@@ -36,6 +44,11 @@ use 5.006;
3644
if( $ExtUtils::MakeMaker::VERSION >= '6.52' ) {
3745
$mm_args{CONFIGURE_REQUIRES} = {
3846
'ExtUtils::MakeMaker' => 0,
47+
'warnings' => 0,
48+
'strict' => 0,
49+
'Test::More' => 0.86,
50+
'constant' => 0,
51+
'Config' => 0,
3952
},
4053
}
4154
if( $ExtUtils::MakeMaker::VERSION >= '6.64' ) {

Tools.pm

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use strict;
55
use Carp;
66
use Exporter 'import'; # just use the import() function, without the rest of the overhead of ISA
77

8-
use version 0.77; our $VERSION = version->declare('0.013_010');
8+
use version 0.77; our $VERSION = version->declare('0.014');
99

1010
=pod
1111
@@ -148,7 +148,7 @@ my @EXPORT_CONST = qw(
148148
my @EXPORT_INFO = qw(isSignMinus isNormal isFinite isZero isSubnormal
149149
isInfinite isNaN isSignaling isSignalingConvertedToQuiet isCanonical
150150
class radix totalOrder totalOrderMag compareFloatingValue compareFloatingMag);
151-
my @EXPORT_SIGNBIT = qw(copy negate abs isCoreAbsWrongForNegNaN copySign isSignMinus);
151+
my @EXPORT_SIGNBIT = qw(copy negate abs copySign isSignMinus);
152152

153153
our @EXPORT_OK = (@EXPORT_FLOATING, @EXPORT_RAW754, @EXPORT_ULP, @EXPORT_CONST, @EXPORT_INFO, @EXPORT_SIGNBIT);
154154
our %EXPORT_TAGS = (
@@ -974,7 +974,8 @@ the sub.
974974
Peter C. Jones C<E<lt>petercj AT cpan DOT orgE<gt>>
975975
976976
Please report any bugs or feature requests emailing C<E<lt>bug-Data-IEEE754-Tools AT rt.cpan.orgE<gt>>
977-
or thru the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-IEEE754-Tools>.
977+
or thru the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-IEEE754-Tools>,
978+
or thru the repository's interface at L<https://github.com/pryrt/Data-IEEE754-Tools/issues>.
978979
979980
=head1 COPYRIGHT
980981

0 commit comments

Comments
 (0)