Serhiy Storchaka
2a404b63d4
Issue #28769 : The result of PyUnicode_AsUTF8AndSize() and PyUnicode_AsUTF8()
...
is now of type "const char *" rather of "char *".
2017-01-22 23:07:07 +02:00
Stefan Krah
3c29fd0074
While a speedup of 1% is measurable, contexts aren't created that often,
...
so let's defer this until 3.7, 3.8, ... all have this new function.
2017-01-09 13:53:32 +01:00
Stefan Krah
a40a3f35eb
Merge 3.6.
2017-01-09 13:12:09 +01:00
Stefan Krah
e660335b7e
Merge 3.5.
2017-01-09 13:11:51 +01:00
Stefan Krah
18e0a97a1a
Issue #28701 : Revert part of 5bdc8e1a50c8 for the following reasons:
...
- There was no real problem to begin with.
- The hypothetical problem has been fixed by 5bdc8e1a50c8.
2017-01-09 13:11:27 +01:00
Stefan Krah
45ed522237
Revert part of dbf72357cb4a that is in a rarely used path and causes
...
maintenance issues (cost/benefit).
2017-01-08 00:08:53 +01:00
Stefan Krah
2b938f84f4
Revert (unauthorized) parts of 54a89144ee1d which are not in a speed-sensitive
...
path in order to avoid maintenance issues.
2017-01-08 00:02:15 +01:00
Stefan Krah
1b5fa6b7c9
Revert (unauthorized) parts of b9eb35435178 which are not in a speed-sensitive
...
path and cause maintenance issues (3.6 <-> 3.7, private test suite).
2017-01-07 23:20:27 +01:00
Serhiy Storchaka
5ab81d787f
Issue #28959 : Added private macro PyDict_GET_SIZE for retrieving the size of dict.
2016-12-16 16:18:57 +02:00
Victor Stinner
4c38154a43
Don't parenthesis in _PyObject_CallMethodId() format
...
Issue #28915 : Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.
2016-12-09 00:33:39 +01:00
Victor Stinner
a5ed5f000a
Use _PyObject_CallNoArg()
...
Replace:
PyObject_CallObject(callable, NULL)
with:
_PyObject_CallNoArg(callable)
2016-12-06 18:45:50 +01:00
Serhiy Storchaka
3b73ea1278
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:19:20 +02:00
Serhiy Storchaka
f4934ea77d
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Brett Cannon
a721abac29
Issue #26331 : Implement the parsing part of PEP 515.
...
Thanks to Georg Brandl for the patch.
2016-09-09 14:57:09 -07:00
Steve Dower
a439191efa
Fix some warnings from MSVC
2016-09-06 19:09:15 -07:00
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