Tim Peters [Thu, 1 Aug 2002 03:10:45 +0000 (03:10 +0000)]
Added new footnote about list.sort() stability. Repaired footnote about
using sort() with comparison functions (it made reference to the non-
existent "builtin-in function sort()").
BTW, I changed list.sort's docstring to contain the word "stable" -- the
easiest way to tell whether a particular Python version's sort *is* stable
is to look for "stable" in the docstring. I'm not sure whether to
advertise this <wink>.
Tim Peters [Thu, 1 Aug 2002 02:23:06 +0000 (02:23 +0000)]
New test for sorting sanity. Note that this will fail in earlier Pythons,
in the stability tests.
Bizarre: this takes 11x longer to run if and only if test_longexp is
run before it, on my box. The bigger REPS is in test_longexp, the
slower this gets. What happens on your box? It's not gc on my box
(which is good, because gc isn't a plausible candidate here).
The slowdown is massive in the parts of test_sort that implicitly
invoke a new-style class's __lt__ or __cmp__ methods. If I boost
REPS large enough in test_longexp, even the test_sort tests on an array
of size 64 visibly c-r-a-w-l. The relative slowdown is even worse in
a debug build. And if I reduce REPS in test_longexp, the slowdown in
test_sort goes away.
test_longexp does do horrid things to Win98's management of user
address space, but I thought I had made that a whole lot better a month
or so ago (by overallocating aggressively in the parser).
Tim Peters [Thu, 1 Aug 2002 00:59:42 +0000 (00:59 +0000)]
Checking in the doc file for "timsort". There's way too much here to
stuff into code comments, and lots of it is going to be useful again (but
hard to predict exactly which parts of it ...).
Tim Peters [Wed, 31 Jul 2002 17:32:11 +0000 (17:32 +0000)]
For platforms (like Windows) that wrap _socket.socket:
+ Don't change the arglist requirements.
+ Give the wrapper the same docstring as _socket.socket (it didn't
have any docstring).
Enable test_socket again, if only to prevent mistakes like Jeremy
thinking that he was running his new test by running "make test".
Also, I can't get this to fail any more. Your turn. :-)
Jeremy Hylton [Wed, 31 Jul 2002 15:57:39 +0000 (15:57 +0000)]
Repair testNtoH for large long arguments.
If the long is large enough, the return value will be a negative int.
In this case, calling the function a second time won't return the
original value passed in.
Barry Warsaw [Tue, 30 Jul 2002 23:27:12 +0000 (23:27 +0000)]
Complete the absolute import patch for the test suite. All relative
imports of test modules now import from the test package. Other
related oddities are also fixed (like DeprecationWarning filters that
weren't specifying the full import part, etc.). Also did a general
code cleanup to remove all "from test.test_support import *"'s. Other
from...import *'s weren't changed.
Fred Drake [Tue, 30 Jul 2002 17:51:20 +0000 (17:51 +0000)]
SF patch #581414: info reader bug
The "Matching vs. Searching" Info node is unreachable from the Info
program (but is fine in Emacs's Info mode). This patch seems to fix
it. This is the only occurrence where the info reader fails, so
probably it could be addressed in the python docs as a workaround.
Forwarded the report to the info maintainer.
Jack Jansen [Mon, 29 Jul 2002 21:36:35 +0000 (21:36 +0000)]
First stab at the launcher application. This will be run when the user
doubleclicks a .py, .pyw or .pyc file. It runs the file by invoking the
relevant interpreter (either the command line Python in a terminal window
or a Python.app for GUI-based scripts). Interpreter to use and the options
to pass are settable through preferences.
If PythonLauncher wasn't running it does its thing for one script and exits.
If it was manually started before a dialog is presented where the user
can set the options to use, etc.
To be done:
- option-drag/doubleclick should always open the interactive dialog
- Terminal-window isn't done yet
- Should be reimplemented in Python, but pyobjc isn't part of the core.
- Various menu entries should be disabled.
Jason Tishler [Mon, 29 Jul 2002 16:18:23 +0000 (16:18 +0000)]
Patch #553702: Cygwin make install patch
This patch fixes make install for Cygwin. Specifically,
it reverts to the previous behavior:
o install libpython$(VERSION)$(SO) in $(BINDIR)
o install $(LDLIBRARY) in $(LIBPL)
It also begins to remove Cygwin's dependency on
$(DLLLIBRARY) which I hope to take advantage of
when I attempt to make Cygwin as similar as possible
to the other Unix platforms (in other patches).
I tested this patch under Red Hat Linux 7.1 without
any ill effects.
BTW, I'm not the happiest using the following
test for Cygwin:
Thomas Heller [Mon, 29 Jul 2002 14:27:41 +0000 (14:27 +0000)]
New functions for extension writers on Windows:
PyErr_SetExcFromWindowsErr(), PyErr_SetExcFromWindowsErrWithFilename().
Similar to PyErr_SetFromWindowsErrWithFilename() and
PyErr_SetFromWindowsErr(), but they allow to specify
the exception type to raise. Available on Windows.
Mark Hammond [Mon, 29 Jul 2002 13:42:14 +0000 (13:42 +0000)]
Excise DL_IMPORT/EXPORT from object.h, and related files. This patch
also adds 'extern' to PyAPI_DATA rather than at each declaration, as
discussed with Tim and Guido.
Kurt B. Kaiser [Fri, 26 Jul 2002 00:06:42 +0000 (00:06 +0000)]
Reverse the RPC socket connection: Python execution server connects to
Idle client and localhost origin of connection is verified by client.
M PyShell.py
M rpc.py
M run.py
Fred Drake [Thu, 25 Jul 2002 21:11:23 +0000 (21:11 +0000)]
Small clarifications when referring to the sys.exc_* variables so that
readers are not given the wrong impression that they should be using those
on a regualar basis.
This closes SF bug #585598.
Fred Drake [Thu, 25 Jul 2002 16:23:21 +0000 (16:23 +0000)]
- Make number in comment match the targets in that section of the
Makefile.
- Update the Python version number so we're using the library built
from the current working sources.
* runctx - fix a couple typos
* globaltrace_lt - handle case where inspect.getmodulename doesn't return
anything useful
* localtrace_trace - handle case where inspect.getframeinfo doesn't return
any context info
I think both of the last two are caused by exec'd or eval'd code
remove spurious SET_LINENO from com_list_for and com_list_if. All they do
is slow things down unnecessarily and make tracing much more verbose.
Something like
def f(n):
return [i for i in range(n) if i%2]
should have at most two SET_LINENO instructions, not four. When tracing,
the current line number should be printed once, not 2*n+1 times.
The test for re.engine was misfiring because re.engine is no longer
defined and the default was "pre" instead of "sre". Give up on 1.5.2
compatibility, hardcode the sre solution. However, this XXX comment
still applies, AFAIK:
# XXX This code depends on internals of the regular expression
# engine! There's no standard API to do a substitution when you
# have already found the match. One should be added.
Barry Warsaw [Tue, 23 Jul 2002 19:04:11 +0000 (19:04 +0000)]
Get rid of relative imports in all unittests. Now anything that
imports e.g. test_support must do so using an absolute package name
such as "import test.test_support" or "from test import test_support".
This also updates the README in Lib/test, and gets rid of the
duplicate data dirctory in Lib/test/data (replaced by
Lib/email/test/data).
Mark Hammond [Tue, 23 Jul 2002 06:31:15 +0000 (06:31 +0000)]
Replace DL_IMPORT with PyMODINIT_FUNC and remove "/export:init..." link
command line for Windows builds. This should allow MSVC to import and
build the Python MSVC6 project files without error.