]> granicus.if.org Git - python/log
python
23 years agoAdd entries for the newly split C API manual.
Fred Drake [Fri, 12 Oct 2001 19:02:35 +0000 (19:02 +0000)]
Add entries for the newly split C API manual.

23 years agoBreak the Python/C API manual into smaller files by chapter. This manual
Fred Drake [Fri, 12 Oct 2001 19:01:43 +0000 (19:01 +0000)]
Break the Python/C API manual into smaller files by chapter.  This manual
has grown beyond what font-lock will work with using the default (X)Emacs
settings.

Indentation of the description has been made consistent, and a number of
smaller markup adjustments have been made as well.

23 years agoPySocket_getaddrinfo(): fix two refcount bugs, both having to do with
Guido van Rossum [Fri, 12 Oct 2001 18:59:27 +0000 (18:59 +0000)]
PySocket_getaddrinfo(): fix two refcount bugs, both having to do with
a misunderstanding of the refcont behavior of the 'O' format code in
PyArg_ParseTuple() and Py_BuildValue(), respectively.

- pobj is only a borrowed reference, so should *not* be DECREF'ed at
  the end.  This was the cause of SF bug #470635.

- The Py_BuildValue() call would leak the object produced by
  makesockaddr().  (I found this by eyeballing the code.)

23 years agoThe dynamic performance hack is (mostly) done.
Guido van Rossum [Fri, 12 Oct 2001 17:43:43 +0000 (17:43 +0000)]
The dynamic performance hack is (mostly) done.

23 years agoSuggestion from SF patch #470433 to avoid clobbering TCL_LIBRARY et
Guido van Rossum [Fri, 12 Oct 2001 15:34:29 +0000 (15:34 +0000)]
Suggestion from SF patch #470433 to avoid clobbering TCL_LIBRARY et
al. if already set.  Also adds TIX_LIBRARY (just in case).
(Note that this is entirely Windows specific.)

23 years agoNow that COPYBUF is a new local macro, add #undef COPYBUF.
Guido van Rossum [Fri, 12 Oct 2001 14:13:21 +0000 (14:13 +0000)]
Now that COPYBUF is a new local macro, add #undef COPYBUF.

23 years agoProgress on SF bug #466175 and general cleanup.
Jeremy Hylton [Fri, 12 Oct 2001 04:11:06 +0000 (04:11 +0000)]
Progress on SF bug #466175 and general cleanup.

Add a fast_container member to Picklerobject.  If fast is true, then
fast_container counts the depth of nested container calls.  If the
depth exceeds FAST_LIMIT (2000), the fast flag is ignored and the
normal checks occur.  This approach is much like the approach for
prevent stack overflow for comparison and reprs of recursive objects
(e.g. [[...]]).

    - Fast container used for save_list(), save_dict(), and
      save_inst().

      XXX Not clear which other save_xxx() functions should use it.

Make Picklerobject into new-style types, using PyObject_GenericGetAttr()
and PyObject_GenericSetAttr().

    - Use PyMemberDef for binary and fast members

    - Use PyGetSetDef for persistent_id, inst_persistent_id, memo, and
      PicklingError.

      XXX Not all of these seem like they need to use getset, but it's
      not clear why the old getattr() and setattr() had such odd
      semantics.  One change is that the getvalue() attribute will
      exist on all Picklers, not just list-based picklers; I think
      this is a more rationale interface.

There is a long laundry list of other changes:

    - Remove unused #defines for PyList_SET_ITEM() etc.

    - Make some of the indentation consistent

    - Replace uses of cPickle_PyMapping_HasKey() where the first
      argument is self->memo with calls to PyDict_GetItem(), because
      self->memo must be a dictionary.

    - Don't bother to check if cPickle_PyMapping_HasKey() returns < 0,
      because it can only return 0 or 1.

    - Replace uses of PyObject_CallObject() with PyObject_Call(), when
      we can guarantee that the argument tuple is really a tuple.

Performance impacts of these changes:

    - 5% speedup for normal pickling

    - No change to fast-mode pickling.

XXX Really need tests for all the features in cPickle that aren't in
pickle.

23 years agoSF bug [#470040] ParseTuple t# vs subclasses.
Tim Peters [Fri, 12 Oct 2001 02:38:24 +0000 (02:38 +0000)]
SF bug [#470040] ParseTuple t# vs subclasses.
inherit_slots():  tp_as_buffer was getting inherited as if it were a
method pointer, rather than a pointer to a vector of method pointers.  As
a result, inheriting from a type that implemented buffer methods was
ineffective, leaving all the tp_as_buffer slots NULL in the subclass.

23 years agoPatch #469517: Info about rpcgen compilers.
Martin v. Löwis [Thu, 11 Oct 2001 19:23:28 +0000 (19:23 +0000)]
Patch #469517: Info about rpcgen compilers.

23 years agoAnother step in the right direction: when a new class's attribute
Guido van Rossum [Thu, 11 Oct 2001 18:33:53 +0000 (18:33 +0000)]
Another step in the right direction: when a new class's attribute
corresponding to a dispatch slot (e.g. __getitem__ or __add__) is set,
calculate the proper dispatch slot and propagate the change to all
subclasses.  Because of multiple inheritance, there's no easy way to
avoid always recursing down the tree of subclasses.  Who cares?

(There's more to do, but this works.  There's also a test for this now.)

23 years agoSF bug [#467145] Python 2.2a4 build problem on HPUX 11.0.
Tim Peters [Thu, 11 Oct 2001 18:31:31 +0000 (18:31 +0000)]
SF bug [#467145] Python 2.2a4 build problem on HPUX 11.0.
The platform requires 8-byte alignment for doubles, but the GC header
was 12 bytes and that threw off the natural alignment of the double
members of a subtype of complex.  The fix puts the GC header into a
union with a double as the other member, to force no-looser-than
double alignment of GC headers.  On boxes that require 8-byte alignment
for doubles, this may add pad bytes to the GC header accordingly; ditto
for platforms that *prefer* 8-byte alignment for doubles.  On platforms
that don't care, it shouldn't change the memory layout (because the
size of the old GC header is certainly greater than the size of a double
on all platforms, so unioning with a double shouldn't change size or
alignment on such boxes).

23 years agoSomebody checked in a version of httplib that doesn't even compile --
Tim Peters [Thu, 11 Oct 2001 18:15:51 +0000 (18:15 +0000)]
Somebody checked in a version of httplib that doesn't even compile --
SyntaxError.  Fix it.

23 years agoFix for SF buf #458835
Jeremy Hylton [Thu, 11 Oct 2001 17:47:22 +0000 (17:47 +0000)]
Fix for SF buf #458835

Try to be systematic about dealing with socket and ssl exceptions in
FakeSocket.makefile().  The previous version of the code caught all
ssl errors and treated them as EOF, even though most of the errors
don't mean EOF.

An SSL error can mean on of three things:

    1. The SSL/TLS connection was closed.
    2. The operation should be retried.
    3. An error occurred.

Also, if a socket error occurred and the error was EINTR, retry the
call.  Otherwise, it was a legitimate error and the caller should
receive the exception.

23 years agoUse PySocket_Err() instead of PyErr_SetFromErrno().
Jeremy Hylton [Thu, 11 Oct 2001 17:27:58 +0000 (17:27 +0000)]
Use PySocket_Err() instead of PyErr_SetFromErrno().

The former does the right thing on Windows, the latter does not.

23 years agoCommit parts of SF patch #462759
Jeremy Hylton [Thu, 11 Oct 2001 17:23:34 +0000 (17:23 +0000)]
Commit parts of SF patch #462759

Use #define X509_NAME_MAXLEN for server/issuer length on an SSL
object.

Update doc strings for socket.ssl() and ssl methods read() and
write().

PySSL_SSLwrite(): Check return value and raise exception on error.
Use int for len instead of size_t.  (All the function the size_t obj
was passed to our from expected an int!)

PySSL_SSLread(): Check return value of PyArg_ParseTuple()!  More
robust checks of return values from SSL_read().

23 years agoConvert socket methods to use METH_O and METH_NOARGS where possible.
Jeremy Hylton [Thu, 11 Oct 2001 16:36:35 +0000 (16:36 +0000)]
Convert socket methods to use METH_O and METH_NOARGS where possible.

23 years agoDocument that keyfile and certfile are now optional.
Jeremy Hylton [Thu, 11 Oct 2001 16:17:22 +0000 (16:17 +0000)]
Document that keyfile and certfile are now optional.

XXX Forgot to mention this in the last socketmodule.c checkin.

23 years agoDescribe the HeaderParser class.
Barry Warsaw [Thu, 11 Oct 2001 15:45:05 +0000 (15:45 +0000)]
Describe the HeaderParser class.

23 years agoAdd a test for the HeaderParser class.
Barry Warsaw [Thu, 11 Oct 2001 15:44:50 +0000 (15:44 +0000)]
Add a test for the HeaderParser class.

23 years agoHeaderParser: A new subclass of Parser which only parses the message
Barry Warsaw [Thu, 11 Oct 2001 15:43:00 +0000 (15:43 +0000)]
HeaderParser: A new subclass of Parser which only parses the message
headers.  It does not parse the body of the message, instead simply
assigning it as a string to the container's payload.  This can be much
faster when you're only interested in a message's header.

23 years agoUndo part of 2.59: 't' case of convertsimple() should not use convertbuffer().
Jeremy Hylton [Thu, 11 Oct 2001 14:40:37 +0000 (14:40 +0000)]
Undo part of 2.59: 't' case of convertsimple() should not use convertbuffer().

convertbuffer() uses the buffer interface's getreadbuffer(), but 't'
should use getcharbuffer().

23 years agoAdd test of hexlify on Unicode strings
Jeremy Hylton [Thu, 11 Oct 2001 14:09:03 +0000 (14:09 +0000)]
Add test of hexlify on Unicode strings

23 years agoAdd a bunch of SSL error constants
Jeremy Hylton [Thu, 11 Oct 2001 00:00:17 +0000 (00:00 +0000)]
Add a bunch of SSL error constants

23 years agoLots of code reorganization with a few small API changes.
Jeremy Hylton [Wed, 10 Oct 2001 23:55:43 +0000 (23:55 +0000)]
Lots of code reorganization with a few small API changes.

Change all the local names that start with SSL to start with PySSL.
The OpenSSL library defines lots of calls that start with "SSL_".  The
calls for Python's SSL objects also started with "SSL_".  This choice
made it really confusing to figure out which calls were to the library
and which calls were local to the file.

Add PySSL_SetError() that sets an exception based on the information
from SSL_get_error().  This function will eventually replace all the
calls that set it with an error message that is based on the name of
the call that failed rather than the reason it failed.  (Example: If
SSL_connect() failed it used to report "SSL_connect error" now it will
offer a specific message about why SSL_connect failed.)

    XXX It might be helpful to augment the error message generated
    below with the name of the SSL function that generated the error.
    I expect it's obvious most of the time.

Remove several unnecessary INCREFs in the module's constructor call.
PyDict_SetItem() and friends do the INCREF for you.

23 years agoDo simple error checking before doing any SSL calls.
Jeremy Hylton [Wed, 10 Oct 2001 22:37:48 +0000 (22:37 +0000)]
Do simple error checking before doing any SSL calls.

23 years agoUSe PyObject_SetString() instead of PyObject_SetObject() in newSSLObject().
Jeremy Hylton [Wed, 10 Oct 2001 22:33:32 +0000 (22:33 +0000)]
USe PyObject_SetString() instead of PyObject_SetObject() in newSSLObject().

23 years agoRather gross workaround for a bug in the mac GUSI I/O library:
Jack Jansen [Wed, 10 Oct 2001 22:03:27 +0000 (22:03 +0000)]
Rather gross workaround for a bug in the mac GUSI I/O library:
lseek(fp, 0L, SEEK_CUR) can make a filedescriptor unusable.
This workaround is expected to last only a few weeks (until GUSI
is fixed), but without it test_email fails.

23 years agoSome of the lesser used targets still used FMADD/FMSUB instructions. Fixed.
Jack Jansen [Wed, 10 Oct 2001 21:59:08 +0000 (21:59 +0000)]
Some of the lesser used targets still used FMADD/FMSUB instructions. Fixed.

23 years agoallow long ints to be marshalled as ints - no check is made to the incoming
Skip Montanaro [Wed, 10 Oct 2001 15:56:34 +0000 (15:56 +0000)]
allow long ints to be marshalled as ints - no check is made to the incoming
value, so the programmer will have to catch OverflowError.  I'm not sure
what /F's perspective is on this.  Perhaps it should be caught and mapped to
an xmlrpclib-specific exception.  None of the other type-specific dump
methods seem to do any exception handling though.

23 years agoFred's done with weakrefs
Guido van Rossum [Wed, 10 Oct 2001 14:28:58 +0000 (14:28 +0000)]
Fred's done with weakrefs

23 years agoSF bug [#469732] os.path.walk docstring inconsistent.
Tim Peters [Wed, 10 Oct 2001 04:16:20 +0000 (04:16 +0000)]
SF bug [#469732] os.path.walk docstring inconsistent.
We have 5 implementations of walk(), and 5 different docstrings.  Combined
'em.  Let's see how long it takes before they're all different again!

23 years agoIn newSSLObject(), initialize the various members of an SSLObject to NULL.
Jeremy Hylton [Wed, 10 Oct 2001 03:37:05 +0000 (03:37 +0000)]
In newSSLObject(), initialize the various members of an SSLObject to NULL.
In SSL_dealloc(), free/dealloc them only if they're non-NULL.

Fixes some obvious core dumps, but not sure yet if there are more
semantics to the SSL calls that would affect the dealloc.

23 years agoA bit of reformatting to match the standard style
Jeremy Hylton [Wed, 10 Oct 2001 03:33:24 +0000 (03:33 +0000)]
A bit of reformatting to match the standard style

23 years agoFix two memory leaks in socket.ssl().
Jeremy Hylton [Wed, 10 Oct 2001 03:19:39 +0000 (03:19 +0000)]
Fix two memory leaks in socket.ssl().

XXX [1] These changes aren't tested very thoroughly, because regrtest
doesn't do any SSL tests.  I've done some trivial tests on my own, but
don't really know how to use the key and cert files.  In one case, an
SSL-level error causes Python to dump core.  I'll get the fixed in the
next round of changes.

XXX [2] The checkin removes the x_attr member of the SSLObject struct.
I'm not sure if this is kosher for backwards compatibility at the
binary level.  Perhaps its safer to keep the member but keep it
assigned to NULL.

And the leaks?

newSSLObject() called PyDict_New(), stored the result in x_attr
without checking it, and later stored NULL in x_attr without doing
anything to the dict.  So the dict always leaks.  There is no further
reference to x_attr, so I just removed it completely.

The error cases in newSSLObject() passed the return value of
PyString_FromString() directly to PyErr_SetObject().
PyErr_SetObject() expects a borrowed reference, so the string leaked.

23 years agoOne more place where PyString_AsString() was used after a
Jeremy Hylton [Wed, 10 Oct 2001 02:51:57 +0000 (02:51 +0000)]
One more place where PyString_AsString() was used after a
PyString_Check() had already succeeded.

23 years agoUse AS_STRING() following the check and avoid an extra call.
Jeremy Hylton [Wed, 10 Oct 2001 02:51:08 +0000 (02:51 +0000)]
Use AS_STRING() following the check and avoid an extra call.

23 years agoSF patch [ #468662 ] Allow jython to complete test_grammar
Jeremy Hylton [Wed, 10 Oct 2001 01:45:02 +0000 (01:45 +0000)]
SF patch [ #468662 ] Allow jython to complete test_grammar

The behavior of co_varnames in the presence of nested argument tuples
is not consistent across Python and Jython.  Test each platform
separately.

23 years agoUpdated, and added a very terse description of PyMac_SetConsoleHandler().
Jack Jansen [Tue, 9 Oct 2001 23:14:06 +0000 (23:14 +0000)]
Updated, and added a very terse description of PyMac_SetConsoleHandler().

23 years agoFixed the embedding demo to correctly show the use of
Jack Jansen [Tue, 9 Oct 2001 23:09:00 +0000 (23:09 +0000)]
Fixed the embedding demo to correctly show the use of
overriding the console writer.

23 years agoAdd item about new "Edit with IDLE" menu entry created by Windows installer.
Tim Peters [Tue, 9 Oct 2001 22:39:40 +0000 (22:39 +0000)]
Add item about new "Edit with IDLE" menu entry created by Windows installer.

23 years agoIf all of Python, IDLE and Tcl/Tk are being installed, and the user has
Tim Peters [Tue, 9 Oct 2001 22:22:36 +0000 (22:22 +0000)]
If all of Python, IDLE and Tcl/Tk are being installed, and the user has
not disabled file-extension registration, arrange for .py and .pyw files
to have an "Edit with IDLE" context (right-click) menu entry, selecting
which executes IDLE w/ the -e switch followed by the selected file's path.

23 years agoRepair key stutter + auto-complete ugliness.
Tim Peters [Tue, 9 Oct 2001 21:01:31 +0000 (21:01 +0000)]
Repair key stutter + auto-complete ugliness.

23 years agoA copy-and-paste job forget the "paste" half.
Tim Peters [Tue, 9 Oct 2001 20:54:23 +0000 (20:54 +0000)]
A copy-and-paste job forget the "paste" half.

23 years agoRemove obsolete email address.
Fred Drake [Tue, 9 Oct 2001 20:53:48 +0000 (20:53 +0000)]
Remove obsolete email address.

23 years agoAllow the profiler's calibration constant to be specified in the constructor
Tim Peters [Tue, 9 Oct 2001 20:51:19 +0000 (20:51 +0000)]
Allow the profiler's calibration constant to be specified in the constructor
call, or via setting an instance or class vrbl.
Rewrote the calibration docs.
Modern boxes are so friggin' fast, and a profiler event does so much work
anyway, that the cost of looking up an instance vrbl (the bias constant)
per profile event just isn't a big deal.

23 years agoAdd a bunch of tests for a list subclass that would have caught the
Guido van Rossum [Tue, 9 Oct 2001 20:36:44 +0000 (20:36 +0000)]
Add a bunch of tests for a list subclass that would have caught the
previous embarrassment (typeobject.c checking crashing minidom).

23 years agoThe slot definition table entry for mp_getitem had a bogus wrapper
Guido van Rossum [Tue, 9 Oct 2001 20:17:57 +0000 (20:17 +0000)]
The slot definition table entry for mp_getitem had a bogus wrapper
function, which caused test_minidom to fail.  Fixed this.

23 years agoAn audio/* class, like MIMEImage, contributed by Anthony Baxter.
Barry Warsaw [Tue, 9 Oct 2001 19:41:18 +0000 (19:41 +0000)]
An audio/* class, like MIMEImage, contributed by Anthony Baxter.
Rewritten for style and the email package naming conventions by
Barry.

23 years agoHalfway checkin. This is still messy, but it's beginning to address
Guido van Rossum [Tue, 9 Oct 2001 19:39:46 +0000 (19:39 +0000)]
Halfway checkin.  This is still messy, but it's beginning to address
the problem that slots weren't inherited properly.  override_slots()
no longer exists; in its place comes fixup_slot_dispatchers() which
does more and different work and is table-based.  (Eventually I want
this table also to replace all the little tab_foo tables.)

Also add a wrapper for __delslice__; this required a change in
test_descrtut.py.

23 years agoFix minor cut-and-paste typo.
Barry Warsaw [Tue, 9 Oct 2001 19:37:51 +0000 (19:37 +0000)]
Fix minor cut-and-paste typo.

23 years agoUpdate the documentation for the isinstance() function to reflect recent
Fred Drake [Tue, 9 Oct 2001 19:31:08 +0000 (19:31 +0000)]
Update the documentation for the isinstance() function to reflect recent
changes in the implementation.
Indented all descriptions consistently.

23 years agoAdded tests for MIMEAudio class/module
Barry Warsaw [Tue, 9 Oct 2001 19:23:57 +0000 (19:23 +0000)]
Added tests for MIMEAudio class/module

23 years agoFix __all__ to the current list of exported modules (must pass the
Barry Warsaw [Tue, 9 Oct 2001 19:14:59 +0000 (19:14 +0000)]
Fix __all__ to the current list of exported modules (must pass the
tests in test_email.py).

23 years agoAdd documentation for the MIMEAudio class/module, contributed by
Barry Warsaw [Tue, 9 Oct 2001 19:14:17 +0000 (19:14 +0000)]
Add documentation for the MIMEAudio class/module, contributed by
Anthony Baxter.

23 years agoImprove the documentation for the os.P_* constants used with the os.spawn*()
Fred Drake [Tue, 9 Oct 2001 18:07:04 +0000 (18:07 +0000)]
Improve the documentation for the os.P_* constants used with the os.spawn*()
functions to include information about how they affect the operation of
those functions when used as the "mode" parameter.
This closes SF bug #468384.

Added warnings to the os.tempnam() and os.tmpnam() functions regarding their
security problem.  These warning mirror the warnings added to the runtime
by Skip Montanaro.

23 years agoNew markup: \note{...} and \warning{...}
Fred Drake [Tue, 9 Oct 2001 18:01:23 +0000 (18:01 +0000)]
New markup:  \note{...} and \warning{...}

23 years agoFix [ #465502 ] urllib2: urlopen unicode problem
Jeremy Hylton [Tue, 9 Oct 2001 16:18:45 +0000 (16:18 +0000)]
Fix [ #465502 ] urllib2: urlopen unicode problem

When checking for strings use,
!         if isinstance(uri, (types.StringType, types.UnicodeType)):

Also get rid of some dodgy code that tried to guess whether attributes
were callable or not.

23 years agoAdd a test for get_all() returning failobj. msg_20.txt is a sample
Barry Warsaw [Tue, 9 Oct 2001 15:49:35 +0000 (15:49 +0000)]
Add a test for get_all() returning failobj.  msg_20.txt is a sample
message with multiple CC: fields, used in the get_all() test.

23 years agoget_all(): We never returned failobj if we found no matching headers.
Barry Warsaw [Tue, 9 Oct 2001 15:48:29 +0000 (15:48 +0000)]
get_all(): We never returned failobj if we found no matching headers.
Fix that, and also make the docstring describe failobj.

23 years agoSMTPServer.__init__(): The asyncore.dispatcher base class has a method
Barry Warsaw [Tue, 9 Oct 2001 15:46:31 +0000 (15:46 +0000)]
SMTPServer.__init__(): The asyncore.dispatcher base class has a method
set_reuse_addr() that does the setsockopt fiddling.  Use it instead.

23 years agoNote that the values for Boolean options are case-insensitive.
Fred Drake [Tue, 9 Oct 2001 14:58:24 +0000 (14:58 +0000)]
Note that the values for Boolean options are case-insensitive.

23 years agoAdd Cesar Eduardo Barros, for asyncore patches.
Martin v. Löwis [Tue, 9 Oct 2001 11:53:47 +0000 (11:53 +0000)]
Add Cesar Eduardo Barros, for asyncore patches.

23 years agoAdd entry parameter to HList.item_cget. Fixes bug #466981.
Martin v. Löwis [Tue, 9 Oct 2001 11:50:55 +0000 (11:50 +0000)]
Add entry parameter to HList.item_cget. Fixes bug #466981.

23 years agoIt turned out not so difficult to support old-style numbers (those
Guido van Rossum [Tue, 9 Oct 2001 11:07:24 +0000 (11:07 +0000)]
It turned out not so difficult to support old-style numbers (those
without the Py_TPFLAGS_CHECKTYPES flag) in the wrappers.  This
required a few changes in test_descr.py to cope with the fact that the
complex type has __int__, __long__ and __float__ methods that always
raise an exception.

23 years agoUpdate URL. Fixes bug #468118.
Martin v. Löwis [Tue, 9 Oct 2001 10:54:31 +0000 (10:54 +0000)]
Update URL. Fixes bug #468118.

23 years agoAdd additional fields to Xxo_Type declaration. Fixes bug #469250.
Martin v. Löwis [Tue, 9 Oct 2001 10:46:58 +0000 (10:46 +0000)]
Add additional fields to Xxo_Type declaration.  Fixes bug #469250.

23 years agoPatch #468647: Fix exception propagation in asyncore.
Martin v. Löwis [Tue, 9 Oct 2001 10:10:33 +0000 (10:10 +0000)]
Patch #468647: Fix exception propagation in asyncore.

23 years agoA brand new implementation of Profile.calibrate(). This measures an
Tim Peters [Tue, 9 Oct 2001 05:31:56 +0000 (05:31 +0000)]
A brand new implementation of Profile.calibrate().  This measures an
actual run of the profiler, instead of timing a simplified simulation of
part of what the profiler does.  It computes a constant about 60% higher
on my Win98SE box than the old method, and the new constant appears much
more realistic.  Deleted the undocumented simple(), instrumented(), and
profiler_simulation() methods (which existed only to support the previous
calibration method).

23 years agoUpdate outdated text about how to fix the font.
Guido van Rossum [Mon, 8 Oct 2001 22:49:12 +0000 (22:49 +0000)]
Update outdated text about how to fix the font.

23 years agoReplace all instances of err.strerror with err.
Jeremy Hylton [Mon, 8 Oct 2001 20:33:20 +0000 (20:33 +0000)]
Replace all instances of err.strerror with err.

The strerror attribute contained only partial information about the
exception and produced some very confusing error messages.  By passing
err (the exception object itself) and letting it convert itself to a
string, the error messages are better.

23 years agoAdded tests that check getboolean() with the newly allowed values from
Fred Drake [Mon, 8 Oct 2001 17:13:12 +0000 (17:13 +0000)]
Added tests that check getboolean() with the newly allowed values from
SF patch #467580.

23 years agotype_subclasses(): debug build was broken due to typo in new assert().
Tim Peters [Mon, 8 Oct 2001 16:49:26 +0000 (16:49 +0000)]
type_subclasses():  debug build was broken due to typo in new assert().

23 years agoChange all occurrences of verify(x == y) into vereq(x, y), since when
Guido van Rossum [Mon, 8 Oct 2001 16:35:45 +0000 (16:35 +0000)]
Change all occurrences of verify(x == y) into vereq(x, y), since when
this type of test fails, vereq() does a better job of reporting than
verify().

Change vereq(x, y) to use "not x == y" rather than "x != y" -- it
makes a difference is some overloading tests.

23 years agoUpdate the description of getboolean() to reflect the changes made by
Fred Drake [Mon, 8 Oct 2001 16:03:20 +0000 (16:03 +0000)]
Update the description of getboolean() to reflect the changes made by
SF patch #467580.

23 years agoMods by Alexandre Parenteau to allow embedding programs to disable the MacPython...
Jack Jansen [Mon, 8 Oct 2001 15:35:38 +0000 (15:35 +0000)]
Mods by Alexandre Parenteau to allow embedding programs to disable the MacPython console window completely, and optionally route console output (and input) to routines provided by the embedding app.

Things don't fully work yet, but at least it doesn't break anything.

23 years agoBrought up to date with the current state of affairs.
Jack Jansen [Mon, 8 Oct 2001 15:32:17 +0000 (15:32 +0000)]
Brought up to date with the current state of affairs.

23 years agoKeep track of a type's subclasses (subtypes), in tp_subclasses, which
Guido van Rossum [Mon, 8 Oct 2001 15:18:27 +0000 (15:18 +0000)]
Keep track of a type's subclasses (subtypes), in tp_subclasses, which
is a list of weak references to types (new-style classes).  Make this
accessible to Python as the function __subclasses__ which returns a
list of types -- we don't want Python programmers to be able to
manipulate the raw list.

In order to make this possible, I also had to add weak reference
support to type objects.

This will eventually be used together with a trap on attribute
assignment for dynamic classes for a major speed-up without losing the
dynamic properties of types: when a __foo__ method is added to a
class, the class and all its subclasses will get an appropriate tp_foo
slot function.

23 years agoMac OS X build instructions talked about --without-toolbox-glue, but
Jack Jansen [Mon, 8 Oct 2001 13:21:15 +0000 (13:21 +0000)]
Mac OS X build instructions talked about --without-toolbox-glue, but
the configure option is really called --disable-toolbox-glue.

23 years agoDo not add -shared to linker_so. Any necessary options should already be
Martin v. Löwis [Mon, 8 Oct 2001 13:18:37 +0000 (13:18 +0000)]
Do not add -shared to linker_so. Any necessary options should already be
in LDSHARED.

23 years agoProvide explicit program when trying to link pthread_create.
Martin v. Löwis [Mon, 8 Oct 2001 13:17:28 +0000 (13:17 +0000)]
Provide explicit program when trying to link pthread_create.
Contributed by Albert Chin in discussion of bug #210665.

23 years agoAdded declarations for PyMac_SetConsoleHandler, PyMan_DUmmyReadHandler
Jack Jansen [Mon, 8 Oct 2001 13:16:39 +0000 (13:16 +0000)]
Added declarations for PyMac_SetConsoleHandler, PyMan_DUmmyReadHandler
and PyMac_DummyWriteHandler.

23 years agoAdded weakrefobject.c and regenerated .exp files.
Jack Jansen [Mon, 8 Oct 2001 13:01:05 +0000 (13:01 +0000)]
Added weakrefobject.c and regenerated .exp files.

23 years agoPut the deprecated .ignore() method back where it was.
Tim Peters [Mon, 8 Oct 2001 06:28:18 +0000 (06:28 +0000)]
Put the deprecated .ignore() method back where it was.

23 years agoWidespread random code cleanup.
Tim Peters [Mon, 8 Oct 2001 06:13:19 +0000 (06:13 +0000)]
Widespread random code cleanup.
Most of this code was old enough to vote.  Examples of cleanups:

+ Backslashes were used for line continuation even inside unclosed
  bracket structures, from back in the days that was still needed.

+ There was no use of % formats, and e.g. the old fpformat module was
  still used to format floats "by hand" in conjunction with rjust().

+ There was even use of a do-nothing .ignore() method to tack on to the
  end of a chain of method calls, else way back when Python would print
  the non-None result (as it does now in an interactive session -- it
  *used* to do that in batch mode too).

+ Perhaps controversial (although I can't imagine why for real <wink>),
  used augmented assignment where helpful.  Stuff like

      self.total_calls = self.total_calls + other.total_calls

  is just plain harder to follow than

      self.total_calls += other.total_calls

23 years agoImplement isinstance(x, (A, B, ...)). Note that we only allow tuples,
Guido van Rossum [Sun, 7 Oct 2001 20:54:12 +0000 (20:54 +0000)]
Implement isinstance(x, (A, B, ...)).  Note that we only allow tuples,
not other sequences (then we'd have to except strings, and we'd still
be susceptible to recursive attacks).

23 years agomerged port binding error message patch
Steven M. Gava [Sun, 7 Oct 2001 11:44:49 +0000 (11:44 +0000)]
merged port binding error message patch

23 years agomerged win spawn patch
Steven M. Gava [Sun, 7 Oct 2001 11:26:48 +0000 (11:26 +0000)]
merged win spawn patch

23 years agomerged status bar packing patch
Steven M. Gava [Sun, 7 Oct 2001 11:10:44 +0000 (11:10 +0000)]
merged status bar packing patch

23 years agoOnly close sockets if they have been created. Reported by Blake Winton.
Martin v. Löwis [Sun, 7 Oct 2001 08:53:32 +0000 (08:53 +0000)]
Only close sockets if they have been created. Reported by Blake Winton.

23 years agoTypo repair in comment.
Tim Peters [Sun, 7 Oct 2001 08:49:02 +0000 (08:49 +0000)]
Typo repair in comment.

23 years agoSupport OpenUNIX like UnixWare.
Martin v. Löwis [Sun, 7 Oct 2001 08:39:18 +0000 (08:39 +0000)]
Support OpenUNIX like UnixWare.

23 years agoGuido points out that the comments for self.cur[2] were subtly but
Tim Peters [Sun, 7 Oct 2001 08:35:44 +0000 (08:35 +0000)]
Guido points out that the comments for self.cur[2] were subtly but
seriously wrong.  This started out by just fixing the docs, but then it
occurred to me that the doc confusion propagated into misleading vrbl names
too, so I also renamed those to match reality.  As a result, INO the time
computations are much easier to understand now (within the limitations of
vast quantities of 3-character names <wink>).

23 years agoUse AC_TRY_RUN for checking for -Kpthread.
Martin v. Löwis [Sun, 7 Oct 2001 08:14:41 +0000 (08:14 +0000)]
Use AC_TRY_RUN for checking for -Kpthread.

23 years agoAt Guido's request, changed the code that's conceptually asserting stuff
Tim Peters [Sun, 7 Oct 2001 04:30:53 +0000 (04:30 +0000)]
At Guido's request, changed the code that's conceptually asserting stuff
to use assert stmts (was raising unexpected kinds of exceptions).

23 years agoRepair some longstanding comment errors:
Tim Peters [Sun, 7 Oct 2001 04:02:36 +0000 (04:02 +0000)]
Repair some longstanding comment errors:

+ The last index in the timing tuple is 4, not 5 (noted by Guido).

+ The poorly named trace_dispatch_i works with float return values too.

23 years agoGuido suggests, and I agree, to insist that SIZEOF_VOID_P be a power of 2.
Tim Peters [Sun, 7 Oct 2001 03:54:51 +0000 (03:54 +0000)]
Guido suggests, and I agree, to insist that SIZEOF_VOID_P be a power of 2.
This simplifies the rounding in _PyObject_VAR_SIZE, allows to restore the
pre-rounding calling sequence, and allows some nice little simplifications
in its callers.  I'm still making it return a size_t, though.

23 years agoRemove code and docs for the OldProfile and HotProfile classes: code
Tim Peters [Sun, 7 Oct 2001 03:12:08 +0000 (03:12 +0000)]
Remove code and docs for the OldProfile and HotProfile classes:  code
hasn't worked in years, docs were wrong, and they aren't interesting
anymore regardless.

23 years ago_PyObject_VAR_SIZE: always round up to a multiple-of-pointer-size value.
Tim Peters [Sat, 6 Oct 2001 21:27:34 +0000 (21:27 +0000)]
_PyObject_VAR_SIZE:  always round up to a multiple-of-pointer-size value.
As Guido suggested, this makes the new subclassing code substantially
simpler.  But the mechanics of doing it w/ C macro semantics are a mess,
and _PyObject_VAR_SIZE has a new calling sequence now.

Question:  The PyObject_NEW_VAR macro appears to be part of the public API.
Regardless of what it expands to, the notion that it has to round up the
memory it allocates is new, and extensions containing the old
PyObject_NEW_VAR macro expansion (which was embedded in the
PyObject_NEW_VAR expansion) won't do this rounding.  But the rounding
isn't actually *needed* except for new-style instances with dict pointers
after a variable-length blob of embedded data.  So my guess is that we do
not need to bump the API version for this (as the rounding isn't needed
for anything an extension can do unless it's recompiled anyway).  What's
your guess?

23 years agoRepaired the debug Windows deaths in test_descr, by allocating enough
Tim Peters [Sat, 6 Oct 2001 19:04:01 +0000 (19:04 +0000)]
Repaired the debug Windows deaths in test_descr, by allocating enough
pad memory to properly align the __dict__ pointer in all cases.

gcmodule.c/objimpl.h, _PyObject_GC_Malloc:
+ Added a "padding" argument so that this flavor of malloc can allocate
  enough bytes for alignment padding (it can't know this is needed, but
  its callers do).

typeobject.c, PyType_GenericAlloc:
+ Allocated enough bytes to align the __dict__ pointer.
+ Sped and simplified the round-up-to-PTRSIZE logic.
+ Added blank lines so I could parse the if/else blocks <0.7 wink>.

23 years ago_PyObject_GetDictPtr():
Tim Peters [Sat, 6 Oct 2001 17:45:17 +0000 (17:45 +0000)]
_PyObject_GetDictPtr():
+ Use the _PyObject_VAR_SIZE macro to compute object size.
+ Break the computation into lines convenient for debugger inspection.
+ Speed the round-up-to-pointer-size computation.