Alexandre Vassalotti
567eba1852
Use PyDict_GetItemWithError instead of PyDict_GetItem in cpickle.
2013-11-28 17:09:16 -08:00
Alexandre Vassalotti
6bf41e54a4
Remove explicit empty tuple reuse in cpickle.
...
PyTuple_New(0) always returns the same empty tuple from its free list anyway,
so we are not saving much here. Plus, the code where this was used is on
uncommon run paths.
2013-11-28 15:17:29 -08:00
Alexandre Vassalotti
b13e6bcbd8
Remove the tuple reuse optimization in _Pickle_FastCall.
...
I have noticed a race-condition occurring on one of the buildbots because of
this optimization. The function called may release the GIL which means
multiple threads may end up accessing the shared tuple. I could fix it up by
storing the tuple to the Pickler and Unipickler object again, but honestly it
really not worth the trouble.
I ran many benchmarks and the only time the optimization helps is when using a
fin-memory file, like io.BytesIO on which reads are super cheap, combined with
pickle protocol less than 4. Even in this contrived case, the speedup is a
about 5%. For everything else, this optimization does not provide any
noticable improvements.
2013-11-28 14:56:09 -08:00
Eli Bendersky
8148164353
Issue #19815 : Fix segfault when parsing empty namespace declaration.
...
Based on patches by Christian Heimes and Vajrasky Kok
2013-11-28 06:35:40 -08:00
Eli Bendersky
4b79518f83
Fix indentation from previous commit
2013-11-28 06:33:21 -08:00
Eli Bendersky
5dd40e555b
Issue #19815 : Fix segfault when parsing empty namespace declaration.
...
Based on patches by Christian Heimes and Vajrasky Kok
2013-11-28 06:31:58 -08:00
Christian Heimes
470fba1f9f
SNI was added in OpenSSL 0.9.8f [11 Oct 2007], too
2013-11-28 15:12:15 +01:00
Alexandre Vassalotti
23bdd83053
Encapsulate cpickle global state in a dedicated object.
...
This implements PEP 3121 module finalization as well. This change does not
cause any significant impact on performance.
2013-11-27 19:36:52 -08:00
Victor Stinner
f28ce60441
Closes #19786 : tracemalloc, remove the arbitrary limit of 100 frames
...
The limit is now 178,956,969 on 64 bit (it is greater on 32 bit because
structures are smaller).
Use int instead of Py_ssize_t to store the number of frames to have smaller
traceback_t objects.
2013-11-27 22:27:13 +01:00
Victor Stinner
3c0481d426
Close #19798 : replace "maximum" term with "peak" in get_traced_memory()
...
documentation. Use also the term "current" for the current size.
2013-11-27 21:39:49 +01:00
Benjamin Peterson
1314ef73d0
add SO_PRIORITY ( closes #19802 )
...
Patch by Claudiu Popa.
2013-11-27 09:18:54 -06:00
Alexandre Vassalotti
20c28c1ea2
Combine the FastCall functions in cpickle.
...
I fixed the bug that was in my previous attempt of this cleanup. I ran
the full test suite to verify I didn't introduce any obvious bugs.
2013-11-27 02:26:54 -08:00
Serhiy Storchaka
687ff0ecdf
Issue #11489 : JSON decoder now accepts lone surrogates.
2013-11-26 21:27:11 +02:00
Serhiy Storchaka
c93329b3dd
Issue #11489 : JSON decoder now accepts lone surrogates.
2013-11-26 21:25:28 +02:00
Victor Stinner
59463d8340
tracemalloc: fix get_traced_memory() docstring for result type
2013-11-26 10:46:06 +01:00
Victor Stinner
4dc74204c1
Issue #18874 : Fix typo
2013-11-26 01:18:52 +01:00
Victor Stinner
2ead3d2448
Issue #18874 : make it more explicit than set_reentrant() only accept 0 or 1
2013-11-26 01:08:53 +01:00
Victor Stinner
7a5be14dd8
Issue #18874 : tracemalloc: Comment the trace_t structure
2013-11-26 01:06:02 +01:00
Victor Stinner
de2f132a5e
Issue #18874 : tracemalloc: explain the purpose of get_traces.tracebacks in a comment
2013-11-26 00:26:23 +01:00
Victor Stinner
000de53624
Issue #19752 : Fix "HAVE_DEV_PTMX" implementation of os.openpty()
...
Regression introduced by the implementation of the PEP 446 (non-inheritable
file descriptors by default).
master_fd must be set non-inheritable after the creation of the slave_fd,
otherwise grantpt(master_fd) fails with EPERM (errno 13).
2013-11-25 23:19:58 +01:00
Alexandre Vassalotti
b4a04fb7e6
Reverting e39db21df580 eagerly due to buildbot failures.
2013-11-25 13:25:12 -08:00
Alexandre Vassalotti
f94a041f8f
Combine _Pickler_FastCall and _Unpickler_FastCall in cpickle.
2013-11-25 13:03:32 -08:00
Alexandre Vassalotti
1048fb5539
Issue #19739 : Try to fix compiler warnings on 32-bit Windows.
2013-11-25 11:35:46 -08:00
Victor Stinner
4fbefdb217
Close #19762 : Fix name of _get_traces() and _get_object_traceback() function
...
name in their docstring. Patch written by Vajrasky Kok.
2013-11-25 09:33:18 +01:00
Alexandre Vassalotti
ded929b300
Merge save_int into save_long in cpickle to remove redundant code.
...
Also, replace unnessary uses of the #if preprocessor directive.
2013-11-24 22:41:13 -08:00
Alexandre Vassalotti
8a67f52463
Simplify save_bool in cpickle.
2013-11-24 21:40:18 -08:00
Alexandre Vassalotti
ed8c906127
Use Clinic to process arguments in cpickle.
...
This doesn't make any functional changes to the exisiting implementation. The
conversion did help however uncover documentation bugs. The best thing about
this conversion is less C code to maintain by hand.
2013-11-24 12:25:48 -08:00
Stefan Krah
daa96b7669
Merge from 3.3.
2013-11-24 19:56:23 +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
Victor Stinner
7587507a97
Issue #19636 : Fix usage of MAX_PATH in posixmodule.c
2013-11-24 19:23:25 +01:00
Victor Stinner
6edddfaf5b
Issue #19636 : Fix posix__getvolumepathname(), raise an OverflowError if
...
the length doesn't fit in an DWORD
2013-11-24 19:22:57 +01:00
Eli Bendersky
163d7f02a1
Cosmetic fixes
2013-11-24 06:55:04 -08:00
Larry Hastings
dc6aaec9e3
Clinic: fix "self converters" with METH_NOARGS functions.
2013-11-24 04:41:57 -08:00
Victor Stinner
08facd2009
Issue #19741 : cleanup tracemalloc_realloc()
...
Explain that unhandled error case is very unlikely
2013-11-24 12:27:59 +01:00
Alexandre Vassalotti
fc91285c93
Remove code path in cpickle that does not exist in pickle.
2013-11-24 03:07:35 -08:00
Victor Stinner
52968676f1
Issue #19741 : tracemalloc: report tracemalloc_log_alloc() failure to the caller
...
for new allocations, but not when a memory block was already resized
2013-11-24 11:37:15 +01:00
Alexandre Vassalotti
c49477b184
Make Ellipsis and NotImplemented picklable through the reduce protocol.
2013-11-24 02:53:45 -08:00
Alexandre Vassalotti
4c05d3bc56
Make built-in methods picklable through the reduce protocol.
2013-11-24 02:41:05 -08:00
Victor Stinner
d606ba7f55
Issue #19741 : fix tracemalloc_log_alloc(), handle _Py_HASHTABLE_SET() failure
2013-11-24 11:28:20 +01:00
Alexandre Vassalotti
b6a2f2a0d1
Make framing optional in pickle protocol 4.
...
This will allow us to control in the future whether to use framing or not.
For example, we may want to turn it off for tiny pickle where it doesn't
help.
The change also improves performance slightly:
### fastpickle ###
Min: 0.608517 -> 0.557358: 1.09x faster
Avg: 0.798892 -> 0.694738: 1.15x faster
Significant (t=3.45)
Stddev: 0.17145 -> 0.12704: 1.3496x smaller
Timeline: http://goo.gl/3xQE1J
### pickle_dict ###
Min: 0.669920 -> 0.615271: 1.09x faster
Avg: 0.733633 -> 0.645058: 1.14x faster
Significant (t=5.05)
Stddev: 0.12041 -> 0.02961: 4.0662x smaller
Timeline: http://goo.gl/LpLSXI
### pickle_list ###
Min: 0.397583 -> 0.368112: 1.08x faster
Avg: 0.412784 -> 0.397223: 1.04x faster
Significant (t=2.78)
Stddev: 0.01518 -> 0.03653: 2.4068x larger
Timeline: http://goo.gl/v39E59
### unpickle_list ###
Min: 0.692935 -> 0.594870: 1.16x faster
Avg: 0.730012 -> 0.628395: 1.16x faster
Significant (t=17.76)
Stddev: 0.02720 -> 0.02995: 1.1012x larger
Timeline: http://goo.gl/2P9AEt
The following not significant results are hidden, use -v to show them:
fastunpickle.
2013-11-23 20:30:03 -08:00
Larry Hastings
44e2eaab54
Issue #19674 : inspect.signature() now produces a correct signature
...
for some builtins.
2013-11-23 15:37:55 -08:00
Larry Hastings
ebdcb50b8a
Issue #19730 : Argument Clinic now supports all the existing PyArg
...
"format units" as legacy converters, as well as two new features:
"self converters" and the "version" directive.
2013-11-23 14:54:00 -08:00
Larry Hastings
3a9079742f
Issue #19722 : Added opcode.stack_effect(), which accurately
...
computes the stack effect of bytecode instructions.
2013-11-23 14:49:22 -08:00
Serhiy Storchaka
32eddc1bbc
Issue #16203 : Add re.fullmatch() function and regex.fullmatch() method,
...
which anchor the pattern at both ends of the string to match.
Original patch by Matthew Barnett.
2013-11-23 23:20:30 +02:00
Serhiy Storchaka
5c24d0e504
Issue #13592 : Improved the repr for regular expression pattern objects.
...
Based on patch by Hugo Lopes Tavares.
2013-11-23 22:42:43 +02:00
Antoine Pitrou
c1207c1bcf
Fix signed / unsigned comparison
2013-11-23 21:34:04 +01:00
Serhiy Storchaka
3062c9a6c8
Issue #19641 : Added the audioop.byteswap() function to convert big-endian
...
samples to little-endian and vice versa.
2013-11-23 22:26:01 +02:00
Gregory P. Smith
2b38fc187c
gcc doesn't realize that dummy is always initialized by the function call
...
and warns about potential uninitialized use.
Silence that by initializing it to null.
2013-11-23 20:21:28 +00:00
Christian Heimes
310e4c43cd
merge
2013-11-23 21:14:01 +01:00
Christian Heimes
e8b1ba1699
Issue #17810 : Add two missing error checks to save_global
...
CID 1131946: Unchecked return value (CHECKED_RETURN)
2013-11-23 21:13:39 +01:00