The andouillette sauce moutarde release.
MPFR 2.4.0 requires GMP 4.1.0 or higher (GMP 4.2.3 or higher is recommended).
Note: the bug-fix release MPFR 2.4.1 is available. Please upgrade!
The MPFR 2.4.0 source can be downloaded in the following archive formats:
MPFR is also available via third-party packages and ports.
The bugs listed below have been fixed (latest update: 2009-02-25). The following instructions are for Linux and may be similar for other operating systems. You can apply the patches in several ways:
patch -N -Z -p1 < path_to_patches_filefrom the source directory. The -N option allows the patch command to ignore patches already applied. The -Z option sets the modification time of the patched files from time stamps given in the patch file, thus avoiding the need of some development utilities (such as autoconf); this may generate a
Not setting timewarning for the PATCHES file, but you can safely ignore it. Under Microsoft Windows, in addition to the above options, you may need the --binary option (this depends whether the end-of-lines have been converted when you downloaded the patch file). Also note that the --dry-run option does not work with this cumulative patch.
svn co svn://scm.gforge.inria.fr/svn/mpfr/branches/2.4 mpfr-2.4In this case, as said on the Gforge page, you should read the README.dev file for details on how to build MPFR. Also note that the branch may contain additional minor fixes.
With the first two ways, the PATCHES file is modified,
so that one can know what patches have been applied, using the new
mpfr_get_patches
function. Moreover a suffix is added to
the version string, but note that for practical reasons, not all the
files where the version appears are patched; thus one can also track
applied patches with the MPFR_VERSION_STRING
macro (header)
and the mpfr_get_version
function (library). However, if
some patches are not applied or if patches are applied in a different
order, then the patch command will fail to update some chunks, so that
the suffix is not always reliable for patches.
Note: These patches are in unified diff format and some vendors' patch commands cannot deal with them; in this case, please use GNU patch (it may already be installed on your system, e.g. as /usr/local/bin/patch or gpatch).
Fixed bugs:
The printf
length modifiers hh
and ll
(new in C99) are not checked at configure time. The
consequence is that the tprintf and tfprintf
tests will fail if one of these modifiers is not supported by the system
(such as alpha-OSF1-V5). This is not a bug in the
MPFR library itself though, and these failures may
safely be ignored (but other potential failures may not be detected).
This problem is fixed in the printf-hh-ll
patch.
Note that acinclude.m4 is patched, but its timestamp is not updated (if the -Z patch option is given as recommended above) to avoid the unnecessary rebuild of some files by additional development tools (not always available).
mpfr_snprintf
and mpfr_vsnprintf
functions do not behave correctly. Moreover they can yield a buffer
overflow: a null byte is written one position after the expected
null byte, which can be just after the end of the buffer. This bug is fixed
in the mpfr_snprintf patch, which also
includes testcases.Other bugs: please see the tracker and the BUGS file.
mpfr_strtofr
and in
its documentation concerning particular cases where the code and
the documentation did not match; this change is also present in
MPFR 2.3.1.mpfr_check_range
changed: if the value is an
inexact infinity, the overflow flag is set (in case it was lost);
this change is also present in MPFR 2.3.2.mpfr_init_gmp_rand
(only defined when building
MPFR without the --with-gmp-build configure
option) is no longer defined at all. This function was private and not
documented, and was used only in the MPFR test suite.
User code that calls it is regarded as broken and may fail as a consequence.
Running the old test suite against MPFR 2.4.0 may also
fail.mpfr_add_d
, mpfr_sub_d
, mpfr_d_sub
,
mpfr_mul_d
, mpfr_div_d
, mpfr_d_div
;mpfr_printf
, mpfr_fprintf
,
mpfr_vprintf
, mpfr_vfprintf
,
mpfr_sprintf
, mpfr_snprintf
,
mpfr_vsprintf
, mpfr_vsnprintf
,
mpfr_asprintf
, mpfr_vasprintf
;mpfr_sinh_cosh
, mpfr_li2
,
mpfr_modf
, mpfr_fmod
,
mpfr_rec_sqrt
.__GMP_CC
/ __GMP_CFLAGS
,
which are available as of GMP 4.2.3).mpfr_random
and
mpfr_random2
will be suppressed in the next release,
and that the specification of mpfr_eq
may change in
the next release (for compatibility with the mpf
layer of GMP).MPFR 2.4.0 has been successfully compiled and checked on the following platforms:
Note: the test coverage of make check is about 96.7% lines of code.