Revision history for Perl module Math::GMPf
0.52
- Division-by-zero now croaks, rather than die in silence.
- Simplify overloading of '++' and '--'.
- Avoid monitoring PL_markstack_ptr in GMPf.xs and Random/Random.xs
0.51
- Add Random/t/a_v_random.t
- Accommodate MS Visual Studio builds of perl
0.49
- Fix some bugs in t/NOK_and_POK.t that did not cater for the possibility
that nvtype is __float128
- Enable building on Cygwin -Dusequadmath perls. (Add '-lquadmath' link to LIBS.)
0.48
- Correction to NaN handling test - the need for which is demonstrated at:
http://www.cpantesters.org/cpan/report/d284d78e-99ce-11ec-816f-efdcdd96d0b2
- Work around perl bug in https://github.com/Perl/perl5/issues/19550.
(Affected only perl-5.35.10.)
0.47
- Fix bug re inconsistent settings of POK and NOK flag, which manifests itself as (eg):
http://www.cpantesters.org/cpan/report/dc559306-900b-11ec-bfc9-d1f1448276d4
It's a bug that rarely bites, and applies mainly (but not only) to perl-5.18.x and
earlier.
0.46
- Fix https://github.com/sisyphus/math-decimal64/pull/1 (also aplies to Math::GMPf)
Thanks to @hiratara
- Remove all references to _MSC_VER.
0.45
- Simplify Makefile.PL.
- Replace XS defines NV_IS_FLOAT128 and NV_IS_LONG_DOUBLE with
USE_QUADMATH and USE_LONG_DOUBLE (which are already defined by perl headers).
- Add Rmpf_cmp_NV and Rmpf_cmp_IV
- Add Rmpf_init_set_NV and Rmpf_init_set_IV
- Remove Rmpf_fits_UV_p and alter Rmpf_fits_IV_p to cater for unsigned values (UV).
This is now how it should always have been.
- Add POK_flag(), IOK_flag(), NOK_flag (@EXPORT_OK only)
- 2nd arg to Rmpf_cmp_IV and Rmpf_set_IV must have its IOK flag set.
- 2nd arg to Rmpf_cmp_NV and Rmpf_set_NV must have its NOK flag set.
0.44
- Prototype subroutines listed in 'use subs()'.
- Move POD out of GMPf.pm and into (newly created) GMPf.pod.
- Remove POSIX dependency from t/get_set_NV.t.
- Refactor IV/UV/NV/PV handling inside overload subs.
0.43
- Fix test script bugs (t/NOK_and_POK.t).
- Re DoubleDouble arch, fix _Rmpf_set_ld and tweak t/get_set_NV.t
- Add Rmpf_get_d_rndn, Rmpf_get_ld_rndn, Rmpf_get_float128_rndn and Rmpf_get_NV_rndn.
0.42
- Remove gmp_v from Math::GMPf::V as we don't want any library functions in that module.
- Replace SvUV/SvIV/SvNV with SvUVX/SvIVX/SvNVX where appropriate. (In typemap, too.)
- Add Rmpf_get_NV and Rmpf_set_NV.
- Handle NOK/POK dualvars.
- Add Rmpf_set_IV, Rmpf_get_IV, Rmpf_fits_IV_p and Rmpf_fits_UV_p.
0.41
- Tweaks to Math::GMPf::gmp_v() and Math::GMPf::V::gmp_v()
- Add metadata to Makefile.PL.
- No longer define USE_64_BIT_INT if ivtype is 'long'.
- Rename USE_64_BIT_INT #define to MATH_GMPF_NEED_LONG_LONG_INT
- PREREQ_PM => {'Exporter' => '5.58'} to avoid test failures on pre perl-5.8.4
(Thanks Peter Acklam.)
0.39
- Additional tweaks to t/overload.t and t/use64bitint.t in relation to accommodating
the possibility that the underlying gmp library represents the decimal point with
a comma.
0.38
- Fix t/new.t, t/overload.t, t/printf.t, t/test1.t, t/TRmpf_out_str.t, t/use64bitint.t
to accommodate the possibility that the underlying gmp library represents the decimal
point with a comma.
0.37
- Add Math::GMPf::__GNU_MP_RELEASE.
- The gmp library incorrectly returns false for mpfr_fits_uint_p(x) for
-1.0 < x < 0.0. (This should be fixed in versions of gmp later than 5.1.1.)
Have Rmpf_fits_uint_p() return a correct result irrespective of the
version of gmp being used - and have the Math:GMPf test suite test for this.
- Alter V.xs to accommodate the possibility that the global constant gmp_version
has not been set in gmp.h. I've assumed this can only happen if the gmp
library version is earlier than 4.0.0. (The gmp ChangeLog indicates that this
is so.)
- Alter wrap_gmp_sprintf and wrap_gmp_snprintf to take an extra arg (length of
buffer to which we write).
This now means that Rmpf_sprintf and Rmpf_snprintf require an extra argument.
- Remove Rmpf_sprintf_ret and Rmpf_snprintf_ret. (These now seem pointless in
view of the changes to wrap_gmp_sprintf and wrap_gmp_snprintf.)
- No longer include inttypes.h on the basis of USE_LONG_DOUBLE being defined.
(Was harmless ... but didn't make much sense.)
- Define PERL_NO_GET_CONTEXT (in XS code).
0.36
- Fix test 3i in new.t. (It wasn't allowing for the case where perl was built
with long double support, but ivsize was still 4.
- Alter the way that strEQ gets hold of HvNAME(SvSTASH(SvRV(sv))) - so that -Wall
doesn't emit "null argument" warnings. (Thanks Daniel Kahn Gillmor.)
0.35
- Add Math::GMPf::V
- Add overload_inc and overload_dec functions.
- Accommodate cross-class overloaded arithmetic with Math::MPFR.
0.34
- Remove 'not' from overloads. Apparently achieved nothing anyway, and 5.16
warns that it's invalid.
0.33
- In the documentation, elaborate on the way that Math::GMPf::get_v() and
__GNU_MP_VERSION & friends determine their values. (Thanks Vincent Lefevre.)
0.32
- Fix Random.xs so that it compiles with gmp-4 (not just gmp-5).
Thanks Rob Kuo (https://rt.cpan.org/Ticket/Display.html?id=58501)
0.31
- Improved coverage of 'random' functions.
0.30
- Add Rmpf_snprintf and Rmpf_snprintf_ret.
- Fix test 18 in test1.t. (It *was* checking the first 96 bits of two
64-bit numbers for equality ... which seems a bit dubious, and not
always guaranteed to succeed.)
0.29
- 2 missing ';' in the XS file (subs ___GMP_CC and ___GMP_CFLAGS) meant
that version 0.28 wouldn't build with some compilers. Now fixed.
- If there's no variable to be formatted, Rmpf_(f/s)printf no longer
need to be supplied with a dummy variable.
- Some buggy tests in printf.t hopefully fixed.
0.28
Requires gmp-4.2.0 or later
In response to bug http://rt.cpan.org/Ticket/Display.html?id=46499:
- Amendment to Makefile.PL wrt 'long long' and 'long double' support.
- Remove reliance on $Config{use64bitint} in t/new.t and t/out_str.t
- Add some MAC OS X notes to README and fix some typos.
In response to bug http://rt.cpan.org/Ticket/Display.html?id=46603
- In Rmpf_get_d_2exp, change data type of 'exp' from unsigned to signed,
and return exp as an IV not a UV.
In response to bug http://rt.cpan.org/Ticket/Display.html?id=46604
- Fix ___GMP__CC() and ___GMP_CFLAGS() so that they return undef
if __GMP_CC and __GMP_CFLAGS are not defined by the gmp library.
Thanks, Bob Kuo and Jonathan Leto.
0.27
- Requires gmp-4.2.3 or later.
- Remove (the need for) INLINE.h.
- Change Rmpf_sprintf to return the number of characters written.
- Add __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR, __GNU_MP_VERSION_PATCHLEVEL,
__GMP_CC and __GMP_CFLAGS
- Fix overload_copy sub so that the copy preserves the precision of the original.
- Change Rmpf_printf() so that, like its fprintf and sprintf counterparts,
it formats only one variable at a time.
0.26
- Add Rmpf_fprintf, Rmpf_sprintf and Rmpf_sprintf_ret
- Finally fix (hopefully) the bug in the test1.t test script (that was
supposed to be fixed by the release of 0.25).
0.25
- Fix bug in test1.t tests script that resulted in a reported
'make test' failure on many platforms.
0.24
- Add TRmpf_out_str and TRmpf_inp_str.
- Rmpf_out_str now also takes an optional prefix argument.
- Remove the tests in the Makefile.PL that test for the presence of
a suitable compiler and GMP library.
- Minor bugfix to Rmpf_out_str. (Zero was being returned as '0.' and
therefore boolean "true".)
0.15
- Fix bug in test suite. (Test 12 in test1.t improperly constructed.)
- Rewrite new().
- Rmpf_out_str() now takes an optional fourth argument - a string
that will be appended to the mpf_out_str() output. Also stdout is
fflush()'d each time Rmpf_out_str() is called.
- The overload functions and new() can now handle a long double value
correctly
- Rewrite Rmpf_get_str to start with a leading zero, and to use 'e'
instead of '@' (for bases <= 10).
0.14
- First CPAN release
- No longer assign Exporter and DynaLoader to @Math::GMPf::ISA.
- Fix bug in tests 35, 26 and 37 in overload.t
- Add support for perls built with -Duse64bitint.
- add new() function/method to facilitate initialization/assignment