Commit Graph

41572 Commits

Author SHA1 Message Date
Antoine Pitrou f8387af262 Issue #4688: Add a heuristic so that tuples and dicts containing only
untrackable objects are not tracked by the garbage collector. This can
reduce the size of collections and therefore the garbage collection overhead
on long-running programs, depending on their particular use of datatypes.

(trivia: this makes the "binary_trees" benchmark from the Computer Language
Shootout 40% faster)
2009-03-23 18:41:45 +00:00
Raymond Hettinger e5b78563b6 Make imported name private and wrap long-line. 2009-03-23 18:26:59 +00:00
Mark Dickinson 0b666bfdf9 Issue #5512: speed up the long division algorithm for Python longs.
The basic algorithm remains the same; the most significant speedups
come from the following three changes:

  (1) normalize by shifting instead of multiplying and dividing
  (2) the old algorithm usually did an unnecessary extra iteration of
      the outer loop; remove this.  As a special case, this means that
      long divisions with a single-digit result run twice as fast as
      before.
  (3) make inner loop much tighter.

Various benchmarks show speedups of between 50% and 150% for long
integer divisions and modulo operations.
2009-03-23 18:25:13 +00:00
Raymond Hettinger 906f95e80b Move initialization of root link to __init__. 2009-03-23 04:42:18 +00:00
Raymond Hettinger f1e2df9780 Add more comments. Improve variable names.
Make links clearer by using a Link object
instead of a list.  Use proxy links to avoid
circular references.
2009-03-23 00:08:09 +00:00
Benjamin Peterson 704dc269e3 AttributeError can be thrown during recursion errors 2009-03-22 22:24:58 +00:00
Lars Gustäbel 2020a59563 Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
forever on incomplete input. That caused tarfile.open() to hang when used
with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
partial bzip2 compressed data.
2009-03-22 20:09:33 +00:00
Benjamin Peterson b364bfe2f4 close the file even if an exception occurs #5536 2009-03-22 17:45:11 +00:00
Matthias Klose 8ed2520536 - Fix comment macro in python.man 2009-03-22 13:08:22 +00:00
Hirokazu Yamamoto 52a3492efb There is no macro named SIZEOF_SSIZE_T. Should use SIZEOF_SIZE_T instead. 2009-03-21 10:32:52 +00:00
Mark Dickinson f35f8044e4 Rewrite Py_ARITHMETIC_RIGHT_SHIFT so that it's valid for all signed
integer types T, not just those for which "unsigned T" is legal.
2009-03-20 23:16:14 +00:00
Raymond Hettinger 2cef1a5409 Add MutableSet example. 2009-03-20 18:25:49 +00:00
Mark Dickinson efc82f7e8e Issue #4258: Use 30-bit digits for Python longs, on 64-bit platforms.
Backport of r70459.
2009-03-20 15:51:55 +00:00
Raymond Hettinger c8e81ef508 Fix typo 2009-03-19 23:22:25 +00:00
Raymond Hettinger e980d2d44b * Add implementation notes.
* Re-order methods so that those touching the underlying data
  structure come first and the derived methods come last.
2009-03-19 23:12:41 +00:00
Raymond Hettinger 2412299be9 * Add clearer comment to initialization code.
* Add optional argument to popitem() -- modeled
  after Anthon van der Neut's C version.
* Fix method markup in docs.
2009-03-19 19:59:58 +00:00
Raymond Hettinger a0b8d9ad2d Silence a compiler warning. 2009-03-19 19:24:43 +00:00
Raymond Hettinger 91852ca673 Issue 5381: Add object_pairs_hook to the json module. 2009-03-19 19:19:03 +00:00
Raymond Hettinger 2124599eaa Improve implementation with better underlying data structure
for O(1) deletions.  Big-Oh performance now the same as regular
dictionaries.  Uses a doubly-linked list instead of a list/seq
to track insertion order.
2009-03-19 15:21:10 +00:00
Benjamin Peterson fcfa7ead4f close files after comparing them 2009-03-19 03:04:31 +00:00
Raymond Hettinger a61ae6922f Use mixin methods where possible. (2.7 only -- these don't all exist in 3.0) 2009-03-18 22:13:20 +00:00
Benjamin Peterson 06919a177d a much better example 2009-03-18 20:58:09 +00:00
Benjamin Peterson 6ffe852f90 fix strange errors when setting attributes on tracebacks #4034 2009-03-18 20:52:15 +00:00
Antoine Pitrou 7c33bd5ecb Attempt to fix Solaris buildbot failure on test_locale 2009-03-18 17:10:04 +00:00
Mark Dickinson 6b265f1bf8 Issue 4474: On platforms with sizeof(wchar_t) == 4 and
sizeof(Py_UNICODE) == 2, PyUnicode_FromWideChar now converts
each character outside the BMP to the appropriate surrogate pair.

Thanks Victor Stinner for the patch.

(backport of r70452 from py3k to trunk)
2009-03-18 16:07:26 +00:00
Hirokazu Yamamoto eb15863a97 Updated openssl support on VC6. (openssl-0.9.6g is old, cannot compile with _ssl.c)
If you use http://svn.python.org/projects/external/openssl-0.9.8g, Perl is not needed.
This scheme was ported from PCBuild.
2009-03-18 10:17:26 +00:00
Mark Dickinson b14514a153 Fix bug in _insert_thousands_sep: too much zero padding could be
added for 'n' formats with non-repeating thousands-separator.
2009-03-18 08:22:51 +00:00
Bob Ippolito d914e3f861 merge json library with simplejson 2.0.9 (issue 4136) 2009-03-17 23:19:00 +00:00
Mark Dickinson 277859d591 Issue #2110: Add support for thousands separator and 'n' format specifier
to Decimal __format__ method.
2009-03-17 23:03:46 +00:00
Benjamin Peterson ed3558b334 I thought this was begging for an example 2009-03-17 20:29:51 +00:00
Mark Dickinson b065e52bc2 Fix bug in Decimal __format__ method that swapped left and right
alignment.
2009-03-17 18:01:03 +00:00
Georg Brandl 8cbe9556cf Add token markup. 2009-03-16 19:42:03 +00:00
Hirokazu Yamamoto bb7467f6e3 Added skip for old MSVC. 2009-03-15 22:43:14 +00:00
Georg Brandl fc9ea97a18 Move the previously local import of threading to module level.
This is cleaner and avoids lockups in obscure cases where a Queue
is instantiated while the import lock is already held by another thread.

OKed by Tim Peters.
2009-03-15 22:11:07 +00:00
Georg Brandl 545a134916 Fix markup in re docs and give a mail address in regex howto, so that
the recommendation to send suggestions to the author can be followed.
2009-03-15 21:59:37 +00:00
Georg Brandl 173c1f1a01 #5469: add with statement to list of name-binding constructs. 2009-03-15 21:53:56 +00:00
Georg Brandl 09827eb55e #5276: document IDLESTARTUP and .Idle.py. 2009-03-15 21:51:48 +00:00
Georg Brandl 8db96b5969 #5478: fix copy-paste oversight in function signature. 2009-03-15 21:47:42 +00:00
Georg Brandl 44e5cd3e51 #5488: add missing struct member. 2009-03-15 21:46:00 +00:00
Georg Brandl 5a95b21fee #5491: clarify nested() semantics. 2009-03-15 21:44:43 +00:00
Georg Brandl ed4cefbedd Fix a small nit in the error message if bool() falls back on __len__ and it returns the wrong type: it would tell the user that __nonzero__ should return bool or int. 2009-03-15 21:43:38 +00:00
Georg Brandl 3259ef3dff #5493: clarify __nonzero__ docs. 2009-03-15 21:37:16 +00:00
Georg Brandl 4c95e091d6 #5496: fix docstring of lookup(). 2009-03-15 21:32:06 +00:00
Benjamin Peterson 1706c644ae fix tuple.index() error message #5495 2009-03-15 14:38:55 +00:00
Nick Coghlan 8eba5ed0d9 Make marshalling errors a little more informative as to what went wrong 2009-03-15 03:24:46 +00:00
Eric Smith 2ace4cf813 Unicode format tests weren't actually testing unicode. This was probably due to the original backport from py3k. 2009-03-14 14:37:38 +00:00
Eric Smith 6f42edb682 Issue 5237, Allow auto-numbered replacement fields in str.format() strings.
For simple uses for str.format(), this makes the typing easier. Hopfully this
will help in the adoption of str.format().

For example:
'The {} is {}'.format('sky', 'blue')

You can mix and matcth auto-numbering and named replacement fields:
'The {} is {color}'.format('sky', color='blue')

But you can't mix and match auto-numbering and specified numbering:
'The {0} is {}'.format('sky', 'blue')
ValueError: cannot switch from manual field specification to automatic field numbering

Will port to 3.1.
2009-03-14 11:57:26 +00:00
Antoine Pitrou feeafff052 Issue #1222: locale.format() bug when the thousands separator is a space character. 2009-03-14 00:07:21 +00:00
Georg Brandl e83a4adba7 #5486: typos. 2009-03-13 19:03:58 +00:00
Raymond Hettinger efa7c138b6 Issue 5477: Fix buglet in the itertools documentation. 2009-03-12 00:31:58 +00:00