blob: 7e5ffed526e52e54c35871a49173ac01824742ae [file] [log] [blame]
Changelog
=========
Version 2.4.0
-------------
**features**
1) Faster integer to string conversion.
2) mpd_qln(), mpd_qlog10() and mpd_pow() are now thread-safe.
3) All functions that take or return C integers are now available in
both the 64-bit and the 32-bit builds.
4) Support for cross-compiling.
5) Scripts for Visual Studio builds.
**code improvements**
1) This version is exactly the same as the version shipped with Python-3.3+.
Large portions of the code have been refactored in order to facilitate
proofs. Many ACL2 proofs have been added.
**removed**
1) The Python module has been removed from mpdecimal, since both libmpdec
and cdecimal are included in Python-3.3+.
2) The large test suite against decNumber as well as the multi-precision
tests against gmp have been removed, but will be available in a separate
package. Naturally these tests are still run as part of the release
process.
Version 2.3
-----------
**features**
1) New test suite with comprehensive tests against decNumber.
2) Full support for compilers without uint64_t (tested with CompCert).
**bug fixes**
1) If ROUND_FLOOR is set and the operand is zero, the functions
mpd_plus() and mpd_minus() have special cases for the sign of
the result.
Version 2.2
-----------
**build process**
1) configure: append CFLAGS to CONFIG flags.
2) Makefile: use includedir, libdir, datarootdir, datadir, docdir, DESTDIR.
**workarounds for toolchain bugs**
1) Enable workaround for a gcc miscompilation. See:
`http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491>`_
2) Enable workaround for the glibc _FORTIFY_SOURCE/memmove bug, which is
exposed by gcc-4.6. See:
`http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html <http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html>`_
**features**
1) Make PPRO inline assembly PIC-compliant (for the dynamic library).
Version 2.1
-----------
Version 2.1 was never released, but escaped into the wild via the Makefile
and setup.py in cdecimal-1.97-rc2.tar.gz. Both files already had that version
number.
**features**
1) Code coverage increased to 100%. This includes every possible
allocation failure.
2) Switch build process to ./configure.
3) Makefile targets for creating coverage reports.
**bug fixes**
1) mpd_qget_uint, mpd_qget_u64, mpd_qget_u32 did not raise for
negative input.
2) Handle allocation failures in _mpd_fntmul under extreme conditions.
Version 1.2.1
-------------
**bug fixes**
1) With MACHINE=ansi64, the macros BSR and BSF used x86 assembly.
This caused compilation to fail on non-x64 platforms.
Version 1.2
-----------
**features**
1) Support for compilers with __uint128_t
(option MACHINE=ansi64).
2) Support for other 64-bit compilers
(option MACHINE=ansi64c32).
3) Support for legacy compilers without uint64_t
(option MACHINE=ansi-legacy).
4) Slightly different build process (please read INSTALL.txt).
5) If clamp=1, the maximum payload length of a NaN is prec-1.
**bug fixes**
1) Fix for mpd_qround_to_int, which did not handle digits
exceeding the context precision correctly in all cases.
2) In rare corner cases Underflow was not set in
transcendental functions.