Patch from Lorenzo M. Catucci:
I discovered the [MREMAP_MAYMOVE] symbol is only defined when _GNU_SOURCE is
defined; therefore, here is the change: if we are compiling for linux,
define _GNU_SOURCE before including mman.h, and all is done.
Patch from /F:
this patch adds a fast _flatten function to the _tkinter
module, and imports it from Tkinter.py (if available).
this speeds up canvas operations like create_line and
create_polygon. for example, a create_line with 5000
vertices runs about 50 times faster with this patch in
place.
Regenerated autoconf files. There's an extra change to config.h.in beyond
the mremap() change I made; did someone modify configure.in previously
without recreating these files?
Patch from Trent Mick:
The seek() method is broken for any 'whence' value (seek from
start, current, orend) other than the default. I have a patch
that fixes that as well as gets mmap'd files working on
Linux64 and Win64.
Greg Ward [Sat, 17 Jun 2000 23:04:31 +0000 (23:04 +0000)]
Pulled the MSVC++-specific hackery out to a new method, 'prelink_hook()',
and added (empty) 'precompile_hook()' for symmetry. One can envision
a much more elaborate hook mechanism, but this looks like it'll do for
now.
Fix the size() method to return the size of the file on Unix, not the
size of the mapped area. This seems to be what the Windows version does.
This change requires keeping around the fd of the mapped file.
Vladimir MARANGOZOV <Vladimir.Marangozov@inrialpes.fr>:
This patch fixes an optimisation mystery in _PyUnicodeNew causing segfaults
on AIX when the interpreter is compiled with -O.
Greg Ward [Sat, 17 Jun 2000 01:58:14 +0000 (01:58 +0000)]
Bastian Kleineidam: added 'remove_tree()' function. Needed so that
'remove_tree()' can cooperate with 'mkpath()' in the maintenance of
the PATH_CREATED cache: specifically, if a directory is created
with 'mkpath()', later removed with 'remove_tree()', and 'mkpath()'
is again requested to create it, then it would erroneously think
the directory already existed, because it was in the PATH_CREATED
cache. The patch (slightly tweaked by me) fixes that.
Fred Drake [Thu, 15 Jun 2000 14:50:20 +0000 (14:50 +0000)]
Thomas Wouters <thomas@xs4all.net>:
The following patch adds "sq_contains" support to rangeobject, and enables
the already-written support for sq_contains in listobject and tupleobject.
The rangeobject "contains" code should be a bit more efficient than the
current default "in" implementation ;-) It might not get used much, but it's
not that much to add.
listobject.c and tupleobject.c already had code for sq_contains, and the
proper struct member was set, but the PyType structure was not extended to
include tp_flags, so the object-specific code was not getting called (Go
ahead, test it ;-). I also did this for the immutable_list_type in
listobject.c, eventhough it is probably never used. Symmetry and all that.
Marc-Andre Lemburg <mal@lemburg.com>:
Removed a test which can fail when the default locale setting
uses a Latin-1 encoding. The test case is not applicable anymore.
Marc-Andre Lemburg <mal@lemburg.com>:
Fixed some tests to not cause the script to fail, but rather
output a warning (which then is caught by regrtest.py as wrong
output). This is needed to make test_unicode.py run through
on JPython.
Thanks to Finn Bock.
Fred Drake [Sat, 10 Jun 2000 04:22:57 +0000 (04:22 +0000)]
Added test for linnuxaudiodev module; directly adapted from sunaudiodev
test. Someone with more Linux audio knowledge should at least take a
brief look at it.
Marc-Andre Lemburg <mal@lemburg.com>:
Added emulations of the C APIs in _locale to be used when the
_locale module is not enabled. They return the correct values
assuming the 'C' locale.
Greg Ward [Thu, 8 Jun 2000 01:06:02 +0000 (01:06 +0000)]
Moved the code that prunes the file list after reading the manifest
template into a new method 'prune_file_list()', called from
'get_file_list()' rather than 'read_manifest()' -- this keeps
'read_manifest()' more general.
Deleted the redundant call to 'exclude_pattern()' in 'make_distribution()'
-- this had the same intention as 'prune_file_list()', but was incomplete
(only pruned the release tree, not the build tree) and in the wrong
place (the prune wouldn't be reflected in the manifest file).
Greg Ward [Thu, 8 Jun 2000 00:08:14 +0000 (00:08 +0000)]
Made all debug output go through the 'debug_print()' method instead of
directly printing to stdout. This was a bit more work than it sounds like
it should have been:
* turned 'select_pattern()' and 'exclude_pattern()' from functions into
methods, so they can refer to 'self' to access the method
* commented out the *other* 'exclude_pattern()' method, which appears
to be vestigial code that was never cleaned up when the
'exclude_pattern()' function was created
* changed the one use of the old 'exclude_pattern()' method to use the
new 'exclude_pattern()' (same behaviour, slightly different args)
* some code and docstring reformatting
* and, of course, changed all the debugging prints to 'debug_print()' calls
Added/tweaked some regular ('self.announce()') output for better runtime
feedback.
Marc-Andre Lemburg <mal@lemburg.com>:
Changed the API names for setting the default encoding.
These are now in line with the other hooks API names
(no underscores).
Marc-Andre Lemburg <mal@lemburg.com>:
Change the default encoding to 'ascii' (it was previously
defined as UTF-8).
Note: The implementation still uses UTF-8 to implement
the buffer protocol, so C APIs will still see UTF-8. This
is on purpose: rather than fixing the Unicode implementation,
the C APIs should be made Unicode aware.
Marc-Andre Lemburg <mal@lemburg.com>:
Added support to set the default encoding of strings
at startup time to the values defined by the C locale.
The sys.setdefaultencoding() API is deleted after having
set up the encoding, so that user code cannot subsequentely
change the setting. This effectively means that only site.py
may alter the default setting.
Marc-Andre Lemburg <mal@lemburg.com>:
Added a new locale name aliasing engine which also supports
locale encodings, a feature which is used by the new default
encoding support in site.py.
Greg Ward [Wed, 7 Jun 2000 03:00:06 +0000 (03:00 +0000)]
Patch from Rene Liebscher: this adds "--help-foo" options to list the
values that "--foo" can take for various commands: eg. what formats for
"sdist" and "bdist", what compilers for "build_ext" and "build_clib".
I have *not* reviewed this patch; I'm checking it in as-is because it also
fixes a paper-bag-over-head bug in bdist.py, and because I won't have
time to review it properly for several days: so someone else can
test it for me, instead!
Greg Ward [Wed, 7 Jun 2000 02:29:03 +0000 (02:29 +0000)]
Always look for the system config file in the Distutils module directory,
and call it "distutils.cfg" instead of "pydistutils.cfg" (personal
config files are still ".pydistutils.cfg" or "pydistutils.cfg", though).
Greg Ward [Wed, 7 Jun 2000 02:26:19 +0000 (02:26 +0000)]
Patch from Rene Liebscher:
Look for personal config file in /home/greg on Windows, too: users will have
to set /home/greg to use this, so it's not something that many people will
use. But if python-dev comes up with the "right way" to divine a
home directory on Windows, we can use that to set /home/greg and poof! --
personal Distutils config files on Windows.
Greg Ward [Tue, 6 Jun 2000 02:57:07 +0000 (02:57 +0000)]
First crack at the Distutils "config" command. Unlike other commands, this
one doesn't *do* anything by default; it's just there as a conduit for data
(eg. include dirs, libraries) from the user to the "build" commands.
However, it provides a couple of Autoconf-ish methods ('try_compile()',
'try_link()', 'try_run()') that derived, per-distribution "config" commands
can use to poke around the target system and see what's available.
Initial experimenst with mxDateTime indicate that higher-level methods are
necessary: analogs of Autoconf's AC_CHECK_HEADER, AC_CHECK_LIB will be
needed too (and that's just to probe the C/C++ system: how to probe the
Python system is wide open, and someday we'll have to worry about probing a
Java system too).