Benjamin Peterson
bbeedc261f
include (now) int standard headers
2016-09-06 12:41:06 -07:00
Benjamin Peterson
ae3869c71e
do not need vcstdint.h anymore
2016-09-06 12:07:53 -07:00
Stefan Krah
243d8a7866
Merge 3.5.
2016-07-17 14:12:59 +02:00
Stefan Krah
8c126f17f0
Issue #26974 : Fix segfault in the presence of absurd subclassing. Proactively
...
eliminate all internal uses of overridden methods.
2016-07-17 14:01:42 +02:00
Stefan Krah
1d245fabaf
Merge 3.5.
2016-06-20 14:13:12 +02:00
Stefan Krah
947f099d99
Issue #27006 : Do not use PyDec_CheckExact() on a type.
2016-06-20 14:12:52 +02:00
Stefan Krah
8113f490c5
Merge 3.5.
2016-06-20 12:10:42 +02:00
Stefan Krah
6817c59cf0
Issue #27006 : from_float(): call the subclass' __new__() and __init__().
2016-06-20 12:10:13 +02:00
Stefan Krah
8d013a8d36
Issue #26846 : Post commit cleanup.
2016-04-26 16:34:41 +02:00
Stefan Krah
8e1da5823b
Issue #26846 : Workaround for non-standard stdlib.h on Android.
2016-04-25 22:48:42 +02:00
Serhiy Storchaka
59865e7fe1
Issue #26200 : Restored more safe usages of Py_SETREF.
2016-04-11 09:57:37 +03:00
Serhiy Storchaka
ec39756960
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:50:03 +03:00
Stefan Krah
66e9d03bf4
Issue #26621 : Update libmpdec version and remove unnecessary test case.
2016-03-23 20:50:10 +01:00
Stefan Krah
5f6ccc787e
Issue #26139 : libmpdec: disable /W4 warning (non-standard dllimport behavior).
2016-01-17 12:28:43 +01:00
Stefan Krah
53f2e0ad45
Issue #25928 : Add Decimal.as_integer_ratio(). Python parts and docs by
...
Mark Dickinson.
2015-12-28 23:02:02 +01:00
Serhiy Storchaka
5c4064e8bd
Issue #25421 : __sizeof__ methods of builtin types now use dynamic basic size.
...
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.
2015-12-19 20:05:25 +02:00
Zachary Ware
fda673d59f
Issue #24974 : Force fp-model precice in mpdecimal.c on Windows
...
As suggested by Steve Dower and approved by Stefan Krah.
2015-09-03 11:52:15 -05:00
Zachary Ware
774ac377da
Closes #17202 : Merge with 3.4
2015-04-13 12:11:40 -05:00
Zachary Ware
4c9c848159
Issue #17202 : Add .bat to .hgeol to force them to CRLF.
...
Using LF can a script to fail if it tries to use a label that is
split across 512 byte blocks. Who knows why.
2015-04-13 11:59:54 -05:00
Serhiy Storchaka
c2ccce791c
Issue #23641 : Cleaned out legacy dunder names from tests and docs.
...
Fixed 2 to 3 porting bug in pynche.ColorDB.
Added few tests for __truediv__, __floordiv__ and __matmul__.
2015-03-12 22:01:30 +02:00
Serhiy Storchaka
a60c2fe480
Issue #23641 : Cleaned out legacy dunder names from tests and docs.
...
Fixed 2 to 3 porting bug in pynche.ColorDB.
2015-03-12 21:56:08 +02:00
Serhiy Storchaka
20b39b27d9
Removed redundant casts to `char *`.
...
Corresponding functions now accept `const char *` (issue #1772673 ).
2014-09-28 11:27:24 +03:00
Stefan Krah
b578f8a1ef
Issue #19232 : Speed up decimal import. Additionally, since _decimal is
...
self-contained, this change facilitates maintenance and the Python version
can be easily imported for experimentation.
2014-09-10 17:58:15 +02:00
Stefan Krah
fc452518e6
Merge 3.4.
2014-08-26 21:32:26 +02:00
Stefan Krah
cf26115651
Introduce and check for MPD_VERSION_HEX for precise management of builds
...
with an external libmpdec.
2014-08-26 21:31:47 +02:00
Stefan Krah
9ea83cff47
Merge 3.4.
2014-08-26 20:47:32 +02:00
Stefan Krah
298131a448
Issue #22090 : Fix '%' formatting for infinities and NaNs.
2014-08-26 20:46:49 +02:00
Stefan Krah
6b7786bac2
Use $type instead of $cls in the signature specification.
2014-05-02 14:34:11 +02:00
Stefan Krah
5de1f82464
Issue #21407 : _decimal now supports function signatures.
2014-05-01 15:53:42 +02:00
Stefan Krah
8fb74a35da
Issue #21374 : Fix pickling of DecimalTuple.
2014-04-29 18:24:50 +02:00
Stefan Krah
f1d4e42195
Issue #21374 : Fix pickling of DecimalTuple.
2014-04-29 18:23:35 +02:00
Benjamin Peterson
ce68c19ee7
remove unused zero constants
2014-03-15 11:49:49 -05:00
Serhiy Storchaka
7f470d0f9c
Issue #19936 : Remove executable bits from C source files and several forgotten
...
test files.
2014-01-16 18:48:45 +02:00
Serhiy Storchaka
b992a0e102
Issue #19936 : Added executable bits or shebang lines to Python scripts which
...
requires them. Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface. Fixed
shebang line to use python3 executable in the unittestgui script.
2014-01-16 17:15:49 +02:00
Stefan Krah
16540408f4
Issue #19936 : Disable shebang lines in order to prevent using a random
...
system python.
2014-01-16 14:33:27 +01:00
Stefan Krah
0455c3fd28
Whitespace.
2014-01-04 13:03:48 +01:00
Stefan Krah
1f1ec12db9
Issue #19986 : Avoid an incorrect warning of older gcc versions.
2013-12-15 20:45:08 +01:00
Stefan Krah
01e5f800b4
Fix C++ header usage. This __STDC_LIMIT_MACROS scheme can still be subverted
...
by including stdint.h before mpdecimal.h. In that case the only option left
is to compile with -D_STDC_LIMIT_MACROS.
2013-12-14 12:58:09 +01:00
Stefan Krah
da12adac10
Do not discard const qualifier without a reason.
2013-12-12 18:51:51 +01:00
Stefan Krah
37d4e0be3d
Fix two typos.
2013-12-08 20:08:32 +01:00
Stefan Krah
42e3b607cb
Missed one copyright.
2013-12-08 20:00:56 +01:00
Stefan Krah
ecff6554d3
Update copyright. The four year increment is intentional (to save work).
2013-12-08 19:54:05 +01:00
Stefan Krah
4b7f7acf30
Make a couple of parameters constant.
2013-12-03 14:33:46 +01:00
Stefan Krah
45059eb1d0
1) Prepare libmpdec for the 2.4.0 release. None of the following changes affects
...
_decimal:
o Make all "mpd_t to C integer" conversion functions available in both the
64-bit and the 32-bit versions.
o Make all mixed mpd_t/C integer arithmetic functions available in the
32-bit version.
o Better handling of __STDC_LIMIT_MACROS for C++ users.
o Add struct tags (at the request of C++ users).
2) Check for libmpdec.so.2 if --with-system-libmpdec is used.
2013-11-24 19:44:57 +01:00
Stefan Krah
2fdf4e7b9b
Move PyErr_NoMemory() closer to the failure.
2013-11-08 18:05:02 +01:00
Stefan Krah
a0fd1f5a18
Change style to match the surrounding code (no early returns).
2013-11-08 17:48:58 +01:00
Victor Stinner
ac470854b8
Issue #19437 : Fix dec_format() of the _decimal module, handle dec_strdup()
...
failure (memory allocation failure): raise a MemoryError exception
2013-10-29 20:33:14 +01:00
Victor Stinner
a992e11fe3
Issue #19437 : Fix convert_op_cmp() of decimal.Decimal rich comparator, handle
...
PyObject_IsInstance() failure
2013-10-29 19:26:11 +01:00
Stefan Krah
04754b0fd4
Support multiarch build in tests.
2013-05-29 20:58:19 +02:00
Stefan Krah
891ca9e06a
Backport bff16086f03b and bcaaaa00425b.
2013-05-29 19:14:17 +02:00
Stefan Krah
6edda14b29
Issue #17768 : Support newline fill character in decimal.py and NUL fill
...
character in _decimal.c.
2013-05-29 15:45:38 +02:00
Ezio Melotti
3f5db3940f
Fix a few typos and a double semicolon. Patch by Eitan Adler.
2013-01-27 06:20:14 +02:00
Stefan Krah
eb8c451bd2
Since the return type of format() is not a Decimal, raise ValueError instead of
...
InvalidOperation if the format specification (width, prec) exceeds the internal
limits of libmpdec.
2013-01-24 15:22:33 +01:00
Stefan Krah
752bfb71d8
Remove trailing whitespace.
2013-01-16 15:16:10 +01:00
Stefan Krah
59a4a93f43
Issue #16422 : Use strings for rounding mode constants for better readability
...
and pickling compatibility.
2013-01-16 12:58:59 +01:00
Stefan Krah
e3dff55a5e
Issue #16753 : Define __GNUC_STDC_INLINE__ to an integer (same as gcc).
2012-12-23 15:42:21 +01:00
Stefan Krah
f03eee12b4
Issue #16745 : The gcc visibility pragma is buggy on OpenIndiana and NetBSD.
2012-12-22 23:05:51 +01:00
Stefan Krah
66a6f3fa81
Fix Visual Studio build.
2012-12-22 14:46:44 +01:00
Stefan Krah
fdf1a34ba1
Issue #16745 : Hide symbols in _decimal.so.
2012-12-22 14:18:35 +01:00
Stefan Krah
fb7f580e81
Issue #16745 : Hide a couple of symbols by making them local.
2012-12-21 23:11:05 +01:00
Stefan Krah
9a4ff437d1
Issue #15783 : Support None default values in the Context() constructor.
2012-12-16 21:10:35 +01:00
Stefan Krah
040e311826
Issue #15783 : Except for the number methods, the C version of decimal now
...
supports all None default values present in decimal.py. These values were
largely undocumented.
2012-12-15 22:33:33 +01:00
Stefan Krah
6e467049c6
Accept Unicode legacy strings in the Decimal constructor.
2012-11-10 23:09:04 +01:00
Stefan Krah
0f82b76b57
Issue #16431 : Finally, consider all permutations.
2012-11-08 11:17:29 +01:00
Stefan Krah
ed16eff57e
Issue #16431 : Also fix the opposite direction.
2012-11-07 23:47:19 +01:00
Stefan Krah
f4abc7b8a0
Issue #16431 : Use the type information when constructing a Decimal subtype
...
from a Decimal argument.
2012-11-07 23:12:25 +01:00
Stefan Krah
a0346e56ac
Support gcc's -ansi flag: use "__asm__" instead of "asm".
2012-09-30 17:31:04 +02:00
Stefan Krah
e59aa8c94d
Revert 29506c7db353 (build output should be accurate).
2012-09-30 17:20:47 +02:00
Christian Heimes
5c9a5895d4
merge
2012-09-30 15:51:39 +02:00
Christian Heimes
72c9946718
Change libmpdec to use ANSI code in strict ansi mode as inline asm isn't supported in ANSI C
2012-09-30 15:49:56 +02:00
Stefan Krah
9a3f05e60f
Make it clear that the pi function is modified for benchmarking purposes.
2012-09-30 09:24:41 +02:00
Stefan Krah
6b6a1df996
Restore the benchmark order to avoid waiting for decimal.py if just the
...
prec=9 test is used.
2012-09-25 17:07:55 +02:00
Brett Cannon
6cf50c5b1d
Fix whitespace.
2012-09-25 10:26:15 -04:00
Brett Cannon
63092fe0ea
Fix whitespace.
2012-09-25 10:25:41 -04:00
Brett Cannon
d266c4451f
Make the decimal bench file run under Python 2.7.
2012-09-25 10:23:47 -04:00
Stefan Krah
7e6523fbd7
Use C-style comments.
2012-09-23 15:46:09 +02:00
Stefan Krah
76e12179c5
Issue #15882 : Change _decimal to accept any coefficient tuple when
...
constructing infinities. This is done for backwards compatibility
with decimal.py: Infinity coefficients are undefined in _decimal
(in accordance with the specification).
2012-09-10 19:34:58 +02:00
Mark Dickinson
fc33d4ce0a
Issue #15544 : Fix Decimal.__float__ to work with payload-carrying NaNs.
2012-08-24 18:53:10 +01:00
Stefan Krah
f21587e3a8
mpd_qpowmod(): calculate result with zero-exponent for compatibility with
...
decimal.py. The hack to remove the ideal exponent is no longer required.
2012-08-23 15:05:29 +02:00
Stefan Krah
17183a2972
Use zero bottom margin.
2012-08-22 19:28:12 +02:00
Stefan Krah
ad5b43995e
In the 32-bit build, dec_hash() raised InvalidOperation if the operand
...
had a coefficient with MAX_PREC=425000000 digits and a negative exponent.
Increasing the context limits above the official values fixes the issue
and is safe (in this case!).
2012-08-22 19:11:50 +02:00
Stefan Krah
2fd502f6a1
1) Use _mpd_basedivmod() regardless of the length of the dividend. This is
...
required for a corner case in dec_hash() in the following commit and also
usually faster. dec_hash() needs some extra precision above MPD_MAX_PREC,
and _mpd_base_ndivmod() is not audited for that.
2) Use _mpd_basemul() if the length of the smaller operand is less than
or equal to 256. While this is technically an optimization, it is
required for *testing* corner cases in dec_hash() in reasonable time.
2012-08-22 18:54:37 +02:00
Stefan Krah
b9e36b97f2
Add unused parameter to a couple of METH_NOARGS functions. The previous
...
form is used in many places in the source tree, but was found to be incorrect
in a recent tracker discussion.
2012-07-28 13:53:47 +02:00
Stefan Krah
26a1c7a905
Fix Visual Studio warning.
2012-07-20 12:34:18 +02:00
Stefan Krah
e574402bd6
Issue #7652 : Clean up _mpd_qinvroot() and mark it LIBMPDEC_ONLY. Use the
...
algorithm from decimal.py for mpd_qsqrt().
2012-07-12 21:17:59 +02:00
Stefan Krah
d57caf36bd
Remove ISSUES.txt.
2012-07-01 12:24:20 +02:00
Stefan Krah
5431e30853
After 79d2eb29c755 it is no longer necessary to zero the output array:
...
None of the _mpd_shortadd() or _mpd_shortmul() functions read uninitialized
values. Previously zeroing was required since _mpd_real_size() was called
on the output array.
2012-06-30 21:57:49 +02:00
Stefan Krah
c35a8e5c98
Proactive reliability fix for broken FPUs: The base conversion functions
...
use log10() to calculate the size of the output array. The current code
has been tested on x86/amd64 (and to a lesser extent on qemu-mips qemu-sparc)
and produces sufficiently large values for all inputs tested so far (coefficient
sizes of 10**18 - 1 are hard to test exhaustively).
The new code does not rely on the correctness of log10() and resizes
the output arrays if the allocated space is insufficient.
2012-06-30 18:05:33 +02:00
Stefan Krah
1edab78859
Update test script to Visual Studio 2010.
2012-06-25 14:41:37 +02:00
Stefan Krah
39e810eb6c
Make the benchmark more fair for _decimal/decimal.py by setting context.prec
...
only once (float obviously doesn't set any context at all).
2012-06-24 14:10:49 +02:00
Stefan Krah
78f075636c
Speed up _decimal by another 10-15% by caching the thread local context
...
that was last accessed. In the pi benchmark (64-bit platform, prec=9),
_decimal is now only 1.5x slower than float.
2012-06-24 12:20:03 +02:00
Stefan Krah
3077ab8237
Whitespace.
2012-06-23 00:31:04 +02:00
Stefan Krah
50b0a365ba
Fix comment.
2012-06-20 23:38:51 +02:00
Stefan Krah
22385011ed
Many cleanups of redundant code in mpd_qrem_near():
...
1) _mpd_qdivmod() uses the context precision only in two places, and
the new code should be exactly equivalent to the previous code.
2) Remove misleading comment.
3) The quotient *is* an integer with exponent 0, so calling mpd_qtrunc()
is pointless.
4) Replace two instances of identical code by a single one.
5) Use _mpd_cmp_abs() instead of mpd_cmp_total_mag(): the operands
are not special.
6) Don't clear MPD_Rounded in the status (with the current code it should
not be set within the function).
2012-06-20 23:34:58 +02:00
Stefan Krah
9c1feb88f3
Add comments to the power functions, in particular to _mpd_qpow_real().
2012-06-18 19:57:23 +02:00
Stefan Krah
c62bd13cb2
1) State the relative errors of the power functions for integer exponents.
...
2) _mpd_qpow_mpd(): Abort the loop for all specials, not only infinity.
3) _mpd_qpow_mpd(): Make the function more general and distinguish between
zero clamping and folding down the exponent. The latter case is currently
handled by setting context->clamp to 0 before calling the function.
4) _mpd_qpow_int(): Add one to the work precision in case of a negative
exponent. This is to get the same relative error (0.1 * 10**-prec)
for both positive and negative exponents. The previous relative
error for negative exponents was (0.2 * 10**-prec).
Both errors are _before_ the final rounding to the context precision.
2012-06-16 19:45:35 +02:00
Stefan Krah
b7832939c7
1) Fix signature of _mpd_qpow_uint(): contrary to the comment base is constant.
...
2) Abort the loop for all specials, not only infinity.
3) Make the function more general and distinguish between zero clamping
and folding down the exponent. The latter case is currently handled
by setting context->clamp to 0 before calling the function.
2012-06-12 21:06:06 +02:00
Stefan Krah
88e19779ad
1) Replace long-winded abort() construct by assert().
...
2) Remove micro optimization (inline checking for NaN before calling
mpd_qcheck_nans()) that probably has no benefit in this case.
2012-06-11 08:57:17 +02:00
Stefan Krah
9253862f45
1) State restrictions for the transform length.
...
2) Switch argument order to match the function signature of mpd_calloc()
(cosmetic change, since the order is irrelevant).
2012-06-10 16:50:55 +02:00
Stefan Krah
afc0c77b42
Add one extra comparison to the _mpd_shortmul() case to avoid repetitive code.
2012-06-09 15:28:36 +02:00