Commit Graph

93380 Commits

Author SHA1 Message Date
Victor Stinner 0cfc058d61 Issue #26588: more assertions 2016-03-22 17:40:07 +01:00
Victor Stinner ff9c5346ea Issue #26588: fix compilation on Windows 2016-03-22 16:29:02 +01:00
Victor Stinner 84aab09421 Issue #26588: add debug traces
Try to debug random failure on buildbots.
2016-03-22 16:13:31 +01:00
Victor Stinner 24f949e10c regrtest: add time to output
Timestamps should help to debug slow buildbots, and timeout and hang on
buildbots.
2016-03-22 15:14:09 +01:00
Victor Stinner 10b73e1748 Add C functions _PyTraceMalloc_Track()
Issue #26530:

* Add C functions _PyTraceMalloc_Track() and _PyTraceMalloc_Untrack() to track
  memory blocks using the tracemalloc module.
* Add _PyTraceMalloc_GetTraceback() to get the traceback of an object.
2016-03-22 13:39:05 +01:00
Victor Stinner e492ae50e2 tracemalloc now supports domains
Issue #26588:

* The _tracemalloc now supports tracing memory allocations of multiple address
  spaces (domains).
* Add domain parameter to tracemalloc_add_trace() and
  tracemalloc_remove_trace().
* tracemalloc_add_trace() now starts by removing the previous trace, if any.
* _tracemalloc._get_traces() now returns a list of (domain, size,
  traceback_frames): the domain is new.
* Add tracemalloc.DomainFilter
* tracemalloc.Filter: add an optional domain parameter to the constructor and a
  domain attribute
* Sublte change: use Py_uintptr_t rather than void* in the traces key.
* Add tracemalloc_config.use_domain, currently hardcoded to 1
2016-03-22 12:58:23 +01:00
Victor Stinner 58100059ac Remove _Py_hashtable_delete()
Issue #26588: Remove _Py_hashtable_delete() from hashtable.h since the function
is not used. Keep the C code in hashtable.c as commented code if someone needs
it later.
2016-03-22 12:25:04 +01:00
Victor Stinner c9553876ae Simplify implementation of hashtable.c
Issue #26588: Remove copy_data, free_data and get_data_size callbacks from
hashtable.h. These callbacks are not used in Python and makes the code more
complex.

Remove also the _Py_HASHTABLE_ENTRY_DATA_AS_VOID_P() macro which uses an unsafe
pointer dereference (can cause memory alignment issue). Replace the macro usage
with _Py_HASHTABLE_ENTRY_READ_DATA() which is implemented with the safe
memcpy() function.
2016-03-22 12:13:01 +01:00
Martin Panter 0b2d71bc70 Issue #24266: Merge readline Ctrl+C handling from 3.5 2016-03-22 09:28:58 +00:00
Martin Panter d6990d221b Issue #24266: Cancel history search mode with Ctrl+C in Readline 7 2016-03-22 07:24:05 +00:00
Benjamin Peterson 2efdc8c7c1 merge 3.5 (#17167) 2016-03-21 22:31:31 -07:00
Benjamin Peterson e46487b133 merge 3.4 (#17167) 2016-03-21 22:31:24 -07:00
Benjamin Peterson b9869dfe35 remove useless $ keyword (closes #17167) 2016-03-21 22:31:02 -07:00
Martin Panter 12eb2ab490 Issue #15699: Merge readline fixup from 3.5 2016-03-22 02:26:18 +00:00
Martin Panter f6e9f47aa7 Issue #15699: Reunite comment with variable 2016-03-22 02:19:29 +00:00
Victor Stinner b32a7edb22 Issue #26588: Fix compilation warning on Windows 2016-03-21 23:05:08 +01:00
Victor Stinner 285cf0a601 hashtable.h now supports keys of any size
Issue #26588: hashtable.h now supports keys of any size, not only
sizeof(void*). It allows to support key larger than sizeof(void*), but also to
use less memory for key smaller than sizeof(void*).
2016-03-21 22:00:58 +01:00
Terry Jan Reedy 063d48d9c0 Issue #26525: Change ord example from nu to more easily recognized Euro sign. 2016-03-20 21:18:40 -04:00
Terry Jan Reedy 4902c46bff Issue #15660: Further clarify 0 prefix for width specifier in formats. 2016-03-20 21:05:57 -04:00
Serhiy Storchaka e431d3c9aa Issue #26581: Use the first coding cookie on a line, not the last one. 2016-03-20 23:36:29 +02:00
Serhiy Storchaka 97eee1cfda Added new tests for detecting Python source code encoding. 2016-03-20 22:29:40 +02:00
Berker Peksag e2021f2ecd Issue #12813: uuid.uuid4() no longer depends on ctypes
uuid.uuid4() always uses os.urandom() after 756d040aa8e8.
2016-03-20 17:29:56 +02:00
Berker Peksag d02eb8a713 Issue #19164: Improve exception message of uuid.UUID()
Patch by jgauthier.
2016-03-20 16:49:10 +02:00
Berker Peksag 563c949b11 Issue #26593: Fix typo in logging HOWTO
Patch by Andrew Szeto.
2016-03-20 12:50:56 +02:00
Berker Peksag e3385b4e3d Issue #19265: Improve test coverage of datetime.tzinfo
Without the patch, line 1010 of Lib/datetime.py wasn't covered
by the test suite.

Patch by Colin Williams.
2016-03-19 13:16:32 +02:00
Victor Stinner 928bff0b26 cleanup iobase.c
casting iobase_finalize to destructor is not needed
2016-03-19 10:36:36 +01:00
Victor Stinner e0b75b7e87 Fix test_ssl.test_refcycle()
Issue #26590: support.check_warnings() stores warnins, but ResourceWarning now
comes with a reference to the socket object which indirectly keeps the socket
alive.
2016-03-21 17:26:04 +01:00
Victor Stinner 19a8e844e4 Add socket finalizer
Issue #26590: Implement a safe finalizer for the _socket.socket type. It now
releases the GIL to close the socket. Use PyErr_ResourceWarning() to raise the
ResourceWarning to pass the socket object to the warning logger, to get the
traceback where the socket was created (allocated).
2016-03-21 16:36:48 +01:00
Victor Stinner 322bc12c31 Ooops, revert changeset ea9efa06c137
Change pushed by mistake, the patch is still under review :-/

"""
_tracemalloc: add domain to trace keys

* hashtable.h: key has now a variable size
* _tracemalloc uses (pointer: void*, domain: unsigned int) as key for traces
"""
2016-03-21 14:36:39 +01:00
Victor Stinner fac395681f Optimize bytes.replace(b'', b'.')
Issue #26574: Optimize bytes.replace(b'', b'.') and
bytearray.replace(b'', b'.'): up to 80% faster. Patch written by Josh Snider.
2016-03-21 10:38:58 +01:00
Berker Peksag 1cd4ff6284 Issue #26560: Avoid potential ValueError in BaseHandler.start_response
Initial patch by Peter Inglesby.
2016-03-19 09:04:59 +02:00
Victor Stinner 51b846c47a _tracemalloc: add domain to trace keys
* hashtable.h: key has now a variable size
* _tracemalloc uses (pointer: void*, domain: unsigned int) as key for traces
2016-03-18 21:52:22 +01:00
Terry Jan Reedy 5decb84454 Merge with 3.5 2016-03-20 21:18:54 -04:00
Terry Jan Reedy 370764a824 Merge with 3.5 2016-03-20 21:06:15 -04:00
Serhiy Storchaka a051bf3afb Issue #26581: Use the first coding cookie on a line, not the last one. 2016-03-20 23:47:48 +02:00
Serhiy Storchaka fc6990d382 Issues #25643, #26581: Added new tests for detecting Python source code encoding. 2016-03-20 23:12:00 +02:00
Berker Peksag bd5b1a613b Issue #12813: uuid.uuid4() no longer depends on ctypes
uuid.uuid4() always uses os.urandom() after 756d040aa8e8.
2016-03-20 17:30:25 +02:00
Berker Peksag c0e7a9c72b Issue #19164: Improve exception message of uuid.UUID()
Patch by jgauthier.
2016-03-20 16:49:29 +02:00
Berker Peksag 5d7286c05d Issue #26593: Fix typo in logging HOWTO
Patch by Andrew Szeto.
2016-03-20 12:51:16 +02:00
Berker Peksag 02cce69217 Issue #19265: Improve test coverage of datetime.tzinfo
Without the patch, line 1010 of Lib/datetime.py wasn't covered
by the test suite.

Patch by Colin Williams.
2016-03-19 13:16:52 +02:00
Berker Peksag 3c3d7f4b99 Issue #18787: spwd.getspnam() now raises a PermissionError if the user
doesn't have privileges.
2016-03-19 11:44:17 +02:00
Victor Stinner af4a1f20ba fix indentation in Py_DECREF() 2016-03-19 10:33:50 +01:00
Victor Stinner ee803a8d2c Issue #26567: enhance ResourceWarning example 2016-03-19 10:33:25 +01:00
Victor Stinner 74879e4179 Try again to fix test_warnings on Windows
Issue #26567: normalize newlines in test_tracemalloc.
2016-03-19 10:00:08 +01:00
Berker Peksag cf934a1c9b Issue #26560: Avoid potential ValueError in BaseHandler.start_response
Initial patch by Peter Inglesby.
2016-03-19 09:05:59 +02:00
Victor Stinner bfab932971 Try to fix test_warnings on Windows
Issue #26567.
2016-03-19 02:51:45 +01:00
Victor Stinner f664dc5834 ResourceWarning: Revert change on socket and scandir
io.FileIO has a safe implementation of destructor, but not socket nor scandir.
2016-03-19 02:01:48 +01:00
Victor Stinner eedf13fe23 Fix test_logging
Issue #26568: Fix implementation of showwarning() and formatwarning() for
test_logging.
2016-03-19 02:11:56 +01:00
Victor Stinner 914cde89d4 On ResourceWarning, log traceback where the object was allocated
Issue #26567:

* Add a new function PyErr_ResourceWarning() function to pass the destroyed
  object
* Add a source attribute to warnings.WarningMessage
* Add warnings._showwarnmsg() which uses tracemalloc to get the traceback where
  source object was allocated.
2016-03-19 01:03:51 +01:00
Victor Stinner 1231a4615f Add _showwarnmsg() and _formatwarnmsg() to warnings
Issue #26568: add new  _showwarnmsg() and _formatwarnmsg() functions to the
warnings module.

The C function warn_explicit() now calls warnings._showwarnmsg() with a
warnings.WarningMessage as parameter, instead of calling warnings.showwarning()
with multiple parameters.

_showwarnmsg() calls warnings.showwarning() if warnings.showwarning() was
replaced. Same for _formatwarnmsg(): call warnings.formatwarning() if it was
replaced.
2016-03-19 00:47:17 +01:00