diff options
author | wiz <wiz@pkgsrc.org> | 2018-01-28 16:18:23 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2018-01-28 16:18:23 +0000 |
commit | 1c35c4003beff77194757e1120d16036918e3ba4 (patch) | |
tree | 82827ce1618974889ac0972b4e4b3e702f59fb08 /math/mpfr | |
parent | c839c601db4cbba7202e0c47036dab0f7ab478fb (diff) | |
download | pkgsrc-1c35c4003beff77194757e1120d16036918e3ba4.tar.gz |
mpfr: update to 4.0.0.
Changes from versions 3.1.* to version 4.0.0:
- The "dinde aux marrons" release.
- MPFR now depends on GMP 5.0+ instead of 4.1+.
- API change:
Applications that call GMP's mp_set_memory_functions function to change
the allocators must first call the new function mpfr_mp_memory_cleanup
in all threads where MPFR is potentially used; this new function is
currently equivalent to mpfr_free_cache.
The reason is that the way memory allocation is done by MPFR has changed
(again), so that the current GMP allocators are used (since for some
applications, the old allocators may become invalid).
Note: Freeing the caches like this might have a performance impact on some
particular applications; if this is an issue, this could be handled for a
future MPFR version.
- Mini-gmp support via the --enable-mini-gmp configure option (experimental).
- The minimum precision MPFR_PREC_MIN is now 1, with rounding defined as
in the errata of IEEE 754-2008 and in the following IEEE 754 revision
(ties rounded away from zero).
- Shared caches for multithreaded applications.
New function mpfr_free_cache2.
- Partial support of MPFR_RNDF (faithful rounding).
- New functions: mpfr_fpif_export and mpfr_fpif_import to export and import
numbers in a floating-point interchange format, independent both on the
number of bits per word and on the endianness.
- New function mpfr_fmodquo to return the low bits of the quotient
corresponding to mpfr_fmod.
- New functions mpfr_flags_clear, mpfr_flags_set, mpfr_flags_test,
mpfr_flags_save and mpfr_flags_restore to operate on groups of flags.
- New functions mpfr_set_float128 and mpfr_get_float128 to convert from/to
the __float128 type (requires --enable-float128 and compiler support).
- New functions mpfr_buildopt_float128_p and mpfr_buildopt_sharedcache_p.
- New functions mpfr_rint_roundeven and mpfr_roundeven, completing the
other similar round-to-integer functions for rounding to nearest with
the even-rounding rule.
- New macro mpfr_round_nearest_away to add partial emulation of the
rounding to nearest-away (as defined in IEEE 754-2008).
- New functions mpfr_nrandom and mpfr_erandom to generate random numbers
following normal and exponential distributions respectively.
- New functions mpfr_fmma and mpfr_fmms to compute a*b+c*d and a*b-c*d.
- New function mpfr_rootn_ui, similar to mpfr_root, but agreeing with the
rootn function of the IEEE 754-2008 standard.
- New functions mpfr_log_ui to compute the logarithm of an integer,
mpfr_gamma_inc for the incomplete Gamma function.
- New function mpfr_beta for the Beta function (incomplete, experimental).
- New function mpfr_get_q to convert a floating-point number into rational.
- The mpfr_dump function is now described in the manual; its output format
has slightly changed.
- The mpfr_eint function now returns the value of the E1/eint1 function
for negative argument.
- The behavior of the mpfr_set_exp function changed, as it could easily
yield undefined behavior in some cases (this modifies both the API and
the ABI).
- In function mpfr_urandom, the next random state no longer depends on the
current exponent range and the rounding mode. The exceptions due to the
rounding of the random number are now correctly generated, following the
uniform distribution.
- Functions mpfr_grandom and mpfr_root are deprecated and will be removed
in a future release.
- Complete rewrite of function mpfr_sum, which now works in all cases (the
old one could take all the memory and/or crash with inputs of different
magnitudes in case of huge cancellation or table maker's dilemma). The
sign of an exact zero result is now specified, and the return value is
now the usual ternary value. Note that the position of "const" in the
mpfr_sum prototype has been fixed (the manual was correct); user code
should not be affected.
- Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
The mpfr_next* functions should be used instead.
- Internally, improved caching: a minimum of 10% increase of the precision
is guaranteed to avoid too many recomputations.
- Added internal small-precision mpz_t pool, which aims to avoid the
overhead of memory allocation, in particular.
New function mpfr_free_pool.
- Added configure option --enable-assert=none to avoid checking any assertion.
- The --enable-decimal-float configure option no longer requires
--with-gmp-build, and support for decimal floats is now automatically
detected by default (similarly for support for __float128).
- Updated tuning parameters.
- Better support for Automake 1.13+ (now used to generate the tarball).
- Dropped K&R C compatibility.
- Improved MPFR manual.
- New MPFRbench program (see the tools/bench directory).
- Major speedup in mpfr_add, mpfr_sub, mpfr_mul, mpfr_div and mpfr_sqrt when
all operands have the same precision and this precision is less than twice
the number of bits per word, e.g., less than 128 on a 64-bit computer.
- Speedup by a factor of almost 2 in the double <--> mpfr conversions
(mpfr_set_d and mpfr_get_d).
- Speedup in mpfr_log1p and mpfr_atanh for small arguments.
- Speedup in the mpfr_const_euler function (contributed by Fredrik Johansson),
in the computation of Bernoulli numbers (used in mpfr_gamma, mpfr_li2,
mpfr_digamma, mpfr_lngamma and mpfr_lgamma), in mpfr_div, in mpfr_fma
and mpfr_fms.
- Test coverage: 96.3% lines of code.
- Bug fixes. In particular: a speed improvement when the --enable-assert
or --enable-assert=full configure option is used with GCC; mpfr_get_str
now sets the NaN flag on NaN input and the inexact flag when the conversion
is inexact. For a full list, see http://www.mpfr.org/mpfr-3.1.6/#fixed
and the same section for any previous 3.1.x version (follow the links
in the "Changes..." sections).
- Microsoft Windows: Added support for thread-safe DLL (shared library).
Tested with MinGW, ICC and MSVC.
- Limited pkg-config support.
- Autotools: Under Linux, make sure that the old dtags (when supported)
are used if LD_LIBRARY_PATH is defined; otherwise "make check" would
check an installed, compatible MPFR library found in LD_LIBRARY_PATH
instead of the one that has been built with "make".
- New: optional "make check-gmp-symbols", mainly for binary distributions,
to check that MPFR does not use GMP internal symbols (experimental).
Diffstat (limited to 'math/mpfr')
-rw-r--r-- | math/mpfr/Makefile | 8 | ||||
-rw-r--r-- | math/mpfr/PLIST | 4 | ||||
-rw-r--r-- | math/mpfr/distinfo | 12 | ||||
-rw-r--r-- | math/mpfr/patches/patch-acinclude.m4 | 16 | ||||
-rw-r--r-- | math/mpfr/patches/patch-configure | 16 |
5 files changed, 13 insertions, 43 deletions
diff --git a/math/mpfr/Makefile b/math/mpfr/Makefile index 661b315ea04..d423d859231 100644 --- a/math/mpfr/Makefile +++ b/math/mpfr/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.33 2017/09/10 21:17:02 wiz Exp $ +# $NetBSD: Makefile,v 1.34 2018/01/28 16:18:23 wiz Exp $ -DISTNAME= mpfr-3.1.6 +DISTNAME= mpfr-4.0.0 CATEGORIES= math MASTER_SITES= http://www.mpfr.org/${DISTNAME}/ EXTRACT_SUFX= .tar.bz2 @@ -15,10 +15,12 @@ USE_LIBTOOL= yes TEST_TARGET= check INFO_FILES= yes +PKGCONFIG_OVERRIDE+= mpfr.pc.in + +BUILDLINK_API_DEPENDS.gmp+= gmp>=5.0 .include "../../devel/gmp/buildlink3.mk" .include "../../mk/bsd.pkg.mk" .if (${MACHINE_ARCH} == alpha) CONFIGURE_ENV+=CFLAGS="${CFLAGS:N-mieee}" .endif - diff --git a/math/mpfr/PLIST b/math/mpfr/PLIST index 28768281b45..78c9778f19c 100644 --- a/math/mpfr/PLIST +++ b/math/mpfr/PLIST @@ -1,8 +1,9 @@ -@comment $NetBSD: PLIST,v 1.4 2010/07/15 20:30:40 asau Exp $ +@comment $NetBSD: PLIST,v 1.5 2018/01/28 16:18:23 wiz Exp $ include/mpf2mpfr.h include/mpfr.h info/mpfr.info lib/libmpfr.la +lib/pkgconfig/mpfr.pc share/doc/mpfr/AUTHORS share/doc/mpfr/BUGS share/doc/mpfr/COPYING @@ -11,6 +12,7 @@ share/doc/mpfr/FAQ.html share/doc/mpfr/NEWS share/doc/mpfr/TODO share/doc/mpfr/examples/ReadMe +share/doc/mpfr/examples/can_round.c share/doc/mpfr/examples/divworst.c share/doc/mpfr/examples/rndo-add.c share/doc/mpfr/examples/sample.c diff --git a/math/mpfr/distinfo b/math/mpfr/distinfo index 8f18c9fe42f..6ecfab7b1a6 100644 --- a/math/mpfr/distinfo +++ b/math/mpfr/distinfo @@ -1,8 +1,6 @@ -$NetBSD: distinfo,v 1.25 2017/09/10 21:17:02 wiz Exp $ +$NetBSD: distinfo,v 1.26 2018/01/28 16:18:23 wiz Exp $ -SHA1 (mpfr-3.1.6.tar.bz2) = c207aada1c0af969d800c16f25e0a78e15b9c9cc -RMD160 (mpfr-3.1.6.tar.bz2) = dd491cad5a46b5187268acad0c37ce0d4d66e4fc -SHA512 (mpfr-3.1.6.tar.bz2) = 0c310dd7956be527884f8059c195a5aca1042b089d0927ac6341e6310b1250a7059bc61aaaab4dfb76c6ab8b67e440878ca203f72674529bbcb46770ed9b6885 -Size (mpfr-3.1.6.tar.bz2) = 1287202 bytes -SHA1 (patch-acinclude.m4) = 62cdd6710683d2a1ab202d0122cf023bb84ade04 -SHA1 (patch-configure) = 77375ad75693f4f9665bc23687782631318481ec +SHA1 (mpfr-4.0.0.tar.bz2) = 799245347044c8f0da9e513f86bb5e4c07974931 +RMD160 (mpfr-4.0.0.tar.bz2) = 2f4445d4acaef9b807b5d611287cf3f8fe22134b +SHA512 (mpfr-4.0.0.tar.bz2) = 43932f9d5e60fd5545c27ff984784dd7a286656a0297d0be7c106f72a2d2e0408702be16bd27e5b5f17a04a2069d06d644cdb4ca4ab4c26ae1a5896fc77bdefd +Size (mpfr-4.0.0.tar.bz2) = 1619917 bytes diff --git a/math/mpfr/patches/patch-acinclude.m4 b/math/mpfr/patches/patch-acinclude.m4 deleted file mode 100644 index f1dbd0c7707..00000000000 --- a/math/mpfr/patches/patch-acinclude.m4 +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-acinclude.m4,v 1.1 2017/08/30 10:35:54 martin Exp $ - -Remove alpha specific -miee* options currently not working on NetBSD (needs -further investigation) - ---- acinclude.m4.orig 2016-09-27 09:58:14.000000000 +0200 -+++ acinclude.m4 2017-08-30 12:23:59.333559123 +0200 -@@ -102,7 +102,7 @@ - saved_CFLAGS="$CFLAGS" - AC_CACHE_CHECK([for IEEE-754 switches], mpfr_cv_ieee_switches, [ - if test -n "$GCC"; then -- mpfr_cv_ieee_switches="-mfp-rounding-mode=d -mieee-with-inexact" -+ mpfr_cv_ieee_switches="" - else - mpfr_cv_ieee_switches="-fprm d -ieee_with_inexact" - fi diff --git a/math/mpfr/patches/patch-configure b/math/mpfr/patches/patch-configure deleted file mode 100644 index 4d26832a9a7..00000000000 --- a/math/mpfr/patches/patch-configure +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-configure,v 1.1 2017/08/30 10:35:54 martin Exp $ - -Remove alpha specific -miee* options currently not working on NetBSD (needs -further investigation) - ---- configure.orig 2016-09-27 09:58:43.000000000 +0200 -+++ configure 2017-08-30 12:24:27.235843640 +0200 -@@ -6337,7 +6337,7 @@ - else - - if test -n "$GCC"; then -- mpfr_cv_ieee_switches="-mfp-rounding-mode=d -mieee-with-inexact" -+ mpfr_cv_ieee_switches="" - else - mpfr_cv_ieee_switches="-fprm d -ieee_with_inexact" - fi |