| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
and should never return None. (It only did this for an old version of
HotShot that was trying to still work with a patched Python 2.1.)
|
| |
|
|
|
|
|
| |
Remove the crufty support for Python's that don't have StopIteration;
the HotShot patch for Python 2.1 has not been maintained.
|
|
|
|
|
|
|
|
| |
- The log reader now provides a "closed" attribute similar to the
profiler.
- Both the profiler and log reader now provide a fileno() method.
- Use METH_NOARGS where possible, allowing simpler code in the method
implementations.
|
|
|
|
| |
(Silences compiler warning for Compaq C++ 6.5 on Tru64.)
|
|
|
|
|
| |
getdefaulttimeout() functions to the socket and _socket modules, and
appropriate tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the default range to end at 2**20 (machines are much faster now).
Fixed what was quite a arguably a bug, explaining an old mystery: the
"!sort" case here contructs what *was* a quadratic-time disaster for
the old quicksort implementation. But under the current samplesort, it
always ran much faster than *sort (the random case). This never made
sense. Turns out it was because !sort was sorting an integer array,
while all the other cases sort floats; and comparing ints goes much
quicker than comparing floats in Python. After changing !sort to chew
on floats instead, it's now slower than the random sort case, which
makes more sense (but is just a few percent slower; samplesort is
massively less sensitive to "bad patterns" than quicksort).
|
|
|
|
|
| |
file object that LogReader opens. Used it then in test_hotshot; the
test passes again on Windows. Thank Guido for the analysis.
|
|
|
|
| |
codebase, so get rid of the pre-2.2 contingency.
|
|
|
|
| |
and that I don't know how to fix it. Fred?
|
|
|
|
| |
contents of the next command.
|
|
|
|
| |
xmlparser object provided by pyexpat, new in Python 2.3.
|
|
|
|
| |
a docstring for the info attribute of the logreader object.
|
|
|
|
|
|
| |
write_header(): When we encounter a non-string object in sys.path, record
a fairly mindless placeholder rather than dying. Possibly could record
the repr of the object found, but not clear whether that matters.
|
|
|
|
|
|
| |
Dunbar)
Can't test this, but looks correct to me.
|
| |
|
|
|
|
| |
Removed ^M from some line-ends.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The staticforward define was needed to support certain broken C
compilers (notably SCO ODT 3.0, perhaps early AIX as well) botched the
static keyword when it was used with a forward declaration of a static
initialized structure. Standard C allows the forward declaration with
static, and we've decided to stop catering to broken C compilers. (In
fact, we expect that the compilers are all fixed eight years later.)
I'm leaving staticforward and statichere defined in object.h as
static. This is only for backwards compatibility with C extensions
that might still use it.
XXX I haven't updated the documentation.
|
|
|
|
|
| |
assume tp_iter and later fields exist. Use PyObject_GenericGetAttr
instead of providing our own tp_getattr hook.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is already removed from Expat 1.95.4, so the problem will not
recur when we update.
|
|
|
|
| |
isdigit().
|
|
|
|
| |
initial/default value.
|
|
|
|
| |
defined. /Really/ closes SF # 580631.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation now stores all the lines of the request in a buffer
and makes a single send() call when the request is finished,
specifically when endheaders() is called.
This appears to improve performance. The old code called send() for
each line. The sends are all short, so they caused bad interactions
with the Nagle algorithm and delayed acknowledgements. In simple
tests, the second packet was delayed by 100s of ms. The second send was
delayed by the Nagle algorithm, waiting for the ack. The delayed ack
strategy delays the ack in hopes of piggybacking it on a data packet,
but the server won't send any data until it receives the complete
request.
This change minimizes the problem that Nagle + delayed ack will cause
a problem, although a request large enough to be broken into two
packets will still suffer some delay. Luckily the MSS is large enough
to accomodate most single packets.
XXX Bug fix candidate?
|
|
|
|
|
|
|
|
| |
PyType_Ready() because the tp_iternext slot is set (fortunately,
because using the tp_iternext implementation for the the next()
implementation is buggy). Also changed the allocation order in
enum_next() so that the underlying iterator is only moved ahead when
we have successfully allocated the result tuple and index.
|
|
|
|
|
|
| |
PyType_Ready() because the tp_iternext slot is set. Also removed the
redundant (and expensive!) call to raise StopIteration from
rangeiter_next().
|
|
|
|
|
|
|
|
|
|
| |
di_dict field when the end of the list is reached. Also make the
error ("dictionary changed size during iteration") a sticky state.
Also remove the next() method -- one is supplied automatically by
PyType_Ready() because the tp_iternext slot is set. That's a good
thing, because the implementation given here was buggy (it never
raised StopIteration).
|
|
|
|
|
|
|
|
|
|
| |
object references (it_seq for seqiterobject, it_callable and
it_sentinel for calliterobject) when the end of the list is reached.
Also remove the next() methods -- one is supplied automatically by
PyType_Ready() because the tp_iternext slot is set. That's a good
thing, because the implementation given here was buggy (it never
raised StopIteration).
|
| |
|
|
|
|
|
|
|
|
|
| |
it_seq field when the end of the list is reached.
Also remove the next() method -- one is supplied automatically by
PyType_Ready() because the tp_iternext slot is set. That's a good
thing, because the implementation given here was buggy (it never
raised StopIteration).
|
|
|
|
|
|
| |
discussion in python-dev with subject "Termination of two-arg iter()").
Implementation will follow.
|
|
|
|
|
| |
Some persistent picklers (well, probably, the *only* persistent
pickler) would like to pickle some classes in a special way.
|
|
|
|
|
|
| |
If the object is an ExtensionClass, for example, the slot is not even
defined. So we must check that the type has the slot (implied by
HAVE_CLASS) before calling tp_init().
|
|
|
|
|
|
|
|
|
|
|
| |
existed at the time atexit first got imported. That's a bug, and this
fixes it.
Also reworked test_atexit.py to test for this too, and to stop using
an "expected output" file, and to test what actually happens at exit
instead of just simulating what it thinks atexit will do at exit.
Bugfix candidate, but it's messy so I'll backport to 2.2 myself.
|
|
|
|
|
| |
but which is in a comment or string. Closes SF bug # 572341 reported
by Adrian van den Dries.
|
| |
|
|
|
|
|
|
| |
up the compile command's history. Fix that by using compile-internal.
Fixes SF bug # 580631
|
|
|
|
| |
the right thing even if char is unsigned.
|