Revision history for Perl module Math::GMPq

0.61
 - Fix typo in GMPq.xs that caused https://rt.cpan.org/Ticket/Display.html?id=160045.
   Affected old perls only - circa version 5.16.x (5.18?) and earlier.

0.59
 - Rectify omission of Math::GMPz version check in t/overload_mod.t

0.58
 - Add overloading of '%' and '%='.
 - Add oveloading of '&', '|', '^', '~', '>>' and '<<' for compatibility with perl
   and Math::BigRat.
 - Allow new() to assign strings of the form (eg)'2.014' or '201.4e-2'. In both
   of those instances the object would be assigned the value '1007/500' - which
   differs from the value assigned by the NV 2.014. By default, on perls whose NV
   is 'double', '4535124824762089/2251799813685248 would be assigned ny 2.014.


0.57
 - On Windows only: set the constant GMPQ_WIN32_FMT_BUG to 0 if the gmp
   library was built with -D__USE_MINGW_ANSI_STDIO; else set it to 1.
 - Fix https://rt.cpan.org/Public/Bug/Display.html?id=158590
   Thanks to @twata_1.
 - Change initial setting of Math::GMPq::RETYPE from 0 to 1.

0.56
 - Skip Math::MPFR checks in t/overload_cross_class.t and t/overload_op_eq.t if
   $Math::MPFR::VERSION < 4.19
 - Avoid monitoring PL_markstack_ptr in GMPq.xs and Random/Random.xs

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
