Commit Graph

28719 Commits

Author SHA1 Message Date
Tim Peters add09b4149 SF bug 840829: weakref callbacks and gc corrupt memory.
subtype_dealloc():  This left the dying object exposed to gc, so that
if cyclic gc triggered during the weakref callback, gc tried to delete
the dying object a second time.  That's a disaster.  subtype_dealloc()
had a (I hope!) unique problem here, as every normal dealloc routine
untracks the object (from gc) before fiddling with weakrefs etc.  But
subtype_dealloc has obscure technical reasons for re-registering the
dying object with gc (already explained in a large comment block at
the bottom of the function).

The fix amounts to simply refraining from reregistering the dying object
with gc until after the weakref callback (if any) has been called.

This is a critical bug (hard to predict, and causes seemingly random
memory corruption when it occurs).  I'll backport it to 2.3 later.
2003-11-12 20:43:28 +00:00
Tim Peters 045f1de57e pyexpat stopped building on Windows -- whining about the lack of a
HAVE_MEMMOVE define.  Just defined it on the cmdline (it doesn't
include Python.h, and Fred doesn't want to change the code).
2003-11-12 19:30:36 +00:00
Raymond Hettinger 7d1dd04334 Fix typo 2003-11-12 16:42:10 +00:00
Raymond Hettinger bc3cba2881 Explain the advantages of reversed. 2003-11-12 16:39:30 +00:00
Raymond Hettinger 607c00f792 Present each feature in terms of what makes it useful or desirable. 2003-11-12 16:27:50 +00:00
Raymond Hettinger 859db26729 Improve backwards compatibility code to handle True/False. 2003-11-12 15:21:20 +00:00
Raymond Hettinger ad983e79d6 Improve the implementation of itertools.tee().
Formerly, underlying queue was implemented in terms of two lists.  The
new queue is a series of singly-linked fixed length lists.

The new implementation runs much faster, supports multi-way tees, and
allows tees of tees without additional memory costs.

The root ideas for this structure were contributed by Andrew Koenig
and Guido van Rossum.
2003-11-12 14:32:26 +00:00
Neil Schemenauer 767126d7b9 Make Message.__str__ more efficient. 2003-11-11 19:39:17 +00:00
Fred Drake d85ed1b7fc fix typo in markup 2003-11-10 14:50:54 +00:00
Fred Drake 28eae084bf fix use of undefined markup 2003-11-10 14:48:48 +00:00
Fred Drake dbe7980d6a add missing "if" 2003-11-10 14:43:16 +00:00
Martin v. Löwis 75aa4db04b Mention that getsid is new in 2.4. 2003-11-10 06:46:15 +00:00
Martin v. Löwis d8921379e9 Patch #798297: Add IMAP THREAD command. 2003-11-10 06:44:44 +00:00
Martin v. Löwis 49ee14dac5 Patch #839038: Add getsid(2). 2003-11-10 06:35:36 +00:00
Guido van Rossum 967b063add Plug tempfile.mktemp() hole (Iustin Pop). 2003-11-10 02:27:19 +00:00
Guido van Rossum b256159396 mktemp() shouldn't rely on os.path.exists(), which can return False if
the file is a symlink.  Instead, use os.lstat directly, if it exists;
fall back on os.stat or the built-in open.  Thanks to Iustin Pop.
2003-11-10 02:16:36 +00:00
Alex Martelli f09994e527 fixed wrong error checking on fcntl call as per SF bug # 821896
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:44:09 +00:00
Alex Martelli 0c5b4ad8f2 fixed obvious bug in _send_header as per SF bug #831271
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:41:38 +00:00
Alex Martelli 721b776175 fixed buggy comment as per SF bug #827856
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:38:39 +00:00
Alex Martelli c516b0e47c clarified (in the 5.14 summary) that tests and comparisons all chain,
added a specific \ref to 5.9 in lieu of previous vague "see above".
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:33:56 +00:00
Alex Martelli 37dc334276 Add docs for readmodule_ex and its function-descriptors, fixing
sf bug#812818.
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:32:54 +00:00
Alex Martelli 50324a604c Avoid giving advice that's bad for security, as per SF bug #823515
(same as commit of Sun Nov 2 to the release23-maint branch)
2003-11-09 16:31:18 +00:00
Brett Cannon 35d8360bf7 Document Py_RETURN_NONE. 2003-11-09 04:15:30 +00:00
Andrew M. Kuchling f7a6b67e5c Add 'see also' section pointing to the PEP 2003-11-08 16:05:37 +00:00
Andrew M. Kuchling 1a420251cf Add some recent changes 2003-11-08 15:58:49 +00:00
Raymond Hettinger af28e4b66b Update test to handle list.__reversed__(). 2003-11-08 12:39:53 +00:00
Raymond Hettinger 001f228f36 Improve the reverse list iterator to free memory as soon as the iterator
is exhausted.
2003-11-08 11:58:44 +00:00
Raymond Hettinger e21f606657 SF bug #835457: Small typo in logging documentation 2003-11-08 11:40:03 +00:00
Raymond Hettinger c24c9106e8 Minor code fixup. Make sure that len reflects the current list size. 2003-11-08 11:35:22 +00:00
Raymond Hettinger b3af1813eb Convert heapq.py to a C implementation. 2003-11-08 10:24:38 +00:00
Raymond Hettinger 1021c44b41 Optimize reversed(list) using a custom iterator. 2003-11-07 15:38:09 +00:00
Michael W. Hudson ff1f194982 Fix the problem addressed by patch
[ 819012 ] Fix for former/latter confusion in Extending documentation

although not by using supplied patch.
2003-11-07 11:45:34 +00:00
Raymond Hettinger dc62aeca4c Add a new looping idiom 2003-11-07 01:30:58 +00:00
Martin v. Löwis 5ce2fecf8e Patch #837322: Clarify owning, borrowing, stealing. Backported to 2.3. 2003-11-06 21:08:11 +00:00
Martin v. Löwis d2171d2ba4 Overallocate target buffer for normalization more early. Fixes #834676.
Backported to 2.3.
2003-11-06 20:47:57 +00:00
Raymond Hettinger 85c20a41df Implement and apply PEP 322, reverse iteration 2003-11-06 14:06:48 +00:00
Neil Schemenauer f607fc5395 Add traceback.format_exc(). 2003-11-05 23:03:00 +00:00
Jeremy Hylton 904ed86a77 Make undetected error on stack unwind a fatal error. 2003-11-05 17:29:35 +00:00
Anthony Baxter 92bee36045 missing news entry 2003-11-04 14:35:49 +00:00
Gregory P. Smith 7441e65821 * SF patch 835100 - C++ // comments are not allowed. Use /* */ 2003-11-03 21:35:31 +00:00
Jeremy Hylton ceac90aecb Fix compiler warning about possible use of n without assignment.
Also fix use of n for two different variables in two different blocks.
2003-11-03 20:58:28 +00:00
Gregory P. Smith a703a21b48 * Use weakref's of DBCursor objects for the iterator cursors to avoid a
memory leak that would've occurred for all iterators that were
  destroyed before having iterated until they raised StopIteration.

* Simplify some code.

* Add new test cases to check for the memleak and ensure that mixing
  iteration with modification of the values for existing keys works.
2003-11-03 01:04:41 +00:00
Raymond Hettinger 83c187460e SF patch #834444: add versionadd to new functions
(Contributed by George Yoshida.)
2003-11-02 09:50:56 +00:00
Raymond Hettinger cc523fc53d SF patch #834015: Remove imports of unused modules
(Contributed by George Yoshida.)
2003-11-02 09:47:05 +00:00
Gregory P. Smith dc113a8a06 * Fix the singlethreaded deadlocks occurring in the simple bsddb interface.
* Add support for multiple iterator/generator objects at once on the simple
  bsddb _DBWithCursor interface.
2003-11-02 09:10:16 +00:00
Gregory P. Smith e276717113 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
has been closed" exceptions.

Adds a DBCursorClosedError exception in the closed cursor case for
future use in fixing the legacy bsddb interface deadlock problems
due to its use of cursors with DB_INIT_LOCK | DB_THREAD support
enabled.
2003-11-02 08:06:29 +00:00
Raymond Hettinger 54a831bef7 Use PyTuple_Pack() to simplify enumerate(). 2003-11-02 05:37:44 +00:00
Andrew M. Kuchling b4b9ced1b6 [Bug #817178] Fix incorrect arguments in example, noted by Terry Reedy 2003-10-31 19:52:30 +00:00
Martin v. Löwis 2389c41a10 Patch #833710: Set INSTSONAME on Solaris. Backported to 2.3. 2003-10-31 15:42:07 +00:00
Martin v. Löwis 893ffa4372 Patch #830858: Correct the number of is-functions. Backported to 2.3 and 2.2. 2003-10-31 15:35:53 +00:00