Barry Warsaw [Fri, 18 Aug 2000 05:01:19 +0000 (05:01 +0000)]
make_pair(): When comparing the pointers, they must be cast to integer
types (i.e. Py_uintptr_t, our spelling of C9X's uintptr_t). ANSI
specifies that pointer compares other than == and != to non-related
structures are undefined. This quiets an Insure portability warning.
Barry Warsaw [Fri, 18 Aug 2000 05:00:03 +0000 (05:00 +0000)]
PyFloat_FromString(): Move s_buffer[] up to the top-level function
scope. Previously, s_buffer[] was defined inside the
PyUnicode_Check() scope, but referred to in the outer scope via
assignment to s. This quiets an Insure portability warning.
Barry Warsaw [Fri, 18 Aug 2000 04:57:32 +0000 (04:57 +0000)]
PyInstance_DoBinOp(): When comparing the pointers, they must be cast
to integer types (i.e. Py_uintptr_t, our spelling of C9X's uintptr_t).
ANSI specifies that pointer compares other than == and != to
non-related structures are undefined. This quiets an Insure
portability warning.
Barry Warsaw [Fri, 18 Aug 2000 04:53:33 +0000 (04:53 +0000)]
Added test for uintptr_t, the C9X acceptable way to spell "type to
which I can cast void* to and back again without losing information".
In pyport.h, we typedef Py_uintptr_t to mean this thing, which if the
platform supports, will be uintptr_t (otherwise, other accomodations
are made).
Barry Warsaw [Fri, 18 Aug 2000 04:48:18 +0000 (04:48 +0000)]
Moved LONG_LONG #define from longobject.h to here, since it's needed
by the following.
typedef in a portable way the Python name for the C9X uintptr_t type.
This latter is the most portable way to spell an integral type to
which a void* can be cast to and back again without losing
information. Parallel checkin hacks configure to check if the
platform/compiler supports the C9X name.
Fred Drake [Fri, 18 Aug 2000 03:12:38 +0000 (03:12 +0000)]
As pointed out by Denis S. Otkidach <den@analyt.chem.msu.ru>, xrange()
returns an xrange object, not a range object, despite the name of the
source file they're implemented in.
In the list of comparison operators, list != before <>, since <> is
described as obsolescent.
Thomas Wouters [Thu, 17 Aug 2000 22:55:00 +0000 (22:55 +0000)]
Apply SF patch #101135, adding 'import module as m' and 'from module import
name as n'. By doing some twists and turns, "as" is not a reserved word.
There is a slight change in semantics for 'from module import name' (it will
now honour the 'global' keyword) but only in cases that are explicitly
undocumented.
Thomas Wouters [Thu, 17 Aug 2000 22:37:32 +0000 (22:37 +0000)]
Apply SF patch #101029: call __getitem__ with a proper slice object if there
is no __getslice__ available. Also does the same for C extension types.
Includes rudimentary documentation (it could use a cross reference to the
section on slice objects, I couldn't figure out how to do that) and a test
suite for all Python __hooks__ I could think of, including the new
behaviour.
Fred Drake [Thu, 17 Aug 2000 22:29:31 +0000 (22:29 +0000)]
Revise the comments about the exceptions module to not refer to source
code; it is not sufficiently readable now that it in written in C, and
is less likely to be available to end users.
Jack Jansen [Thu, 17 Aug 2000 22:14:57 +0000 (22:14 +0000)]
The package with standard suites. These are used separately and as base classes for other suite packages (StdSuite is slightly magical, in that it is the gensuitemodule default base package).
Jack Jansen [Thu, 17 Aug 2000 22:11:45 +0000 (22:11 +0000)]
Generate packages in stead of separate modules. The package main module imports everything, it knows about the app signature, suites can extend standard suites, and lots more. Automatically finding declarations in other suites TBD.
Jack Jansen [Thu, 17 Aug 2000 20:04:26 +0000 (20:04 +0000)]
Removed temporary code to disable OT networking (this was a workaround for getpeername() not working in a previous release of GUSI, but it has been fixed).
Barry Warsaw [Wed, 16 Aug 2000 23:41:01 +0000 (23:41 +0000)]
Insure properly identifies the `interned' dictionary as leaking at
shutdown time, but CVS log entry for revision 2.45 explains why this
is so. Simply include a comment so we don't have to re-figure it out
again 5 years from now.
Trent Mick [Wed, 16 Aug 2000 22:29:55 +0000 (22:29 +0000)]
The sre test suite currently overruns the stack on Win64, Linux64, and Monterey
(64-bit AIX) This is because the RECURSION_LIMIT is too low. This patch lowers
to recusion limit to 7500 such that the recusion check fires before a segfault.
Fredrik suggested/approved the fix in private email, modulo sre's recusion
limit checking no being necessary when PyOS_CheckStack is implemented for
Windows.
Barry Warsaw [Wed, 16 Aug 2000 19:43:17 +0000 (19:43 +0000)]
SyntaxError__str__(): Fix two memory problems discovered by Insure.
First, the allocated buffer was never freed after using it to create
the PyString object. Second, it was possible that have_filename would
be false (meaning that filename was not a PyString object), but that
the code would still try to PyString_GET_SIZE() it.
Fred Drake [Wed, 16 Aug 2000 14:14:32 +0000 (14:14 +0000)]
Revise the wrapper structure for the socket module:
socket.py is used for all platforms, and it defines the additional
classes and alternate socket() function for Windows and BeOS systems.
The plat-*/socket.py files are no longer needed, since there is a
shared socket.py.
make_fqdn() is provided, but I decided to call it getfqdn() to be
consistent with the other names in the socket module. Since it is
really a "get" operation and does not create a new name, this is
the right name to give it.
Mark Hammond [Tue, 15 Aug 2000 22:33:59 +0000 (22:33 +0000)]
From Rene Liebscher:
This patch makes it possible to use gnu-win32 and lcc-win32
(http://www.cs.virginia.edu/~lcc-win32/) compilers to build
extension modules. It adds compiler specific sections to
PC/config.h .
It also extends the Borland compiler section. This has then two parts,
one for Win32 and the other one for the rest. The Win32 part
should be almost complete.
*** This patch is not intended to make it possible to compile
Python with these compilers, it is intended to be able to
use these compilers to build extension modules. ****
Thomas Wouters [Tue, 15 Aug 2000 19:30:36 +0000 (19:30 +0000)]
Apply SF patch #101151, by Peter S-K, which fixes smtplib's passing of the
'helo' and 'ehlo' message, and exports the 'make_fqdn' function. This
function should be moved to socket.py, if that module ever gets a Python
wrapper.
Tim Peters [Tue, 15 Aug 2000 16:41:26 +0000 (16:41 +0000)]
Fix new compiler warnings. Unused var in compile.c. Argsize mismatches
in binascii.c (only on platforms with signed chars -- although Py_CHARMASK
is documented as returning an int, it only does so on platforms with
signed chars).
Fred Drake [Tue, 15 Aug 2000 16:20:36 +0000 (16:20 +0000)]
my_basename(): Removes the leading path components from a path name,
returning a pointer to the start of the file's "base" name;
similar to os.path.basename().
SyntaxError__str__(): Use my_basename() to keep the length of the
file name included in the exception message short.
Fred Drake [Tue, 15 Aug 2000 15:46:16 +0000 (15:46 +0000)]
SyntaxError__str__(): Do more formatting of the exception here, rather
than depending on the site that raises the exception. If the
filename and lineno attributes are set on the exception object,
use them to augment the message displayed.
This is part of what is needed to close SoruceForge bug #110628
(Jitterbug PR#278).
Greg Ward [Tue, 15 Aug 2000 13:03:16 +0000 (13:03 +0000)]
Added support for the '--dist-dir' option, including a mildly nasty
hack to find the two created RPM files (source and binary) and
move them to the "dist dir" (default "dist").
Greg Ward [Tue, 15 Aug 2000 13:01:25 +0000 (13:01 +0000)]
Fix long-hidden inconsistency in internal interface: 'find_modules()' now
represents packages as strings, not tuples. This allowed a simplification
in 'get_package_dir()', too -- can now assume that 'package' is a string.
Barry Warsaw [Tue, 15 Aug 2000 06:07:13 +0000 (06:07 +0000)]
After a brief conversation and code review with TP, adding two very
commonly used functions to convert an arbitrary binary string into
a hexadecimal digit representation and back again. These are often
(and often differently) implemented in Python. Best to have one
common fast implementation. Specifically,
binascii_hexlify(): a.k.a. b2a_hex() to return the hex representation
of binary data.
binascii_unhexlify(): a.k.a. a2b_hex() to do the inverse conversion
(hex digits to binary data). The argument must have an even length,
and must contain only hex digits, otherwise a TypeError is raised.
Barry Warsaw [Tue, 15 Aug 2000 06:03:35 +0000 (06:03 +0000)]
SHA_hexdigest(): A couple of small patches to this function, added
after a brief conversation with TP. First, the return values of the
PyString_* function calls should be checked for errors. Second,
bit-manipulations should be used instead of division for spliting the
byte up into its 4 bit digits.
Tim Peters [Tue, 15 Aug 2000 03:34:48 +0000 (03:34 +0000)]
Fix for http://sourceforge.net/bugs/?func=detailbug&bug_id=111866&group_id=5470.
This was a misleading bug -- the true "bug" was that hash(x) gave an error
return when x is an infinity. Fixed that. Added new Py_IS_INFINITY macro to
pyport.h. Rearranged code to reduce growing duplication in hashing of float and
complex numbers, pushing Trent's earlier stab at that to a logical conclusion.
Fixed exceedingly rare bug where hashing of floats could return -1 even if there
wasn't an error (didn't waste time trying to construct a test case, it was simply
obvious from the code that it *could* happen). Improved complex hash so that
hash(complex(x, y)) doesn't systematically equal hash(complex(y, x)) anymore.
Mark Hammond [Tue, 15 Aug 2000 00:46:38 +0000 (00:46 +0000)]
Fix for bug #110670 - Win32 os.listdir raises confusing errors:
The existing win32_error() function now returns the new(ish) WindowsError, ensuring we get correct error messages.
Fred Drake [Mon, 14 Aug 2000 20:59:57 +0000 (20:59 +0000)]
The attempt to protect against MS_WIN16 compilers that do not support long
string literals has not been tested on an MS_WIN16 platform; the trailing
";" was inside the #ifndef MS_WIN16, which should cause an error (missing
semi-colon) when compiled with that symbol #defined.
Fixed a couple of instances where a 0-length string was being
resized after creation. 0-length strings are usually shared
and _PyString_Resize() fails on these shared strings.
Mark Hammond [Mon, 14 Aug 2000 06:21:26 +0000 (06:21 +0000)]
Test for fix to bug #110673: os.abspatth() now always returns os.getcwd() on Windows, if an empty path is specified. It previously did not if an empty path was delegated to win32api.GetFullPathName())
Mark Hammond [Mon, 14 Aug 2000 06:20:32 +0000 (06:20 +0000)]
Fix for Bug #110673: os.abspatth() now always returns os.getcwd() on Windows, if an empty path is specified. It previously did not if an empty path was delegated to win32api.GetFullPathName())
Mark Hammond [Mon, 14 Aug 2000 04:47:33 +0000 (04:47 +0000)]
Patch #101032, from David Bolen:
This is an enhancement to a prior patch (100941) ...
[T]his patch removes the risk of deadlock waiting for the child previously present in certain cases. It adds tracking of all file handles returned from an os.popen* call and only waits for the child process, returning the exit code, on the closure of the final file handle to that child.
Fred Drake [Mon, 14 Aug 2000 02:50:21 +0000 (02:50 +0000)]
In the section on the "Very High Level Layer", address concerns brought up
by Edward K. Ream <edream@users.sourceforge.net> about FILE* values and
incompatible C libraries in dynamically linked extensions. It is not clear
(to me) how realistic the issue is, but it is better documented than not.
Thomas Wouters [Sun, 13 Aug 2000 17:05:17 +0000 (17:05 +0000)]
The list comp patch checked for the second child node of the 'listmaker'
node, without checking if the node actually had more than one child. It can
have only one node, though: '[' test ']'. This fixes it.
Greg Ward [Sun, 13 Aug 2000 00:43:56 +0000 (00:43 +0000)]
Rene Liebscher:
* use self.debug_print() for debug messages
* uses now copy.copy() to copy lists
* added 'shared_lib_extension=".dll"', ... , this is necessary if you
want use the compiler class outside of the standard distutils build
process.
* changed result type of check_config_h() from int to string