Barry Warsaw [Tue, 23 Jan 2001 16:24:35 +0000 (16:24 +0000)]
A few miscellaneous helpers.
PyObject_Dump(): New function that is useful when debugging Python's C
runtime. In something like gdb it can be a pain to get some useful
information out of PyObject*'s. This function prints the str() of the
object to stderr, along with the object's refcount and hex address.
PyGC_Dump(): Similar to PyObject_Dump() but knows how to cast from the
garbage collector prefix back to the PyObject* structure.
[See Misc/gdbinit for some useful gdb hooks]
none_dealloc(): Rather than SEGV if we accidentally decref None out of
existance, we assign None's and NotImplemented's destructor slot to
this function, which just calls abort().
Barry Warsaw [Tue, 23 Jan 2001 16:08:34 +0000 (16:08 +0000)]
Leak pluggin', bug fixin' and better documentin'. Specifically,
module__doc__: Document the Warning subclass heirarchy.
make_class(): Added a "goto finally" so that if populate_methods()
fails, the return status will be -1 (failure) instead of 0 (success).
fini_exceptions(): When decref'ing the static pointers to the
exception classes, clear out their dictionaries too. This breaks a
cycle from class->dict->method->class and allows the classes with
unbound methods to be reclaimed. This plugs a large memory leak in a
common Py_Initialize()/dosomething/Py_Finalize() loop.
Eric S. Raymond [Tue, 23 Jan 2001 13:16:32 +0000 (13:16 +0000)]
Rewrite webbrowser.py to fix various bugs following Ka-Ping Yee's
complaints. The new version moves most of its initialization to
package load time; it's simpler, faster, smaller, and adds support for
Mozilla and Links. Interpretation of the BROWSER variable now works
and is documented. The open_new entry point and methods are marked
"deprecated; may be removed in 2.1".
Add introductory note about this article's draft status
Grammatical and typographic fixes from David Goodger
Expanded notes about PEP 229
Removed user-visible XXXes; they're in comments now
Guido van Rossum [Tue, 23 Jan 2001 01:52:26 +0000 (01:52 +0000)]
Fix some make errors during "make clobber" or "make distclean", caused
by weird and (hopefully) unnecessary SET_CXX and SET_DLLLIBRARY macros
that occurr at the start of Makefile.in files.
- Also removed the already-commented-out SET_CCC macro cruft.
Jeremy Hylton [Tue, 23 Jan 2001 01:51:40 +0000 (01:51 +0000)]
Add simple test of list comprehension that uses a name that isn't
otherwise used in the same code block. (Not sure this is the right
place, but there is no test_list_comprehensions.py.)
Guido van Rossum [Tue, 23 Jan 2001 01:46:06 +0000 (01:46 +0000)]
Add a new API, PyThreadState_DeleteCurrent() that combines
PyThreadState_Delete() and PyEval_ReleaseLock(). It is only defined
if WITH_THREAD is defined.
Added dictionary.popitem() and the improved XML modules.
Reorder the smaller items, roughly in decreasing order of visibility to
the Python coder
Finished an incomplete sentence.
Moved the unwritten sections down to the bottom.
Bumped version number and added acknowledgements
Fred Drake [Mon, 22 Jan 2001 19:06:20 +0000 (19:06 +0000)]
Change some wording to make this work with PDF generation -- using a PDF
hyperlink at the start of the paragraph confused pdflatex; it saw the
link start while still in vertical mode, which is not allowed. Including
text before the link forces horizontal mode.
Add reference to PEP 232.
Use correct flag name Py_TPFLAGS_CHECKTYPES
Mention that numeric methods can return Py_NotImplemented (NAS)
Mention optional arguments in time modules (TW)
Various minor rewrites and additional attributions
Fred Drake [Mon, 22 Jan 2001 17:50:42 +0000 (17:50 +0000)]
Remove the dollar sign from the formatting of environment variables --
too Unix-specific, and not really needed. (Already fixed the HTML
formatting, but forgot to mention it in the checkin for python.perl 1.94.)
Fred Drake [Mon, 22 Jan 2001 17:33:24 +0000 (17:33 +0000)]
Fix \seepep handling -- correct URL to the online PEP repository on SF is
now generated. (SF bug #129692.)
Patch from Anthon van der Neut <anthon@mnt.org>:
Work around the removal of content-less paired tags used for name
anchors in some places. (SF bug #116008.)
Move some class attributes from an artificial SPAN element to otherwise
"useful" elements that are being generated anyway. Added the class
"versionnote", used for \deprecated, \versionadded, \versionchanged.
Fill out various transcripts and XXX bits, thanks to the WMATA.
The only missing section is the Nested Scopes section, which has to wait
to see if a patch is actually committed. (Plus any other notable changes
that get made or backed out between now and 2.1final, of course...)
Thomas Wouters [Sun, 21 Jan 2001 23:34:12 +0000 (23:34 +0000)]
Move declaration of 'clnt_create()' NIS function to pyport.h, as it's
supposed to be declared in system include files (with a proper prototype.)
Should be moved to a platform-specific block if anyone finds out which
broken platforms need it :-)
Martin v. Löwis [Sun, 21 Jan 2001 10:18:10 +0000 (10:18 +0000)]
Merge with 1.25 of PyXML:
Participate in garbage collection if available.
Potentially decref handlers in clear_handlers.
Partially reindent.
Put synthetic frame object on the stack to support better error output.
Expose Python codecs to pyexpat.
Add new Expat 1.2 handlers and API.
Fix memory leak: release self->handlers.
Do not expect PyModule_AddObject and PyModule_AddStringConstant in 2.0b1.
Raise exception in ParseFile.
Tim Peters [Sun, 21 Jan 2001 03:40:37 +0000 (03:40 +0000)]
Bug #128475: mimetools.encode (sometimes) fails when called from a thread.
pythonrun.c: In Py_Finalize, don't reset the initialized flag until after
the exit funcs have run.
atexit.py: in _run_exitfuncs, mutate the list of pending calls in a
threadsafe way. This wasn't a contributor to bug 128475, it just burned
my eyeballs when looking at that bug.
Skip Montanaro [Sat, 20 Jan 2001 19:54:20 +0000 (19:54 +0000)]
added __all__ lists to a number of Python modules
added test script and expected output file as well
this closes patch 103297.
__all__ attributes will be added to other modules without first submitting
a patch, just adding the necessary line to the test script to verify
more-or-less correct implementation.