Commit Graph

23152 Commits

Author SHA1 Message Date
Barry Warsaw
f31ff27c57 (py-pychecker-run): Use the last pychecker invocation as the default
contents of the next command.
2002-07-17 21:25:43 +00:00
Fred Drake
f0b095d804 Added documentation for the buffer_text and related attributes of the
xmlparser object provided by pyexpat, new in Python 2.3.
2002-07-17 20:31:52 +00:00
Fred Drake
5c3ed3db9a Mark the closed attribute of the profiler with PyDoc_STR(), and added
a docstring for the info attribute of the logreader object.
2002-07-17 19:38:05 +00:00
Fred Drake
d1eb8b61d0 Added a docstring for the closed attribute.
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.
2002-07-17 18:54:20 +00:00
Guido van Rossum
04e7032c6e SF patch 552161 - Py_AddPendingCall doesn't unlock on fail (Daniel
Dunbar)

Can't test this, but looks correct to me.
2002-07-17 16:57:13 +00:00
Tim Peters
0c32279626 Removed more stray instances of statichere, but left _sre.c alone. 2002-07-17 16:49:03 +00:00
Fred Drake
50ceb68b4f Change staticforward and statichere to just use static.
Removed ^M from some line-ends.
2002-07-17 16:42:48 +00:00
Fred Drake
a3cd9bbaa3 Remove now-obsolete staticforward/statichere discussion. 2002-07-17 16:40:39 +00:00
Jeremy Hylton
938ace69a0 staticforward bites the dust.
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.
2002-07-17 16:30:39 +00:00
Guido van Rossum
9cb64b954a Some modernization. Get rid of the redundant next() method. Always
assume tp_iter and later fields exist.  Use PyObject_GenericGetAttr
instead of providing our own tp_getattr hook.
2002-07-17 16:15:35 +00:00
Guido van Rossum
7fadcabdee Add a test for the 'closed' attribute on the C-profiler object. 2002-07-17 16:12:53 +00:00
Jeremy Hylton
ed375e18d1 Add missing comma. 2002-07-17 15:56:55 +00:00
Jeremy Hylton
57d930bd3c Add test_zlib and test_struct to list of slow tests 2002-07-17 15:55:09 +00:00
Tim Peters
02488ff173 Windows has no actual need for BAD_STATIC_FORWARD, so got rid of it. 2002-07-17 15:32:40 +00:00
Guido van Rossum
11c3f0999f Add a rather generous set of tests allowed to be skipped on sunos5. 2002-07-17 15:08:24 +00:00
Fred Drake
f042db6a94 Remove RCSId; this produces annoying warnings.
This is already removed from Expat 1.95.4, so the problem will not
recur when we update.
2002-07-17 14:45:33 +00:00
Guido van Rossum
2335100b6a Wipe out some warnings about non-ANSI code and an unsafe arg to
isdigit().
2002-07-17 14:33:34 +00:00
Fred Drake
2095b9690f reduce(): Clarified what is returned in the case of a sequence 1 item long and
initial/default value.
2002-07-17 13:55:33 +00:00
Barry Warsaw
1f4fed68e9 We need to (require 'compile) to guarantee that compile-internal is
defined.  /Really/ closes SF # 580631.
2002-07-17 13:45:00 +00:00
Tim Peters
c7b6bedecf Use sys.executable to run Python, as suggested by Neal Norwitz. 2002-07-17 00:34:26 +00:00
Tim Peters
a64295b43a There's no need for generators to define an explicit next() method. 2002-07-17 00:15:22 +00:00
Guido van Rossum
674eae65ea Bunch of tests to make sure that StopIteration is a sink state. 2002-07-16 21:48:11 +00:00
Jeremy Hylton
e3252ec6cf Fix typos and such caught by the pycheckerbot. 2002-07-16 21:41:43 +00:00
Tim Peters
c411dbaeee Whitespace normalization. 2002-07-16 21:35:23 +00:00
Jeremy Hylton
8531b1b28d Send HTTP requests with a single send() call instead of many.
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?
2002-07-16 21:21:11 +00:00
Guido van Rossum
ca5ed5b875 Remove the next() method -- one is supplied automatically by
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.
2002-07-16 21:02:42 +00:00
Guido van Rossum
86d593e110 Remove the next() method -- one is supplied automatically by
PyType_Ready() because the tp_iternext slot is set.  Also removed the
redundant (and expensive!) call to raise StopIteration from
rangeiter_next().
2002-07-16 20:47:50 +00:00
Guido van Rossum
2147df748f Make StopIteration a sink state. This is done by clearing out the
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).
2002-07-16 20:30:22 +00:00
Guido van Rossum
613bed3726 Make StopIteration a sink state. This is done by clearing out the
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).
2002-07-16 20:24:46 +00:00
Guido van Rossum
6b6272c857 Whitespace normalization. 2002-07-16 20:10:23 +00:00
Guido van Rossum
86103ae531 Make StopIteration a sink state. This is done by clearing out the
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).
2002-07-16 20:07:32 +00:00
Guido van Rossum
9534e14033 Record the decision that StopIteration is a sink state (see recent
discussion in python-dev with subject "Termination of two-arg iter()").

Implementation will follow.
2002-07-16 19:53:39 +00:00
Jeremy Hylton
39c6116483 Given the persistent id code a shot at a class before calling save_global().
Some persistent picklers (well, probably, the *only* persistent
pickler) would like to pickle some classes in a special way.
2002-07-16 19:47:43 +00:00
Jeremy Hylton
719841e2fb The object returned by tp_new() may not have a tp_init.
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().
2002-07-16 19:39:38 +00:00
Tim Peters
012b69cb30 The atexit module effectively turned itself off if sys.exitfunc already
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.
2002-07-16 19:30:59 +00:00
Barry Warsaw
32a03967b7 (py-imenu-create-index-function): Skip over stuff that looks like code
but which is in a comment or string.  Closes SF bug # 572341 reported
by Adrian van den Dries.
2002-07-16 16:04:13 +00:00
Guido van Rossum
5086e49a6e Make list_iter() really static. 2002-07-16 15:56:52 +00:00
Barry Warsaw
daa192104d (py-pychecker-run): Thomas Heller points out that this function messes
up the compile command's history.  Fix that by using compile-internal.

Fixes SF bug # 580631
2002-07-16 15:56:28 +00:00
Guido van Rossum
03013a0130 valid_identifier(): use an unsigned char* so that isalpha() will do
the right thing even if char is unsigned.
2002-07-16 14:30:28 +00:00
Mark Hammond
c0e35158fb Add a blurb on the 3 Windows bugs I worked on over the last couple of days. 2002-07-16 01:32:30 +00:00
Mark Hammond
975e3921ae Fix bug 581232 - [Windows] Can not interrupt time.sleep()
time.sleep() will now be interrupted on the main thread when Ctrl+C is pressed.  Other threads are never interrupted.
2002-07-16 01:29:19 +00:00
Barry Warsaw
0756a5e97a Added the "weird" ccTLDs ac, gg, im, and je. These are not recognized
by ISO 3166 as country codes, but the are reserved by IANA
nonetheless.  The commonly used uk ccTLD is part of this group, near
as I can tell.
2002-07-15 19:53:28 +00:00
Tim Peters
e561dc231e XXXROUNDUP(): Turns out this fixed Andrew MacIntyre's memory-mgmt
disaster too, so this change is here to stay.  Beefed up the comments
and added some stats Andrew reported.  Also a small change to the
macro body, to make it obvious how XXXROUNDUP(0) ends up returning 0.
See SF patch 578297 for context.

Not a bugfix candidate, as the functional changes here have already
been backported to the 2.2 line (this patch just improves clarity).
2002-07-15 17:58:03 +00:00
Tim Peters
a65523a151 Added Andrew MacIntyre -- overdue! 2002-07-15 16:13:06 +00:00
Tim Peters
ee66d0c3d5 /F revealed that ShellExecute() only requires shellapi.h, not the
full-blown windows.h, so changed accordingly.
2002-07-15 16:10:55 +00:00
Guido van Rossum
54ed2d32f9 Clarify that the description of sys.path[0] is only valid upon program
start-up.
2002-07-15 16:08:10 +00:00
Andrew MacIntyre
754140e163 Tim_one's change to aggressively overallocate nodes when adding child
nodes (in Parser/node.c) resolves the gross memory consumption
exhibited by the EMX runtime on OS/2, so the test should be exercised
on this platform.
2002-07-15 12:03:19 +00:00
Tim Peters
58cf361e35 docompare(): Another reasonable optimization from Jonathan Hogg for the
explicit comparison function case:  use PyObject_Call instead of
PyEval_CallObject.  Same thing in context, but gives a 2.4% overall
speedup when sorting a list of ints via list.sort(__builtin__.cmp).
2002-07-15 05:16:13 +00:00
Mark Hammond
155adbdcbb Fix bug 231273 - [windows] os.popen doens't kill subprocess when interrupted
Don't pass CREATE_NEW_CONSOLE to CreateProcess(), meaning our child process is in the same "console group" and therefore interrupted by the same Ctrl+C that interrupts the parent.
2002-07-14 23:28:16 +00:00
Mark Hammond
2f10cb8fa5 Fix bug 439992 - [win32] KeyboardInterrupt Not Caught.
This gets us closer to consistent Ctrl+C behaviour on NT and Win9x.  NT now reliably generates KeyboardInterrupt exceptions for NT when a file IO operation was aborted.  Bugfix candidate
2002-07-14 23:12:29 +00:00