Antoine Pitrou
1fba62427c
The tracking statistics were actually too pessimistic
2009-03-23 19:17:00 +00:00
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
Antoine Pitrou
aa687902f2
Issue #3680 : Reference cycles created through a dict, set or deque iterator did not get collected.
2009-01-01 14:11:22 +00:00
Andrew M. Kuchling
a4127173f8
Punctuation fix; expand dict.update docstring to be clearer
2008-10-04 21:51:59 +00:00
Georg Brandl
1e13ea94a3
- Issue #3537 : Fix an assertion failure when an empty but presized dict
...
object was stored in the freelist.
2008-08-11 09:07:59 +00:00
Nick Coghlan
53663a695e
Issue 2235: __hash__ is once again inherited by default, but inheritance can be blocked explicitly so that collections.Hashable remains meaningful
2008-07-15 14:27:37 +00:00
Raymond Hettinger
a27474c345
Issue 3230: Do not the set specific size macro.
2008-06-28 22:16:53 +00:00
Robert Schuppenies
161b92103c
Corrected inconsistencies in sizeof tests and addressed issue pointed
...
out by Jean Brouwers.
2008-06-26 15:20:35 +00:00
Gregory P. Smith
dd96db63f6
This reverts r63675 based on the discussion in this thread:
...
http://mail.python.org/pipermail/python-dev/2008-June/079988.html
Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names
in the spirit of 3.0 are available via a #define only. See the email thread.
2008-06-09 04:58:54 +00:00
Georg Brandl
7a6de8b0f4
Some style nits. Also clarify in the docstrings what __sizeof__ does.
2008-06-01 16:42:16 +00:00
Robert Schuppenies
51df064767
Issue #2898 : Added sys.getsizeof() to retrieve size of objects in bytes.
2008-06-01 16:16:17 +00:00
Christian Heimes
593daf545b
Renamed PyString to PyBytes
2008-05-26 12:51:38 +00:00
Benjamin Peterson
f19a7b90bd
A little reformating of Py3k warnings
2008-04-27 18:40:21 +00:00
Benjamin Peterson
9f4f48114f
Use PyErr_WarnPy3k throughout
2008-04-27 03:01:45 +00:00
Georg Brandl
d65ab950c1
Fix tabs.
2008-03-25 08:31:32 +00:00
Georg Brandl
d5b635f196
Make Py3k warnings consistent w.r.t. punctuation; also respect the
...
EOL 80 limit and supply more alternatives in warning messages.
2008-03-25 08:29:14 +00:00
Steven Bethard
ae42f33cdf
Add py3k warnings for object, type, cell and dict comparisons. This should resolve issue2342 and partly resolve issue2373.
2008-03-18 17:26:10 +00:00
Christian Heimes
09bde04154
Use PY_FORMAT_SIZE_T instead of z for string formatting. Thanks Neal.
2008-02-24 12:26:16 +00:00
Raymond Hettinger
a37430a0ce
dict.copy() rises from the ashes. Revert r60687.
2008-02-12 19:05:36 +00:00
Raymond Hettinger
17a74c395e
Add -3 warnings that set.copy(), dict.copy(), and defaultdict.copy() will go away in Py3.x
2008-02-09 04:37:49 +00:00
Christian Heimes
48397d6c22
Use prefix decrement
2008-02-08 00:14:34 +00:00
Christian Heimes
f75dbef208
Deallocate content of the dict free list on interpreter shutdown
2008-02-08 00:11:31 +00:00
Christian Heimes
b4ee4a16f4
Added some statistics code to dict and list object code. I wanted to test how a larger freelist affects the reusage of freed objects. Contrary to my gut feelings 80 objects is more than fine for small apps. I haven't profiled a large app yet.
2008-02-07 17:15:30 +00:00
Christian Heimes
5b970ad483
Unified naming convention for free lists and their limits. All free lists
...
in Object/ are named ``free_list``, the counter ``numfree`` and the upper
limit is a macro ``PyName_MAXFREELIST`` inside an #ifndef block.
The chances should make it easier to adjust Python for platforms with
less memory, e.g. mobile phones.
2008-02-06 13:33:44 +00:00
Raymond Hettinger
3dbd4c536d
Changes 54857 and 54840 broke code and were reverted in Py2.5 just before
...
it was released, but that reversion never made it to the Py2.6 head.
2008-01-25 19:24:46 +00:00
Christian Heimes
e93237dfcc
#1629 : Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
2007-12-19 02:37:44 +00:00
Raymond Hettinger
fd7ed407d7
Give meaning to the oparg for BUILD_MAP: estimated size of the dictionary.
...
Allows dictionaries to be pre-sized (upto 255 elements) saving time lost
to re-sizes with their attendant mallocs and re-insertions.
Has zero effect on small dictionaries (5 elements or fewer), a slight
benefit for dicts upto 22 elements (because they had to resize once
anyway), and more benefit for dicts upto 255 elements (saving multiple
resizes during the build-up and reducing the number of collisions on
the first insertions). Beyond 255 elements, there is no addional benefit.
2007-12-18 21:24:09 +00:00
Georg Brandl
ede3a3218e
Spaces vs. Tabs.
2007-11-29 18:33:01 +00:00
Guido van Rossum
31645ba4a0
Fix bug #1517 , a segfault in lookdict().
2007-11-29 18:25:12 +00:00
Guido van Rossum
64c06e327d
Backport of _abccoll.py by Benjamin Arangueren, issue 1383.
...
With some changes of my own thrown in (e.g. backport of r58107).
2007-11-22 00:55:51 +00:00
Raymond Hettinger
34448790db
Optimize common case for dict.fromkeys().
2007-11-09 23:14:44 +00:00
Raymond Hettinger
cdcf887999
Optimize dict.fromkeys() with dict inputs. Useful for resetting bag/muliset counts for example.
2007-11-07 02:26:17 +00:00
Brett Cannon
77ae87c11e
Remove file-level typedefs that were inconsistently used throughout the file.
...
Just move over to the public API names.
Closes issue1238.
2007-10-10 00:07:50 +00:00
Brett Cannon
0153159e67
Add a bunch of GIL release/acquire points in tp_print implementations and for
...
PyObject_Print().
Closes issue #1164 .
2007-09-17 03:28:34 +00:00
Martin v. Löwis
6819210b9e
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
...
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
2007-07-21 06:55:02 +00:00
Neal Norwitz
c792629c83
Whitespace cleanup
2007-05-23 06:57:35 +00:00
Neal Norwitz
8b2bfbc198
Add -3 option to the interpreter to warn about features that are
...
deprecated and will be changed/removed in Python 3.0.
This patch is mostly from Anthony. I tweaked some format and added
a little doc.
2007-05-23 06:35:32 +00:00
Raymond Hettinger
e3146f5aa3
Add test and fix for fromkeys() optional argument.
2007-03-21 20:33:57 +00:00
Raymond Hettinger
0bbbfc4c0b
Extend work on rev 52962 and 53829 eliminating redundant PyObject_Hash() calls and fixing set/dict interoperability.
2007-03-20 21:27:24 +00:00
Neal Norwitz
ee3a1b5244
Variation of patch # 1624059 to speed up checking if an object is a subclass
...
of some of the common builtin types.
Use a bit in tp_flags for each common builtin type. Check the bit
to determine if any instance is a subclass of these common types.
The check avoids a function call and O(n) search of the base classes.
The check is done in the various Py*_Check macros rather than calling
PyType_IsSubtype().
All the bits are set in tp_flags when the type is declared
in the Objects/*object.c files because PyType_Ready() is not called
for all the types. Should PyType_Ready() be called for all types?
If so and the change is made, the changes to the Objects/*object.c files
can be reverted (remove setting the tp_flags). Objects/typeobject.c
would also have to be modified to add conditions
for Py*_CheckExact() in addition to each the PyType_IsSubtype check.
2007-02-25 19:44:48 +00:00
Raymond Hettinger
d6fc72a5ae
Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash().
2007-02-19 02:03:19 +00:00
Raymond Hettinger
0922d71604
SF #1615701 : make d.update(m) honor __getitem__() and keys() in dict subclasses
2007-02-07 20:08:22 +00:00
Neal Norwitz
7b932da443
Fix refleak
2006-10-29 23:39:03 +00:00
Georg Brandl
b9f4ad3a9a
Bug #1576657 : when setting a KeyError for a tuple key, make sure that
...
the tuple isn't used as the "exception arguments tuple".
2006-10-29 18:31:42 +00:00
Neal Norwitz
a5ccda95f2
Fix warnings with HP's C compiler. It doesn't recognize that infinite
...
loops are, um, infinite. These conditions should not be able to happen.
Will backport.
2006-10-28 21:16:54 +00:00
Neal Norwitz
a22975fb35
Fix SF bug #1546288 , crash in dict_equal.
2006-09-05 02:24:03 +00:00
Andrew M. Kuchling
0067b5fa2b
Typo fixes
2006-08-04 20:37:43 +00:00
Neal Norwitz
48808a1d6c
Add some asserts that we got good params passed
2006-07-21 05:29:58 +00:00
Armin Rigo
acd0d6d416
SF bug #1503294 .
...
PyThreadState_GET() complains if the tstate is NULL, but only in debug mode.
2006-06-10 10:57:40 +00:00
Tim Peters
d770ebd286
Armin committed his patch while I was reviewing it (I'm sure
...
he didn't know this), so merged in some changes I made during
review. Nothing material apart from changing a new `mask` local
from int to Py_ssize_t. Mostly this is repairing comments that
were made incorrect, and adding new comments. Also a few
minor code rewrites for clarity or helpful succinctness.
2006-06-01 15:50:44 +00:00