Got all the 1.5.2 news that's fit to print. Now we may need to
organize it better...
This commit is contained in:
parent
bc74ca5203
commit
ab9d6f0be9
406
Misc/NEWS
406
Misc/NEWS
|
@ -17,8 +17,23 @@ credit, let me know and I'll add you to the list!
|
|||
From 1.5.1 to 1.5.2a1
|
||||
=====================
|
||||
|
||||
General/Miscellaneous
|
||||
---------------------
|
||||
General
|
||||
-------
|
||||
|
||||
- When searching for the library, a landmark that is a compiled module
|
||||
(string.pyc or string.pyo) is also accepted.
|
||||
|
||||
- When following symbolic links to the python executable, use a loop
|
||||
so that a symlink to a symlink can work.
|
||||
|
||||
- Added a hack so that when you type 'quit' or 'exit' at the
|
||||
interpreter, you get a friendly explanation of how to press Ctrl-D (or
|
||||
Ctrl-Z) to exit.
|
||||
|
||||
- New and improved Misc/python-mode.el (Python mode for Emacs).
|
||||
|
||||
Miscellaneous fixed bugs
|
||||
------------------------
|
||||
|
||||
- All patches on the patch page have been integrated. (But much more
|
||||
has been done!)
|
||||
|
@ -26,47 +41,9 @@ has been done!)
|
|||
- Several memory leaks plugged (e.g. the one for classes with a
|
||||
__getattr__ method).
|
||||
|
||||
- Better checks for invalid input to int(), long(), string.atoi(),
|
||||
string.atol(). (Formerly, a sign without digits would be accepted as
|
||||
a legal ways to spell zero.)
|
||||
|
||||
- New standard exceptions EnvironmentError and PosixError;
|
||||
EnvironmentError is the base class for IOError and PosixError;
|
||||
PosixError is the same as os.error. All this so that either exception
|
||||
class can be instantiated with a third argument indicating a filename.
|
||||
The built-in function open() and most os/posix functions that take a
|
||||
filename argument now use this.
|
||||
|
||||
- When searching for the library, a landmark that is a compiled module
|
||||
(string.pyc or string.pyo) is also accepted.
|
||||
|
||||
- Removed the only use of calloc(). This triggered an obscure bug on
|
||||
multiprocessor Sparc Solaris 2.6.
|
||||
|
||||
- Changes to map() and filter() to use the length of a sequence only
|
||||
as a hint -- if an IndexError happens earlier, take that. (Formerly,
|
||||
this was considered an error.)
|
||||
|
||||
- Instance methods may now have other callable objects than just
|
||||
Python functions as their im_func. Use new.instancemethod() or write
|
||||
your own C code to create them; new.instancemethod() may be called
|
||||
with None for the instance to create an unbound method.
|
||||
|
||||
- Assignment to __dict__ or __bases__ of a class object is now
|
||||
allowed (with stringent type checks). The cached values for
|
||||
__getattr__ etc. are recomputed after such assignments (but not for
|
||||
derived classes :-( ).
|
||||
|
||||
- New and improved Misc/python-mode.el (Python mode for Emacs).
|
||||
|
||||
- New, better performing sort() method for list objects.
|
||||
|
||||
- List objects now have an experimental pop() method; l.pop() returns
|
||||
and removes the last item; l.pop(i) returns and removes the item at i.
|
||||
|
||||
- Experimental feature in getattr(): a third argument can specify a
|
||||
default (instead of raising AttributeError).
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
|
@ -80,31 +57,91 @@ time, thread, sys, __builtin__. Also to methods of list objects (try
|
|||
propagated to an instance if the instance has methods that are
|
||||
accessed in the usual way.
|
||||
|
||||
Ports
|
||||
-----
|
||||
- Added Misc/Porting -- a mini-FAQ on porting to a new platform.
|
||||
|
||||
Ports and build procedure
|
||||
-------------------------
|
||||
|
||||
- The BeOS port is now integrated. Courtesy Chris Herborth.
|
||||
|
||||
- Symbol files for FreeBSD 2.x and 3.x have been contributed
|
||||
(Lib/plat-freebsd[23]/*).
|
||||
|
||||
Windows
|
||||
-------
|
||||
- Support HPUX 10.20 DCE threads.
|
||||
|
||||
- The project files have been moved so they are distributed in the
|
||||
same subdirectory (PCbuild) where they must be used; this avoids
|
||||
confusion.
|
||||
- Finally fixed the configure script so that (on SGI) if -OPT:Olimit=0
|
||||
works, it won't also use -Olimit 1500 (which gives a warning for every
|
||||
file). Also support the SGI_ABI environment variable better.
|
||||
|
||||
- New project files for Windows 3.1 port by Jim Ahlstrom.
|
||||
- Other miscellaneous improvements to the configure script and
|
||||
Makefiles.
|
||||
|
||||
- Got rid of the obsolete subdirectory PC/setup_nt/.
|
||||
- The makesetup script now understands absolute pathnames ending in .o
|
||||
in the module -- it assumes it's a file for which we have no source.
|
||||
|
||||
- os.environ is now all uppercase, but accesses are case insensitive.
|
||||
- The test suite now uses a different sound sample.
|
||||
|
||||
- Don't insist on proper case for module source files if the filename
|
||||
is all uppercase (e.g. FOO.PY now matches foo; but FOO.py still
|
||||
doesn't). This should address problems with this feature on
|
||||
oldfashioned filesystems (Novell servers?).
|
||||
Built-in functions and exceptions
|
||||
---------------------------------
|
||||
|
||||
- Better checks for invalid input to int(), long(), string.atoi(),
|
||||
string.atol(). (Formerly, a sign without digits would be accepted as
|
||||
a legal ways to spell zero.)
|
||||
|
||||
- New standard exceptions EnvironmentError and PosixError;
|
||||
EnvironmentError is the base class for IOError and PosixError;
|
||||
PosixError is the same as os.error. All this so that either exception
|
||||
class can be instantiated with a third argument indicating a filename.
|
||||
The built-in function open() and most os/posix functions that take a
|
||||
filename argument now use this.
|
||||
|
||||
- Changes to map() and filter() to use the length of a sequence only
|
||||
as a hint -- if an IndexError happens earlier, take that. (Formerly,
|
||||
this was considered an error.)
|
||||
|
||||
- Experimental feature in getattr(): a third argument can specify a
|
||||
default (instead of raising AttributeError).
|
||||
|
||||
- Implement round() slightly different, so that for negative ndigits
|
||||
no additional errors happen in the last step.
|
||||
|
||||
Built-in types and statements
|
||||
-----------------------------
|
||||
|
||||
- Changes to comparisons: numbers now compare smaller than any other
|
||||
type. This is done to prevent the circularity where [] < 0L < 1 < []
|
||||
is true. As a side effect, cmp(None, 0) is now positive instead of
|
||||
negative. This *shouldn't* affect any working code, but I've found
|
||||
that the change caused several "sleeping" bugs to become active, so
|
||||
beware!
|
||||
|
||||
- Instance methods may now have other callable objects than just
|
||||
Python functions as their im_func. Use new.instancemethod() or write
|
||||
your own C code to create them; new.instancemethod() may be called
|
||||
with None for the instance to create an unbound method.
|
||||
|
||||
- Assignment to __name__, __dict__ or __bases__ of a class object is
|
||||
now allowed (with stringent type checks); also allow assignment to
|
||||
__getattr__ etc. The cached values for __getattr__ etc. are
|
||||
recomputed after such assignments (but not for derived classes :-( ).
|
||||
|
||||
- New, better performing sort() method for list objects.
|
||||
|
||||
- List objects now have an experimental pop() method; l.pop() returns
|
||||
and removes the last item; l.pop(i) returns and removes the item at
|
||||
i. Also, the sort() method is faster again. Sorting is now also
|
||||
safer: it is impossible for the sorting function to modify the list
|
||||
while the sort is going on (this could cause core dumps).
|
||||
|
||||
- Fix a bug in the overflow checking when converting a Python long to
|
||||
a C long (failed to convert -2147483648L, and other spurious bugs).
|
||||
|
||||
- Allow assignment to some attributes of function objects: func_code,
|
||||
func_defaults and func_doc / __doc__. (With type checks except for
|
||||
__doc__ / func_doc .)
|
||||
|
||||
- Fix a peculiar bug that would allow "import sys.time" to succeed
|
||||
(believing the built-in time module to be a part of the sys package).
|
||||
|
||||
Library modules
|
||||
---------------
|
||||
|
@ -113,9 +150,11 @@ Library modules
|
|||
sortperf.py (list sorting benchmark), test_MimeWriter.py (test case
|
||||
for the MimeWriter module).
|
||||
|
||||
- Changes to os.py: os.environ now upcases keys before storing them on
|
||||
Windows, DOS and OS/2; new functions makedirs(), removedirs(),
|
||||
renames().
|
||||
- New functions in os.py: makedirs(), removedirs(), renames(). New
|
||||
variable: linesep (the line separator as found in binary files,
|
||||
i.e. '\n' on Unix, '\r\n' on DOS/Windows, '\r' on Mac. Do *not* use
|
||||
this with files opened in (default) text mode; the line separator used
|
||||
will always be '\n'!
|
||||
|
||||
- Changes to the 'os.path' submodule of os.py: added getsize(),
|
||||
getmtime(), getatime() -- these fetch the most popular items from the
|
||||
|
@ -134,26 +173,32 @@ problem that randint() was accidentally defined as taking an inclusive
|
|||
range. Also, randint(a, b) is now redefined as randrange(a, b+1),
|
||||
adding extra range and type checking to its arguments!
|
||||
|
||||
- Add some semi-thread-safety to random.gauss() (it used to be able to
|
||||
crash when invoked from separate threads; now the worst it can do is
|
||||
give a duplicate result occasionally).
|
||||
|
||||
- In getpass.py, don't use raw_input() to ask for the password -- we
|
||||
don't want it to show up in the readline history!
|
||||
don't want it to show up in the readline history! Also don't catch
|
||||
interrupts (the try-finally already does all necessary cleanup).
|
||||
|
||||
- Generalized test/regrtest.py so that it is useful for testing other
|
||||
packages.
|
||||
|
||||
- Some small changes in urllib.py; sped up unquote() and quote(),
|
||||
fixed an obscure bug in quote_plus(). Added urlencode(dict) --
|
||||
convenience function for sending a POST request with urlopen().
|
||||
Rewrote the (test) main program so that when used as a script, it can
|
||||
retrieve one or more URLs to stdout. Use -t to run the self-test.
|
||||
- Changes in urllib.py; sped up unquote() and quote(). Fixed an
|
||||
obscure bug in quote_plus(). Added urlencode(dict) -- convenience
|
||||
function for sending a POST request with urlopen(). Use the getpass
|
||||
module to ask for a password. Rewrote the (test) main program so that
|
||||
when used as a script, it can retrieve one or more URLs to stdout.
|
||||
Use -t to run the self-test. Made the proxy code work again.
|
||||
|
||||
- In pdb.py, support for setting breaks on files/modules that haven't
|
||||
been loaded yet.
|
||||
|
||||
- In rfc822.py, fix tell/seek when using files opened in text mode on
|
||||
Windows. Also add a new class AddressList.
|
||||
|
||||
- In mailbox.py, fix tell/seek when using files opened in text mode on
|
||||
Windows.
|
||||
- In rfc822.py, add a new class AddressList. Also support a new
|
||||
overridable method, isheader(). Also add a get() method similar to
|
||||
dictionaries (and make getheader() an alias for it). Also, be smarter
|
||||
about seekable (test whether fp.tell() works) and test for presence of
|
||||
unread() method before trying seeks.
|
||||
|
||||
- Some speedups to re.py, especially the string substitution and split
|
||||
functions. Also added new function/method findall(), to find all
|
||||
|
@ -164,7 +209,9 @@ sys.exc_info(). Also made the (test) main program a bit fancier (you
|
|||
can now use it to run arbitrary Python scripts in restricted mode).
|
||||
|
||||
- In sgmllib.py, restore the call to report_unbalanced() that was lost
|
||||
long ago.
|
||||
long ago. Also some other improvements: handle <? processing
|
||||
instructions >, allow . and - in entity names, and allow \r\n as line
|
||||
separator.
|
||||
|
||||
- Major upgrade to ConfigParser.py; converted to using 're', added new
|
||||
exceptions, support underscore in section header and option name. No
|
||||
|
@ -176,8 +223,12 @@ longer add 'name' option to every section; instead, add '__name__'.
|
|||
|
||||
- Some restructuring and generalization done to multifile.py.
|
||||
|
||||
- In cgi.py, treat "HEAD" the same as "GET", so that CGI scripts don't
|
||||
fail when someone asks for their HEAD.
|
||||
- In cgi.py, treat "HEAD" the same as "GET", so that CGI scripts don't
|
||||
fail when someone asks for their HEAD. Also, for POST, set the
|
||||
default content-type to application/x-www-form-urlencoded. Also, in
|
||||
FieldStorage.__init__(), when method='GET', always get the query
|
||||
string from environ['QUERY_STRING'] or sys.argv[1] -- ignore an
|
||||
explicitly passed in fp.
|
||||
|
||||
- Improved imaplib.py.
|
||||
|
||||
|
@ -191,30 +242,25 @@ PythonInterpreter class. The interact() function now uses this.
|
|||
- In rlcompleter.py, in completer(), return None instead of raising an
|
||||
IndexError when there are no more completions left.
|
||||
|
||||
- In the string and strop modules, in the replace() function, treat an
|
||||
empty pattern as an error (since it's not clear what was meant!).
|
||||
|
||||
Tkinter
|
||||
-------
|
||||
- The gzip.py module didn't work together with cPickle. Fixed.
|
||||
|
||||
- New demos in Demo/tkinter/guido/: brownian.py, redemo.py, switch.py.
|
||||
- Fixed a small bug in CGIHTTPServer.py.
|
||||
|
||||
- No longer register Tcl_finalize() as a low-level exit handler. It
|
||||
may call back into Python, and that's a bad idea.
|
||||
- In whichdb.py, support byte-swapped dbhash (bsddb) files.
|
||||
|
||||
- On Unix, Tkinter can now safely be used from a multi-threaded
|
||||
application. (Formerly, no threads would make progress while
|
||||
Tkinter's mainloop() was active, because it didn't release the Python
|
||||
interpreter lock.) Unfortunately, on Windows, threads other than the
|
||||
main thread should not call update() or update_idletasks() because
|
||||
this will deadlock the application.
|
||||
|
||||
- Allow binding of Tcl commands (given as a string).
|
||||
|
||||
- Some minor speedups.
|
||||
- In anydbm.py, look at the type of an existing database to determine
|
||||
which module to use to open it. (The anydbm.error exception is now a
|
||||
tuple.)
|
||||
|
||||
Extension modules
|
||||
-----------------
|
||||
|
||||
- In the socket module: new function gethostbyname_ex().
|
||||
- In the socket module: new function gethostbyname_ex(). Also, don't
|
||||
use #ifdef to test for some symbols that are enums on some platforms
|
||||
(and should exist everywhere).
|
||||
|
||||
- Added some of the "wait status inspection" macros as functions:
|
||||
WEXITSTATUS(), WIFEXITED(), WIFSIGNALED(), WIFSTOPPED(), WSTOPSIG(),
|
||||
|
@ -223,41 +269,166 @@ WTERMSIG().
|
|||
- In cStringIO, add better argument type checking and support the
|
||||
readonly 'closed' attribute (like regular files).
|
||||
|
||||
- On Windows, in select, put the (huge) file descriptor arrays on the
|
||||
heap.
|
||||
|
||||
- In the struct module, unsigned 1-2 byte sized formats no longer
|
||||
result in long integer values.
|
||||
|
||||
Build procedure
|
||||
- In the termios module, in tcsetattr(), initialize the structure vy
|
||||
calling tcgetattr().
|
||||
|
||||
- In the time module, add strptime(), if it exists. (This parses a
|
||||
time according to a format -- the inverse of strftime().) Also,
|
||||
remove the call to mktime() from strftime() -- it messed up the
|
||||
formatting of some non-local times.
|
||||
|
||||
- Fixed the marshal module to test for certain common kinds of invalid
|
||||
input. (It's still not foolproof!)
|
||||
|
||||
- In the operator module, add an alias (now the preferred name)
|
||||
"contains" for "sequenceincludes".
|
||||
|
||||
- In the syslog module, make the default facility more intuitive
|
||||
(matching the docs).
|
||||
|
||||
Tkinter
|
||||
-------
|
||||
|
||||
- On Unix, Tkinter can now safely be used from a multi-threaded
|
||||
application. (Formerly, no threads would make progress while
|
||||
Tkinter's mainloop() was active, because it didn't release the Python
|
||||
interpreter lock.) Unfortunately, on Windows, threads other than the
|
||||
main thread should not call update() or update_idletasks() because
|
||||
this will deadlock the application.
|
||||
|
||||
- An interactive interpreter that uses readline and Tkinter no longer
|
||||
uses up all available CPU time.
|
||||
|
||||
- Even if readline is not used, Tk windows created in an interactive
|
||||
interpreter now get continuously updated. (This even works in Windows
|
||||
as long as you don't hit a key.)
|
||||
|
||||
- New demos in Demo/tkinter/guido/: brownian.py, redemo.py, switch.py.
|
||||
|
||||
- No longer register Tcl_finalize() as a low-level exit handler. It
|
||||
may call back into Python, and that's a bad idea.
|
||||
|
||||
- Allow binding of Tcl commands (given as a string).
|
||||
|
||||
- Some minor speedups; replace explicitly coded getint() with int() in
|
||||
most places.
|
||||
|
||||
- In FileDialog.py, remember the directory of the selected file, if
|
||||
given.
|
||||
|
||||
- Change the names of all methods in the Wm class: they are now
|
||||
wm_title(), etc. The old names (title() etc.) are still defined as
|
||||
aliases.
|
||||
|
||||
- Add a new method of interpreter objects, interpaddr(). This returns
|
||||
the address of the Tcl interpreter object, as an integer. Not very
|
||||
useful for the Python programmer, but this can be called by another C
|
||||
extension that needs to make calls into the Tcl/Tk C API and needs to
|
||||
get the address of the Tcl interpreter object. A simple cast of the
|
||||
return value to (Tcl_Interp *) will do the trick.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
- The registry key used is now "1.5" instead of "1.5.x" -- so future
|
||||
versions of 1.5 and Mark Hammond's win32all installer don't need to be
|
||||
resynchronized.
|
||||
|
||||
- The project files have been moved so they are distributed in the
|
||||
same subdirectory (PCbuild) where they must be used; this avoids
|
||||
confusion.
|
||||
|
||||
- New project files for Windows 3.1 port by Jim Ahlstrom.
|
||||
|
||||
- Got rid of the obsolete subdirectory PC/setup_nt/.
|
||||
|
||||
- os.environ is now all uppercase, but accesses are case insensitive.
|
||||
|
||||
- Don't insist on proper case for module source files if the filename
|
||||
is all uppercase (e.g. FOO.PY now matches foo; but FOO.py still
|
||||
doesn't). This should address problems with this feature on
|
||||
oldfashioned filesystems (Novell servers?).
|
||||
|
||||
- Fixed os.pipe() so that it returns file descriptors acceptable to
|
||||
os.read() and os.write() (like it does on Unix), rather than Windows
|
||||
file handles.
|
||||
|
||||
- In the select module, put the (huge) file descriptor arrays on the heap.
|
||||
|
||||
- The getpass module now raises KeyboardInterrupt when it sees ^C.
|
||||
|
||||
- Changes to os.py: os.environ now upcases keys before storing them on
|
||||
Windows, DOS and OS/2.
|
||||
|
||||
- In mailbox.py, fix tell/seek when using files opened in text mode.
|
||||
|
||||
- In rfc822.py, fix tell/seek when using files opened in text mode.
|
||||
|
||||
- Several improvements to freeze (mostly, but not exclusively for
|
||||
Windows).
|
||||
|
||||
- Moved the VC++ project files and the WISE installer script from PC
|
||||
to PCbuild.
|
||||
|
||||
- The projects now use distinct filenames for the .exe, .dll, .lib and
|
||||
.pyd files built in debug mode (by appending "_d" to the base name,
|
||||
before the extension). This makes it easier to switch between the two
|
||||
and get the right versions. There's a pragma in config.h that directs
|
||||
the linker to include the appropriate .lib file (so python15.lib no
|
||||
longer needs to be explicit in your project).
|
||||
|
||||
- In the msvcrt extension module, release the interpreter lock for
|
||||
calls that may block: _locking(), _getch(), _getche(). Also fix a
|
||||
bogus error return when open_osfhandle() doesn't have the right
|
||||
argument list.
|
||||
|
||||
- Revert a new feature in Unix dynamic loading: for one or two
|
||||
revisions, modules were loaded using the RTLD_GLOBAL flag. It turned
|
||||
out to be a bad idea.
|
||||
|
||||
- The installer now installs more files (e.g. config.h). The idea is
|
||||
that you shouldn't need the source distribution if you want build your
|
||||
own extensions in C or C++.
|
||||
|
||||
- Fixed a very old bug in the parsing of "O?" format specifiers.
|
||||
|
||||
- Added a table of WSA error codes to socket.py.
|
||||
|
||||
- Removed samefile(), sameopenfile(), samestat() from os.path (aka
|
||||
ntpath.py) -- these cannot be made to work reliably (at least I
|
||||
wouldn't know how).
|
||||
|
||||
Tools and Demos
|
||||
---------------
|
||||
|
||||
- Finally fixed the configure script so that (on SGI) if -OPT:Olimit=0
|
||||
works, it won't also use -Olimit 1500 (which gives a warning for every
|
||||
file).
|
||||
|
||||
- Other miscellaneous improvements to the configure script.
|
||||
|
||||
Tools
|
||||
-----
|
||||
|
||||
- Some improvements to the freeze script.
|
||||
- New script nm2def.py by Marc-Andre Lemburg, to construct
|
||||
PC/python_nt.def automatically (some hand editing still required).
|
||||
|
||||
- New tool ndiff.py: Tim Peters' text diffing tool.
|
||||
|
||||
- Various and sundry improvements to the freeze script.
|
||||
|
||||
- The script texi2html.py (which was part of the Doc tree but is no
|
||||
longer used there) has been moved to the Tools/scripts subdirectory.
|
||||
|
||||
- Some generalizations in the webchecker code. There's now a
|
||||
primnitive gui for websucker.py: wsgui.py. (In Tools/webchecker/.)
|
||||
|
||||
- Some improvements to freeze (made it more robust on Windows).
|
||||
- The ftpmirror.py script now handles symbolic links properly, and
|
||||
also files with multiple spaces in their names.
|
||||
|
||||
- The ftpmirror.py script now handles symbolic links properly.
|
||||
- The 1.5.1 tabnanny.py suffers an assert error if fed a script whose
|
||||
last line is both indented and lacks a newline. This is now fixed.
|
||||
|
||||
Python/C API
|
||||
------------
|
||||
|
||||
- Added missing prototypes for PyEval_CallFunction() and
|
||||
PyEval_CallMethod().
|
||||
|
||||
- New APIs for conversion between Python longs and C 'long long' if
|
||||
your compiler supports it.
|
||||
|
||||
|
@ -267,7 +438,7 @@ Py_SetPythonHome(), makes it easier for embedding applications to
|
|||
change the notion of Python's "home" directory (where the libraries
|
||||
etc. are sought).
|
||||
|
||||
- Changes to PySequence_Tuple() and PySequence_List() to use the
|
||||
- Changes to PySequence_Tuple() and PySequence_Lis(t) to use the
|
||||
length of a sequence only as a hint -- if an IndexError happens
|
||||
earlier, take that. (Formerly, this was considered an error.)
|
||||
|
||||
|
@ -281,6 +452,31 @@ dynamically add one or many entries to the table of built-in modules.
|
|||
Py_InitModule4() with appropriate arguments. (The -4 variant requires
|
||||
you to pass an obscure version number constant which is always the same.)
|
||||
|
||||
- Reformatted abstract.c to give it a more familiar "look" and fixed
|
||||
many error checking bugs.
|
||||
|
||||
- Add NULL pointer checks to all calls of a C function through a type
|
||||
object and extensions (e.g. nb_add).
|
||||
|
||||
- PySequence_In() is now called PySequence_Contains().
|
||||
(PySequence_In() is still supported for b/w compatibility; it is
|
||||
declared obsolete because its argument order is confusing.)
|
||||
|
||||
- PyDict_GetItem() and PyDict_GetItemString() are changed so that they
|
||||
*never* raise an exception -- (even if the hash() fails, simply clear
|
||||
the error). This was necessary because there is lots of code out
|
||||
there that already assumes this.
|
||||
|
||||
- New APIs PySys_WriteStdout() and PySys_WriteStderr() to write to
|
||||
sys.stdout or sys.stderr using a printf-like interface. (Used in
|
||||
_tkinter.c, for example.)
|
||||
|
||||
- New macro PyList_SET_ITEM().
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
|
||||
From 1.5 to 1.5.1
|
||||
=================
|
||||
|
||||
|
@ -666,7 +862,6 @@ It can be disabled on a per-case basis by setting the environment
|
|||
variable PYTHONCASEOK (to any value).
|
||||
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
|
||||
|
@ -1399,7 +1594,6 @@ using sys.exc_info().
|
|||
Also, the command argument can now be either a string (passed to the
|
||||
shell) or a list of arguments (passed directly to execv).
|
||||
|
||||
|
||||
- Alas, the thread support for _tkinter released with 1.5a3 didn't
|
||||
work. It's been rewritten. The bad news is that it now requires a
|
||||
modified version of a file in the standard Tcl distribution, which you
|
||||
|
|
Loading…
Reference in New Issue