Serhiy Storchaka
8cd1dbae32
bpo-41052: Fix pickling heap types implemented in C with protocols 0 and 1 (GH-22870)
2020-10-24 21:14:23 +03:00
Dong-hee Na
6989af0bc7
bpo-41052: Opt out serialization/deserialization for _random.Random (GH-21002)
2020-06-21 18:44:58 +09:00
Erlend Egeberg Aasland
45af786e11
bpo-40867: Remove unused include from Module/_randommodule.c (GH-20635)
2020-06-05 14:32:09 -07:00
Victor Stinner
2d8757758d
bpo-40286: Remove C implementation of Random.randbytes() (GH-19797)
...
Remove _random.Random.randbytes(): the C implementation of
randbytes(). Implement the method in Python to ease subclassing:
randbytes() now directly reuses getrandbits().
2020-04-29 18:49:00 +02:00
Serhiy Storchaka
223221b290
bpo-40286: Makes simpler the relation between randbytes() and getrandbits() (GH-19574)
2020-04-17 23:51:28 +03:00
Antoine Pitrou
75a3378810
bpo-40282: Allow random.getrandbits(0) (GH-19539)
2020-04-17 19:32:14 +02:00
Victor Stinner
1a1bd2e238
bpo-40302: Replace PY_INT64_T with int64_t (GH-19573)
...
* Replace PY_INT64_T with int64_t
* Replace PY_UINT32_T with uint32_t
* Replace PY_UINT64_T with uint64_t
sha3module.c no longer checks if PY_UINT64_T is defined since it's
always defined and uint64_t is always available on platforms
supported by Python.
2020-04-17 19:13:06 +02:00
Victor Stinner
9f5fe7910f
bpo-40286: Add randbytes() method to random.Random (GH-19527)
...
Add random.randbytes() function and random.Random.randbytes()
method to generate random bytes.
Modify secrets.token_bytes() to use SystemRandom.randbytes()
rather than calling directly os.urandom().
Rename also genrand_int32() to genrand_uint32(), since it returns an
unsigned 32-bit integer, not a signed integer.
The _random module is now built with Py_BUILD_CORE_MODULE defined.
2020-04-17 19:05:35 +02:00
Hai Shi
f707d94af6
bpo-39968: Convert extension modules' macros of get_module_state() to inline functions (GH-19017)
2020-03-16 14:15:01 +01:00
Victor Stinner
00d7cd8ab8
bpo-38075: Fix random_seed(): use PyObject_CallOneArg() (GH-18897)
...
Fix the random.Random.seed() method when a bool is passed as the
seed.
PyObject_Vectorcall() was misused: use PyObject_CallOneArg() instead.
2020-03-10 15:15:14 +01:00
Petr Viktorin
ffd9753a94
bpo-39245: Switch to public API for Vectorcall (GH-18460)
...
The bulk of this patch was generated automatically with:
for name in \
PyObject_Vectorcall \
Py_TPFLAGS_HAVE_VECTORCALL \
PyObject_VectorcallMethod \
PyVectorcall_Function \
PyObject_CallOneArg \
PyObject_CallMethodNoArgs \
PyObject_CallMethodOneArg \
;
do
echo $name
git grep -lwz _$name | xargs -0 sed -i "s/\b_$name\b/$name/g"
done
old=_PyObject_FastCallDict
new=PyObject_VectorcallDict
git grep -lwz $old | xargs -0 sed -i "s/\b$old\b/$new/g"
and then cleaned up:
- Revert changes to in docs & news
- Revert changes to backcompat defines in headers
- Nudge misaligned comments
2020-02-11 17:46:57 +01:00
Victor Stinner
2f90261280
bpo-38321: Fix compiler warning in _randommodule.c (GH-16512)
...
Fix the GCC warning: "initialization discards ‘const’ qualifier from
pointer target type".
2019-10-01 12:45:52 +02:00
Dino Viehland
09dc2c672f
Fix missing dec ref ( #16158 )
2019-09-15 15:51:44 +01:00
Dino Viehland
04f0bbfbed
bpo-38075: Port _randommodule.c to PEP-384 (GH-15798)
...
- Migrate `Random_Type` to `PyType_FromSpec`
- To simulate an old use of `PyLong_Type.tp_as_number->nb_absolute`, I added
code to the module init function to stash `int.__abs__` for later
use. Ideally we'd use `PyType_GetSlot()` instead, but it doesn't currently
work for static types in CPython, and implementing it just for this case
doesn't seem worth it.
- Do exact check for long and dispatch to PyNumber_Absolute, use vector call when not exact.
2019-09-13 03:12:27 -07: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
Pablo Galindo
561612d845
bpo-37021: Port _randommodule to the argument clinic (GH-13532)
2019-05-24 22:09:23 +01:00
Zackery Spytz
bb3c05d7ef
closes bpo-35991: Fix a potential double free in Modules/_randommodule.c. (GH-11849)
2019-02-13 23:43:17 -08:00
Siddhesh Poyarekar
55edd0c185
bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. (GH-6030)
...
METH_NOARGS functions need only a single argument but they are cast
into a PyCFunction, which takes two arguments. This triggers an
invalid function cast warning in gcc8 due to the argument mismatch.
Fix this by adding a dummy unused argument.
2018-04-29 21:59:33 +03:00
Oren Milman
d780b2d588
bpo-31478: Fix an assertion failure in random.seed() in case a seed has a bad __abs__() method. ( #3596 )
2017-09-28 10:50:01 +03:00
Serhiy Storchaka
6cca5c8459
bpo-30592: Fixed error messages for some builtins. ( #1996 )
...
Error messages when pass keyword arguments to some builtins that
don't support keyword arguments contained double parenthesis: "()()".
The regression was introduced by bpo-30534.
2017-06-08 14:41:19 +03:00
bladebryan
9616a82e78
bpo-29960 _random.Random corrupted on exception in setstate(). ( #1019 )
2017-04-22 09:10:46 +03:00
Hiroki Noda
f15fa87e5a
Update URL of Mersenne Twister Home Page ( #20 )
2017-02-15 18:04:43 +09:00
Serhiy Storchaka
228b12edcc
Issue #28999 : Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
...
possible. Patch is writen with Coccinelle.
2017-01-23 09:47:21 +02:00
Benjamin Peterson
acc2f74ca9
fix error check, so that Random.seed actually uses OS randomness ( closes #29085 )
2016-12-28 20:02:35 -08:00
Victor Stinner
9f2a920182
Issue #27776 : include process.h on Windows for getpid()
2016-09-06 17:03:03 -07:00
Victor Stinner
e66987e626
os.urandom() now blocks on Linux
...
Issue #27776 : The os.urandom() function does now block on Linux 3.17 and newer
until the system urandom entropy pool is initialized to increase the security.
This change is part of the PEP 524.
2016-09-06 16:33:52 -07:00
Benjamin Peterson
9b3d77052f
replace Python aliases for standard integer types with the standard integer types ( #17884 )
2016-09-06 13:24:00 -07:00
Berker Peksag
0ac70c0e90
Fix typos. Reported by andportnoy on GitHub.
2016-04-29 16:54:10 +03:00
Serhiy Storchaka
2d06e84455
Issue #25923 : Added the const qualifier to static constant arrays.
2015-12-25 19:53:18 +02:00
Serhiy Storchaka
c19bb3279c
Issue #24620 : Random.setstate() now validates the value of state last element.
2015-07-24 09:05:59 +03:00
Serhiy Storchaka
178f0b6ddc
Issue #24620 : Random.setstate() now validates the value of state last element.
2015-07-24 09:02:53 +03:00
Zachary Ware
c15ea4c812
Issue #23488 : Fix a syntax error on big endian platforms.
...
Hopefully this will allow the PPC64 PowerLinux buildbot to finish a test run.
2015-05-17 23:46:22 -05:00
Serhiy Storchaka
dce0405f03
Issue #23488 : Random generator objects now consume 2x less memory on 64-bit.
2015-05-13 15:02:12 +03:00
Raymond Hettinger
7a4f43a8dd
Improve struct cache locality by bring commonly accessed fields close together.
2015-02-20 00:50:04 -08:00
Victor Stinner
1109b54e03
Fix compiler warning on Windows 64-bit: explicit cast size_t to unsigned long
2013-11-15 23:16:15 +01:00
Serhiy Storchaka
46e1ce214b
Issue #18783 : Removed existing mentions of Python long type in docstrings,
...
error messages and comments.
2013-08-27 20:17:03 +03:00
Serhiy Storchaka
9594942716
Issue #18783 : Removed existing mentions of Python long type in docstrings,
...
error messages and comments.
2013-08-27 19:40:23 +03:00
Victor Stinner
a4ced86f03
Issue #18408 : random_seed() now raises a MemoryError on memory allocation
...
failure
2013-07-15 20:00:36 +02:00
Serhiy Storchaka
d8a0bac8f7
Issue #16674 : random.getrandbits() is now 20-40% faster for small integers.
2013-01-04 12:18:35 +02:00
Mark Dickinson
4cd60175f1
Simplify random_seed to use _PyLong_AsByteArray. Closes issue #16496 .
2012-12-21 21:52:49 +00:00
Mark Dickinson
c04ddff290
Issue #16096 : Fix several occurrences of potential signed integer overflow. Thanks Serhiy Storchaka.
2012-10-06 18:04:49 +01:00
Larry Hastings
d60cd4295c
Issue #14815 : Bugfix: the PyLong fed into the seed generator must be unsigned.
2012-06-24 02:52:21 -07:00
Larry Hastings
49c15d4a5f
Issue #14815 : Use Py_ssize_t instead of long for the object hash, to
...
preserve all 64 bits of hash on Win64.
2012-06-24 01:54:21 -07:00
Kristjan Valur Jonsson
85634d7a2e
Issue #14909 : A number of places were using PyMem_Realloc() apis and
...
PyObject_GC_Resize() with incorrect error handling. In case of errors,
the original object would be leaked. This checkin fixes those cases.
2012-05-31 09:37:31 +00:00
Benjamin Peterson
d8e5f2df68
tabbing no longer applicable
2010-08-24 18:08:22 +00:00
Antoine Pitrou
f95a1b3c53
Recorded merge of revisions 81029 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Mark Dickinson
9cc2cf78ad
Merged revisions 72344 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72344 | mark.dickinson | 2009-05-05 18:41:47 +0100 (Tue, 05 May 2009) | 3 lines
Issue #5933 : Fix some gcc -Wextra warnings. Thanks Victor Stinner for
the patch.
........
2009-05-05 17:54:36 +00:00
Mark Dickinson
e94c679df0
Issue #1717 : rename tp_compare to tp_reserved. I'll change the
...
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00
Martin v. Löwis
1a21451b1d
Implement PEP 3121: new module initialization and finalization API.
2008-06-11 05:26:20 +00:00
Raymond Hettinger
28de64fd0f
Remove defunct parts of the random module
2008-01-13 23:40:30 +00:00