Commit Graph

18085 Commits

Author SHA1 Message Date
Martin v. Löwis 2b110f9713 Replace snprintf with sprintf. 2001-06-25 06:37:02 +00:00
Tim Peters 2106ef0222 Repair indentation in comment.
Add a temporary driver to help track down remaining leak(s).
2001-06-25 01:30:12 +00:00
Martin v. Löwis a2ca1ae3ca Fix typos in inet_pton/inet_ntop. 2001-06-24 21:35:43 +00:00
Martin v. Löwis a45ecae474 Provide a definition for offsetof. 2001-06-24 21:28:42 +00:00
Martin v. Löwis b9ab159052 Emulate inet_{pton,ntop} on systems that don't provide it. 2001-06-24 21:18:26 +00:00
Martin v. Löwis 530f99017e Move USE_TOOLBOX_OBJECT_GLUE into acconfig.h. 2001-06-24 20:59:45 +00:00
Tim Peters fee69d0313 Changed some comments. Removed the caution about clearing globs, since
clearing a shallow copy _run_examples() makes itself can't hurt anything.
2001-06-24 20:24:16 +00:00
Tim Peters d4ad59e1eb Clear the copy of the globs dict after running examples. This helps to
break cycles, which are a special problem when running generator tests
that provoke exceptions by invoking the .next() method of a named
generator-iterator:  then the iterator is named in globs, and the
iterator's frame gets a tracekback object pointing back to globs, and
gc doesn't chase these types so the cycle leaks.

Also changed _run_examples() to make a copy of globs itself, so its
callers (direct and indirect) don't have to (and changed the callers
to stop making their own copies); *that* much is a change I've been
meaning to make for a long time (it's more robust the new way).

Here's a way to provoke the symptom without doctest; it leaks at a
prodigious rate; if the last two "source" lines are replaced with
    g().next()
the iterator isn't named and then there's no leak:

source = """\
def g():
    yield 1/0

k = g()
k.next()
"""

code = compile(source, "<source>", "exec")

def f(globs):
    try:
        exec code in globs
    except ZeroDivisionError:
        pass

while 1:
    f(globals().copy())

After this change, running test_generators in an infinite loop still leaks,
but reduced from a flood to a trickle.
2001-06-24 20:02:47 +00:00
Tim Peters 77f2d504c3 doctest systematically leaked memory when handling an exception in an
example (an obvious trackback cycle).  Repaired.
Bugfix candidate.
2001-06-24 18:59:01 +00:00
Tim Peters b2bc6a93df Added a "generate k-combinations of a list" example posted to c.l.py. 2001-06-24 10:14:27 +00:00
Tim Peters ea2e97a08a New tests to provoke SyntaxErrors unique to generators. Minor fiddling
of other tests.
2001-06-24 07:10:02 +00:00
Tim Peters 08bba953ea doctest doesn't handle intentional SyntaxError exceptions gracefully,
because it picks up the first line of traceback.format_exception_only()
instead of the last line.  Pick up the last line instead!
2001-06-24 06:46:58 +00:00
Tim Peters ee30927b45 Another variant of the 2-3-5 test, mixing generators with a LazyList class.
Good news:  Some of this stuff is pretty sophisticated (read nuts), and
I haven't bumped into a bug yet.
Bad news:  If I run the doctest in an infinite loop, memory is clearly
leaking.
2001-06-24 05:47:06 +00:00
Tim Peters 7e82b9cc6b Pure brute-force hackery to allow Python to build on Windows again,
because I need to make progress and don't have time now to think about
whatever it is the new code is trying to accomplish.
2001-06-24 05:08:52 +00:00
Tim Peters b9e9ff1288 More tests. 2001-06-24 03:44:52 +00:00
Tim Peters 0f9da0acde Add a recursive Sieve of Eratosthenes prime generator. Not practical,
but it's a heck of a good generator exerciser (think about it <wink>).
2001-06-23 21:01:47 +00:00
Tim Peters 6ba5f79674 Add all the examples from PEP 255, and a few email examples. 2001-06-23 20:45:43 +00:00
Tim Peters 1def351b45 New std test for generators, initially populated with doctests NeilS put
together.
2001-06-23 20:27:04 +00:00
Martin v. Löwis bfdf4ecad0 Properly use &&. Closes bug #434988. 2001-06-23 19:58:46 +00:00
Martin v. Löwis b28f6e7c7b Properly use &&. Closes bug #434989. 2001-06-23 19:55:38 +00:00
Martin v. Löwis 01dfdb3d35 Patch #401196: Configuration machinery for IPv6.
Contributed by Jun-ichiro "itojun" Hagino. get{addr,name}info emulation
code taken from WIDE.
2001-06-23 16:30:13 +00:00
Andrew M. Kuchling e7e03cd0cf Fix typo 2001-06-23 16:26:44 +00:00
Eric S. Raymond ff00fdae23 Correct erroneous description of precmd. 2001-06-23 14:42:43 +00:00
Tim Peters ad1a18b78e Change the semantics of "return" in generators, as discussed on the
Iterators list and Python-Dev; e.g., these all pass now:

def g1():
    try:
        return
    except:
        yield 1
assert list(g1()) == []

def g2():
    try:
        return
    finally:
        yield 1
assert list(g2()) == [1]

def g3():
    for i in range(3):
        yield None
    yield None
assert list(g3()) == [None] * 4

compile.c:  compile_funcdef and com_return_stmt:  Just van Rossum's patch
to compile the same code for "return" regardless of function type (this
goes back to the previous scheme of returning Py_None).

ceval.c:  gen_iternext:  take a return (but not a yield) of Py_None as
meaning the generator is exhausted.
2001-06-23 06:19:16 +00:00
Fred Drake be9d10edbb Remove some bogus trailing whitespace. 2001-06-23 06:16:52 +00:00
Fred Drake 93852ef3c8 Fix minor markup nits. 2001-06-23 06:06:52 +00:00
Fred Drake deda9f3420 Use a named reference to another chapter instead of hard coding the
chapter number.  This also makes the reference a hyperlink in the HTML
version.
2001-06-23 06:06:21 +00:00
Tim Peters 5eb4b87ae6 gen_iternext(): Don't assume that the current thread state's frame is
not NULL.  I don't think it can be NULL from Python code, but if using
generators via the C API I expect a NULL frame is possible.
2001-06-23 05:47:56 +00:00
Fred Drake 2829f1cf99 Fix a very minor (but annoying when looking for things!) markup nit. 2001-06-23 05:27:20 +00:00
Tim Peters 8c96369513 PyFrameObject: rename f_stackbottom to f_stacktop, since it points to
the next free valuestack slot, not to the base (in America, stacks push
and pop at the top -- they mutate at the bottom in Australia <winK>).
eval_frame():  assert that f_stacktop isn't NULL upon entry.
frame_delloc():  avoid ordered pointer comparisons involving f_stacktop
when f_stacktop is NULL.
2001-06-23 05:26:56 +00:00
Fred Drake f5eae668a8 Add "yeild" to the list of keywords.
Fix a very minor (but annoying when looking for things!) markup nit.
2001-06-23 05:26:52 +00:00
Fred Drake 1ab1f71ec3 Consistently use semi-colons after the last property for each selector. 2001-06-23 04:53:43 +00:00
Fred Drake f015d9a5f6 Give the pattern used to pick out a source anchor a more specific pattern. 2001-06-23 04:35:09 +00:00
Fred Drake 5962eb0d89 Added several names. 2001-06-23 03:17:02 +00:00
Fred Drake 8058bfa6fc Contributed updates from Harald Hanche-Olsen, giving details of the branch
cuts for the complex math functions.  Includes a brief description of
what branch cuts are.
2001-06-23 03:16:29 +00:00
Fred Drake 6fe4660f61 Added support for our new \infinity and \plusminus macros, and the
standard \textbar macro (not supported in many versions of LaTeX2HTML).

Added newline to error message.
2001-06-23 03:13:30 +00:00
Fred Drake 5445e5e305 \infinity,
\plusminus:  New macros to allow us to avoid math mode for these symbols.
2001-06-23 03:11:45 +00:00
Fred Drake bfd80dd8c0 Miscellaneous code cleanups.
Make sure we do not lose track of the build directory -- convert a user-
supplied directory to an absolute path.
2001-06-23 03:06:01 +00:00
Tim Peters 95c80f8439 Disallow 'yield' in a 'try' block when there's a 'finally' clause.
Derived from Thomas Wouters's patch on the Iterators list, but doesn't
try to read c->c_block[c->c_nblocks].
2001-06-23 02:07:08 +00:00
Fred Drake 1bf198e946 Remove an extra tab character. 2001-06-22 18:36:07 +00:00
Fred Drake 307cb05764 Re-organize a little, clean up some markup.
Added some comments about sys.exit(), SystemExit, and preventing restricted
code from exiting the interpreter.

This closes SF bug #434743.
2001-06-22 18:21:53 +00:00
Fred Drake a2d848e99c Add sha and _sre to the list of allowed built-in modules. 2001-06-22 18:19:16 +00:00
Fred Drake f66cb5d0eb Corrected an error in the information on supporting weak references in
extension types (the docs reflected a development version of the API).

This closes SF bug #435066.
2001-06-22 17:20:29 +00:00
Fred Drake 9ca78ac57f Adjust to understand use of either single- or double-quotes to quote
attribute values, and make the logic surrounding the platform
annotations just a little easier to read.  Also make the platform
notes appear in the generated page; they were supposed to, but did not.
2001-06-22 17:11:30 +00:00
Fred Drake aff8837740 Add the new texinputs/license.tex to the shared dependencies. 2001-06-22 17:07:02 +00:00
Guido van Rossum 9966e2c663 This is a trivial command line utility to print MD5 checksums.
I published it on the web as http://www.python.org/2.1/md5sum.py
so I thought I might as well check it in.

Works with Python 1.5.2 and later.

Works like the Linux tool ``mdfsum file ...'' except it doesn't take
any options or read stdin.
2001-06-22 16:05:48 +00:00
Fred Drake 93438bf0a2 Fix & clean up the information about building Python with large file support
for Linux.

This closes SF bug #434975.
2001-06-22 16:01:20 +00:00
Just van Rossum 1a3125ef73 Changed the order of the buttons for EasyDialogs.AskYesNoCancel() from the unusual [cancel, no, yes] to the more standard [no, cancel, yes]. 2001-06-22 15:09:56 +00:00
Tim Peters 289a961cd4 Record Windows build number for 2.0.1 final. 2001-06-22 02:06:04 +00:00
Just van Rossum 67456e841c don't blow up when the charno SyntaxError value is None 2001-06-21 21:52:15 +00:00