Serhiy Storchaka
fb5db7ec58
bpo-42006: Stop using PyDict_GetItem, PyDict_GetItemString and _PyDict_GetItemId. (GH-22648)
...
These functions are considered not safe because they suppress all internal errors
and can return wrong result. PyDict_GetItemString and _PyDict_GetItemId can
also silence current exception in rare cases.
Remove no longer used _PyDict_GetItemId.
Add _PyDict_ContainsId and rename _PyDict_Contains into
_PyDict_Contains_KnownHash.
2020-10-26 08:43:39 +02:00
Raymond Hettinger
4e0ce82058
Revert "bpo-26680: Incorporate is_integer in all built-in and standard library numeric types (GH-6121)" (GH-22584)
...
This reverts commit 58a7da9e12
.
2020-10-07 16:43:44 -07:00
Robert Smallshire
58a7da9e12
bpo-26680: Incorporate is_integer in all built-in and standard library numeric types (GH-6121)
...
* bpo-26680: Adds support for int.is_integer() for compatibility with float.is_integer().
The int.is_integer() method always returns True.
* bpo-26680: Adds a test to ensure that False.is_integer() and True.is_integer() are always True.
* bpo-26680: Adds Real.is_integer() with a trivial implementation using conversion to int.
This default implementation is intended to reduce the workload for subclass
implementers. It is not robust in the presence of infinities or NaNs and
may have suboptimal performance for other types.
* bpo-26680: Adds Rational.is_integer which returns True if the denominator is one.
This implementation assumes the Rational is represented in it's
lowest form, as required by the class docstring.
* bpo-26680: Adds Integral.is_integer which always returns True.
* bpo-26680: Adds tests for Fraction.is_integer called as an instance method.
The tests for the Rational abstract base class use an unbound
method to sidestep the inability to directly instantiate Rational.
These tests check that everything works correct as an instance method.
* bpo-26680: Updates documentation for Real.is_integer and built-ins int and float.
The call x.is_integer() is now listed in the table of operations
which apply to all numeric types except complex, with a reference
to the full documentation for Real.is_integer(). Mention of
is_integer() has been removed from the section 'Additional Methods
on Float'.
The documentation for Real.is_integer() describes its purpose, and
mentions that it should be overridden for performance reasons, or
to handle special values like NaN.
* bpo-26680: Adds Decimal.is_integer to the Python and C implementations.
The C implementation of Decimal already implements and uses
mpd_isinteger internally, we just expose the existing function to
Python.
The Python implementation uses internal conversion to integer
using to_integral_value().
In both cases, the corresponding context methods are also
implemented.
Tests and documentation are included.
* bpo-26680: Updates the ACKS file.
* bpo-26680: NEWS entries for int, the numeric ABCs and Decimal.
Co-authored-by: Robert Smallshire <rob@sixty-north.com>
2020-10-01 17:30:08 +01:00
Stefan Krah
40e700ad04
bpo-40878: xlc cannot handle C99 extern inline. (GH-21887)
...
This applies to the default "extc99" mode. Python does not compile with "stdc99".
2020-08-15 16:06:21 +02:00
Stefan Krah
6e0b788881
Catch all skip_handler cases (GH-21842)
2020-08-12 16:00:05 +02:00
Stefan Krah
b5f87b93a5
Call randseed() before other imports in deccheck.py (GH-21834)
2020-08-11 21:14:51 +02:00
Stefan Krah
85fdafa6ea
Replace import_fresh_module in decimal test files (GH-21815)
2020-08-10 21:54:50 +02:00
Stefan Krah
39042e00ab
bpo-41324 Add a minimal decimal capsule API ( #21519 )
2020-08-10 16:32:21 +02:00
Stefan Krah
9b9f158275
bpo-41369 Update to libmpdec-2.5.1: new features (GH-21593)
2020-07-22 21:54:42 +02:00
Felix Yan
015efdbef7
bpo-41302: Fix build with system libmpdec (GH-21481)
...
Move definition of UNUSED from modified headers of libmpdec to
_decimal.c itself. This makes the vendored source closer to the
standalone library and fixes build with --with-system-libmpdec.
Tested to build fine with either system libmpdec or the vendored one.
2020-07-15 14:14:11 +02:00
Lawrence D'Anna
604d95e235
bpo-41100: fix _decimal for arm64 Mac OS (GH-21228)
...
Patch by Lawrence Danna.
2020-06-30 11:15:46 +02:00
Stefan Krah
8bea91b5e9
bpo-40874 Update the required libmpdec version for the decimal module (GH-21202)
2020-06-28 22:01:01 +02:00
Stefan Krah
951d680d56
Add multicore support to deccheck.py. (GH-20731)
2020-06-08 19:33:12 +02:00
Stefan Krah
087d612efe
bpo-40874: Update to libmpdec-2.5.0 (GH-20652)
2020-06-05 19:43:01 +02:00
Victor Stinner
4a21e57fe5
bpo-40268: Remove unused structmember.h includes (GH-19530)
...
If only offsetof() is needed: include stddef.h instead.
When structmember.h is used, add a comment explaining that
PyMemberDef is used.
2020-04-15 02:35:41 +02:00
Victor Stinner
62183b8d6d
bpo-40268: Remove explicit pythread.h includes ( #19529 )
...
Remove explicit pythread.h includes: it is always included
by Python.h.
2020-04-15 02:04:42 +02:00
Serhiy Storchaka
cd8295ff75
bpo-39943: Add the const qualifier to pointers on non-mutable PyUnicode data. (GH-19345)
2020-04-11 10:48:40 +03:00
Stefan Krah
eb47fd58ab
Cosmetic change to match the surrounding code. ( #18704 )
2020-02-29 20:07:48 +01:00
Stefan Krah
815280eb16
bpo-39794: Add --without-decimal-contextvar ( #18702 )
2020-02-29 19:43:42 +01:00
Stefan Krah
90930e6545
bpo-39576: Prevent memory error for overly optimistic precisions (GH-18581)
2020-02-21 01:52:47 +01:00
Stefan Krah
1246d89203
Use the new recommended number of repetitions in the refleak tests. ( #18569 )
2020-02-20 19:08:53 +01:00
Stefan Krah
9b833e00e4
Update runall.bat to the latest Windows build system. ( #18571 )
2020-02-20 19:07:31 +01:00
Stefan Krah
c0cb8beb38
Valgrind no longer supports --db-attach=yes. ( #18568 )
2020-02-20 14:39:14 +01:00
Dong-hee Na
1b55b65638
bpo-39573: Clean up modules and headers to use Py_IS_TYPE() function (GH-18521)
2020-02-17 11:09:15 +01:00
Victor Stinner
60ac6ed557
bpo-39573: Use Py_SET_SIZE() function (GH-18402)
...
Replace direct acccess to PyVarObject.ob_size with usage of
the Py_SET_SIZE() function.
2020-02-07 23:18:08 +01:00
Victor Stinner
daa9756cb6
bpo-39573: Use Py_TYPE() macro in Modules directory (GH-18393)
...
Replace direct access to PyObject.ob_type with Py_TYPE().
2020-02-07 03:37:06 +01:00
Stefan Krah
bcc446f525
Revert mode change that loses information in directory listings on Linux. ( #15366 )
2019-08-21 23:00:04 +02:00
Greg Price
9ece4a5057
Unmark files as executable that can't actually be executed. (GH-15353)
...
There are plenty of legitimate scripts in the tree that begin with a
`#!`, but also a few that seem to be marked executable by mistake.
Found them with this command -- it gets executable files known to Git,
filters to the ones that don't start with a `#!`, and then unmarks
them as executable:
$ git ls-files --stage \
| perl -lane 'print $F[3] if (!/^100644/)' \
| while read f; do
head -c2 "$f" | grep -qxF '#!' \
|| chmod a-x "$f"; \
done
Looking at the list by hand confirms that we didn't sweep up any
files that should have the executable bit after all. In particular
* The `.psd` files are images from Photoshop.
* The `.bat` files sure look like things that can be run.
But we have lots of other `.bat` files, and they don't have
this bit set, so it must not be needed for them.
Automerge-Triggered-By: @benjaminp
2019-08-20 21:53:59 -07:00
Stefan Krah
f117d871c4
Rename memory.c to mpalloc.c for consistency with the header file. ( #14687 )
2019-07-10 18:27:38 +02:00
Stefan Krah
4749dbe54c
Really remove vcstdint.h. ( #14686 )
2019-07-10 17:55:48 +02:00
Jeroen Demeyer
530f506ac9
bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464)
...
Automatically replace
tp_print -> tp_vectorcall_offset
tp_compare -> tp_as_async
tp_reserved -> tp_as_async
2019-05-30 19:13:39 -07:00
Serhiy Storchaka
96aeaec647
bpo-36793: Remove unneeded __str__ definitions. (GH-13081)
...
Classes that define __str__ the same as __repr__ can
just inherit it from object.
2019-05-06 22:29:40 +03:00
Serhiy Storchaka
62be74290a
bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749)
...
Fix invalid function cast warnings with gcc 8
for method conventions different from METH_NOARGS, METH_O and
METH_VARARGS excluding Argument Clinic generated code.
2018-11-27 13:27:31 +02:00
Victor Stinner
3b1cba3701
bpo-35059, libmpdec: Add missing EXTINLINE in mpdecimal.h (GH-10128)
...
Declare functions with EXTINLINE:
* mpd_del()
* mpd_uint_zero()
* mpd_qresize()
* mpd_qresize_zero()
* mpd_minalloc()
These functions are implemented with "inline" or "ALWAYS_INLINE", but
declared without inline which cause linker error on Visual Studio in
Debug mode when using /Ob1.
2018-10-26 17:06:57 +02:00
Yury Selivanov
994269ccee
bpo-34762: Update PyContext* to PyObject* in asyncio and decimal (GH-9609)
...
This fixes various compiler warnings.
2018-09-27 14:55:55 -04:00
Serhiy Storchaka
bfe4fd5f2e
Fix some warnings produced by different compilers. ( #5593 )
2018-02-09 17:31:26 +02:00
Serhiy Storchaka
c66f9f8d39
bpo-25988: Emit a warning when use or import ABCs from 'collections'. ( #5460 )
2018-01-31 19:19:33 +02:00
Yury Selivanov
f13f12d8da
bpo-32630: Use contextvars in decimal (GH-5278)
2018-01-27 13:46:46 -05:00
Stefan Krah
3cedf46cdb
bpo-31406: Fix crash due to lack of type checking in subclassing. ( #3477 )
2017-09-10 18:08:04 +02:00
Stefan Krah
c0c29dff79
bpo-31403: Remove WITHOUT_THREADS from _decimal. ( #3474 )
2017-09-09 19:26:22 +02:00
Stefan Krah
d73a960c57
bpo-30923: Disable warning that has been part of -Wextra since gcc-7.0. ( #3142 )
2017-08-18 21:39:32 +02:00
Zachary Ware
6b6e687766
bpo-27425: Be more explicit in .gitattributes (GH-840)
...
Updates checked-in line endings on several files.
2017-06-10 14:58:42 -05:00
Angus Hollands
8614b59910
Correct typo ( #976 )
2017-04-03 18:16:14 +02:00
Victor Stinner
d6debb24e0
bpo-29919: Remove unused imports found by pyflakes ( #137 )
...
Make also minor PEP8 coding style fixes on modified imports.
2017-03-27 16:05:26 +02:00
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