Revision history for Perl module Math::GMPq
0.55
- Fix bugs in t/overload_op_eq.t
0.54
- Expand cross-class overloading to include +=, -=, *=, /=, and **= operations,
conditionally available only when $Math::GMPq::RETYPE has been set to 1.
- Simplify overloading of '++' and '--'.
0.53
- Add Random/t/a_v_random.t
- Accommodate MS Visual Studio builds
0.52
- Limit test in Makefile.PL for GMPQ_PV_NV_BUG to perl-5.35.9 and earlier.
- Enable building on Cywin quadmath builds. (Add '-lquadmath' to LIBS.)
0.51
- Fix bug re inconsistent settings of POK and NOK flag, which manifests itself as (eg):
http://www.cpantesters.org/cpan/report/dc52fbe6-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.49
- Fix https://github.com/sisyphus/math-decimal64/pull/1 (also aplies to Math::GMPq)
Thanks to @hiratara
- Remove all references to _MSC_VER
0.48
- Fix Rmpq_cmp_NV for doubledouble NVs.
- Fix overloading of comparison operators for doubledouble NVs
- Add Rmpq_set_IV and Rmpq_cmp_IV functions.
- Add POK_flag(), IOK_flag(), NOK_flag (@EXPORT_OK only)
- 2nd and 3rd args to Rmpq_cmp_IV and Rmpq_set_IV must have its IOK flag set.
- 2nd arg to Rmpq_cmp_NV and Rmpq_set_NV must have its NOK flag set.
0.47
- Add "use warnings;" to GMPq.pm.
- Refactor IV/UV/NV/PV handling inside overload subs.
- Fix bug in overload_equiv. (A cast to 'long double' needed to become a
cast to '__float128'.
- Add Rmpq_get_NV function.
- Fix Rmpq_set_NV for doubledouble NVs.
- Add '0+' overloading.
- Simplify Makefile.PL and README
- 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).
0.46
- Fix bug in t/divby0.t.
- Create header file math_gmpq_include.h.
- Prototype subroutines listed in 'use subs()'.
0.45
- Fix and test for division by 0. (Now croaks on divby0 instead of crashing.)
Fix (and test) Rmpq_z_div for the case when z == 0.
0.44
- Fix bugs in t/z_arith_2.t and t/z_arith_overload.t. (Hadn't checked for
Math::GMPz availability.)
- In a couple of Newxz() calls, cast "buffer_size + 5" to int. (Previously missed.)
0.43
- Add Rmpq_add_z, Rmpq_sub_z, Rmpq_z_sub, Rmpq_mul_z, Rmpq_div_z, Rmpq_z_div
and Rmpq_pow_ui. (With assistance from Trizen.)
- Allow overloading of '+', '-', '/', '*' and '**' operations with Math::GMPz
objects.
- Extend Rmpq_cmp_z to work with Math::GMPq built against earlier (pre 6.1.0)
versions of the gmp library.
0.42
- Replace the condition "if(SvNOK(x))" with "if(SvNOK(x) && !SvPOK(x))".
See https://github.com/sisyphus/math-gmpz/issues/1 (Thanks trizen.)
- Add __float128 support for perls whose NV is __float128
- Remove _Rmpq_set_ld, add Rmpq_set_NV and Rmpq_cmp_NV.
- Add _is_infstring, for use with overloaded comparison operators.
0.41
- Remove gmp_v from Math::GMPq::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.)
- In Rmpq_set_si() change prototypes from 'int' to 'long'. (Thanks trizen.)
0.39
- Add Rmpq_integer_p(), though mpq_integer_p() is not currently implemented in gmp.
- PREREQ_PM => {'Exporter' => '5.58'} to avoid test failures on pre perl-5.8.4
(Thanks Peter Acklam.)
0.38
- Tweaks to Math::GMPq::gmp_v() and Math::GMPq::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_GMPQ_NEED_LONG_LONG_INT.
- Replace mpq_cmp() with the faster mpq_equal() in overload_equiv and overload_not_equiv.
- Add mpq_cmp_z support. (Added in gmp-6.1.0.)
- Modify overloaded comparison functions to cover comparison with mpz_t (gmp-6.0.99 and later only)
0.37
- Alter wrap_gmp_sprintf and wrap_gmp_snprintf to take an extra arg (length of
buffer to which we write).
- Remove Rmpq_sprintf_ret and Rmpq_snprintf_ret. (These now seem pointless in
view of the changes to wrap_gmp_sprintf and wrap_gmp_snprintf.)
- Add Math::GMPq::__GNU_MP_RELEASE.
- 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.)
- 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::GMPq::V
- Add overload_inc and overload_dec functions.
- Accommodate cross-class overloaded arithmetic with Math::MPFR.
0.33
- Remove 'not' from overloads. Apparently achieved nothing anyway, and 5.16
warns that it's invalid.
0.32
- In the documentation, elaborate on the way that Math::GMPq::get_v() and
__GNU_MP_VERSION & friends determine their values. (Thanks Vincent Lefevre.)
0.31
- 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.29
- Add random functions.
- Add Rmpq_snprintf and Rmpq_snprintf_ret.
- If there's no variable to be formatted, Rmpq_(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=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 0r later.
- Add Rmpq_fprintf, Rmpq_sprintf and Rmpq_sprintf_ret.
- Change Rmpq_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
- Change Rmpq_printf() so that, like its fprintf and sprintf counterparts,
it formats only one variable at a time.
0.24
- Replace the PerlIO* objects stuff in _TRmpfr_* functions (added in
0.23) with FILE* objects ... so that the module will still build
on perl 5.6.
0.23
- Add TRmpq_out_str and TRmpq_inp_str.
- Rmpq_out_str now takes an optional (leading) string argument - a
string that will be prepended to the mpq_out_str() output.
- Remove the tests in the Makefile.PL that test for the presence of
a suitable compiler and GMP library.
0.11
- Add overloaded int() function
- Rewrite new()
- Rmpq_out_str() now takes an optional third argument - a string
that will be appended to the mpq_out_str() output. Also stdout is
fflush()'d each time Rmpq_out_str() is called.
- The overload functions and new() can now handle a long double value
correctly
0.10
- First CPAN release
- No longer assign Exporter and DynaLoader to @Math::GMPq::ISA.
- Add support for perls built with use64bitint
- add new() function/method to facilitate initialization/assignment