transcribed changes from tut.tex
This commit is contained in:
parent
c102a13f61
commit
5e639d446c
229
Misc/NEWS
229
Misc/NEWS
|
@ -1,142 +1,151 @@
|
|||
===================================
|
||||
==> Release 1.2 <==
|
||||
===================================
|
||||
=====================================
|
||||
==> Release 1.3 (13 October 1995) <==
|
||||
=====================================
|
||||
|
||||
- Changes to Misc/python-mode.el:
|
||||
- Wrapping and indentation within triple quote strings should work
|
||||
properly now.
|
||||
- `Standard' bug reporting mechanism (use C-c C-b)
|
||||
- py-mark-block was moved to C-c C-m
|
||||
- C-c C-v shows you the python-mode version
|
||||
- a basic python-font-lock-keywords has been added for Emacs 19
|
||||
font-lock colorizations.
|
||||
- proper interaction with pending-del and del-sel modes.
|
||||
- New py-electric-colon (:) command for improved outdenting. Also
|
||||
py-indent-line (TAB) should handle outdented lines better.
|
||||
- New commands py-outdent-left (C-c C-l) and py-indent-right (C-c C-r)
|
||||
Major change
|
||||
============
|
||||
|
||||
- The Library Reference has been restructured, and many new and
|
||||
existing modules are now documented, in particular the debugger and
|
||||
the profiler, as well as the persistency and the WWW/Internet support
|
||||
modules.
|
||||
Two words: Keyword Arguments. See the first section of Chapter 12 of
|
||||
the Tutorial.
|
||||
|
||||
- All known bugs have been fixed. For example the pow(2,2,3L) bug on
|
||||
Linux has been fixed. Also the re-entrancy problems with __del__ have
|
||||
been fixed.
|
||||
(The rest of this file is textually the same as the remaining sections
|
||||
of that chapter.)
|
||||
|
||||
- All known memory leaks have been fixed.
|
||||
|
||||
- Phase 2 of the Great Renaming has been executed. The header files
|
||||
now use the new names (PyObject instead of object, etc.). The linker
|
||||
also sees the new names. Most source files still use the old names,
|
||||
by virtue of the rename2.h header file. If you include Python.h, you
|
||||
only see the new names. Dynamically linked modules have to be
|
||||
recompiled. (Phase 3, fixing the rest of the sources, will be
|
||||
executed gradually with the release later versions.)
|
||||
Changes to the WWW and Internet tools
|
||||
=====================================
|
||||
|
||||
- The hooks for implementing "safe-python" (better called "restricted
|
||||
execution") are in place. Specifically, the import statement is
|
||||
implemented by calling the built-in function __import__, and the
|
||||
built-in names used in a particular scope are taken from the
|
||||
dictionary __builtins__ in that scope's global dictionary. See also
|
||||
the new (unsupported, undocumented) module rexec.py.
|
||||
The "htmllib" module has been rewritten in an incompatible fashion.
|
||||
The new version is considerably more complete (HTML 2.0 except forms,
|
||||
but including all ISO-8859-1 entity definitions), and easy to use.
|
||||
Small changes to "sgmllib" have also been made, to better match the
|
||||
tokenization of HTML as recognized by other web tools.
|
||||
|
||||
- The import statement now supports the syntax "import a.b.c" and
|
||||
"from a.b.c import name". No officially supported implementation
|
||||
exists, but one can be prototyped by replacing the built-in __import__
|
||||
function. A proposal by Ken Manheimer is provided as newimp.py.
|
||||
A new module "formatter" has been added, for use with the new
|
||||
"htmllib" module.
|
||||
|
||||
- All machinery used by the import statement (or the built-in
|
||||
__import__ function) is now exposed through the new built-in module
|
||||
"imp" (see the library reference manual). All dynamic loading
|
||||
machinery is moved to the new file importdl.c.
|
||||
The "urllib"and "httplib" modules have been changed somewhat to allow
|
||||
overriding unknown URL types and to support authentication. They now
|
||||
use "mimetools.Message" instead of "rfc822.Message" to parse headers.
|
||||
The "endrequest()" method has been removed from the HTTP class since
|
||||
it breaks the interaction with some servers.
|
||||
|
||||
- Persistent storage is supported through the use of the modules
|
||||
"pickle" and "shelve" (implemented in Python). There's also a "copy"
|
||||
module implementing deepcopy and normal (shallow) copy operations.
|
||||
See the library reference manual.
|
||||
The "rfc822.Message" class has been changed to allow a flag to be
|
||||
passed in that says that the file is unseekable.
|
||||
|
||||
- Documentation strings for many objects types are accessible through
|
||||
the __doc__ attribute. Modules, classes and functions support special
|
||||
syntax to initialize the __doc__ attribute: if the first statement
|
||||
consists of just a string literal, that string literal becomes the
|
||||
value of the __doc__ attribute. The default __doc__ attribute is
|
||||
None. Documentation strings are also supported for built-in
|
||||
functions, types and modules; however this feature hasn't been widely
|
||||
used yet. See the 'new' module for an example. (Basically, the type
|
||||
object's tp_doc field contains the doc string for the type, and the
|
||||
4th member of the methodlist structure contains the doc string for the
|
||||
method.)
|
||||
The "ftplib" module has been fixed to be (hopefully) more robust on
|
||||
Linux.
|
||||
|
||||
- The __coerce__ and __cmp__ methods for user-defined classes once
|
||||
again work as expected. As an example, there's a new standard class
|
||||
Complex in the library.
|
||||
Several new operations that are optionally supported by servers have
|
||||
been added to "nntplib": "xover", "xgtitle", "xpath" and "date".
|
||||
|
||||
- The functions posix.popen() and posix.fdopen() now have an optional
|
||||
third argument to specify the buffer size, and default their second
|
||||
(mode) argument to 'r' -- in analogy to the builtin open() function.
|
||||
The same applies to posixfile.open() and the socket method makefile().
|
||||
Other Language Changes
|
||||
======================
|
||||
|
||||
- The thread.exit_thread() function now raises SystemExit so that
|
||||
'finally' clauses are honored and a memory leak is plugged.
|
||||
The "raise" statement now takes an optional argument which specifies
|
||||
the traceback to be used when printing the exception's stack trace.
|
||||
This must be a traceback object, such as found in "sys.exc_traceback".
|
||||
When omitted or given as "None", the old behavior (to generate a stack
|
||||
trace entry for the current stack frame) is used.
|
||||
|
||||
- Improved X11 and Motif support, by Sjoerd Mullender. This extension
|
||||
is being maintained and distributed separately.
|
||||
The tokenizer is now more tolerant of alien whitespace. Control-L in
|
||||
the leading whitespace of a line resets the column number to zero,
|
||||
while Control-R just before the end of the line is ignored.
|
||||
|
||||
- Improved support for the Apple Macintosh, in part by Jack Jansen,
|
||||
e.g. interfaces to (a few) resource mananger functions, get/set file
|
||||
type and creator, gestalt, sound manager, speech manager, MacTCP, comm
|
||||
toolbox, and the think C console library. This is being maintained
|
||||
and distributed separately.
|
||||
Changes to Built-in Operations
|
||||
==============================
|
||||
|
||||
- Improved version for Windows NT, by Mark Hammond. This is being
|
||||
maintained and distributed separately.
|
||||
For file objects, "f.read(0)" and "f.readline(0)" now return an empty
|
||||
string rather than reading an unlimited number of bytes. For the
|
||||
latter, omit the argument altogether or pass a negative value.
|
||||
|
||||
- Used autoconf 2.0 to generate the configure script. Adapted
|
||||
configure.in to use the new features in autoconf 2.0.
|
||||
A new system variable, "sys.platform", has been added. It specifies
|
||||
the current platform, e.g. "sunos5" or "linux1".
|
||||
|
||||
- It now builds on the NeXT without intervention, even on the 3.3
|
||||
Sparc pre-release.
|
||||
The built-in functions "input()" and "raw_input()" now use the GNU
|
||||
readline library when it has been configured (formerly, only
|
||||
interactive input to the interpreter itself was read using GNU
|
||||
readline). The GNU readline library provides elaborate line editing
|
||||
and history. The Python debugger ("pdb") is the first beneficiary of
|
||||
this change.
|
||||
|
||||
- Characters passed to isspace() and friends are masked to nonnegative
|
||||
values.
|
||||
Two new built-in functions, "globals()" and "locals()", provide access
|
||||
to dictionaries containming current global and local variables,
|
||||
respectively. (These augment rather than replace "vars()", which
|
||||
returns the current local variables when called without an argument,
|
||||
and a module's global variables when called with an argument of type
|
||||
module.)
|
||||
|
||||
- Correctly compute pow(-3.0, 3).
|
||||
The built-in function "compile()" now takes a third possible value for
|
||||
the kind of code to be compiled: specifying "'single'" generates code
|
||||
for a single interactive statement, which prints the output of
|
||||
expression statements that evaluate to something else than "None".
|
||||
|
||||
- Fix portability problems with getopt (configure now checks for a
|
||||
non-GNU getopt).
|
||||
Library Changes
|
||||
===============
|
||||
|
||||
- Don't add frozenmain.o to libPython.a.
|
||||
There are new module "ni" and "ihooks" that support importing modules
|
||||
with hierarchical names such as "A.B.C". This is enabled by writing
|
||||
"import ni; ni.ni()" at the very top of the main program. These
|
||||
modules are amply documented in the Python source.
|
||||
|
||||
- Exceptions can now be classes. ALl built-in exceptions are still
|
||||
string objects, but this will change in the future.
|
||||
The module "rexec" has been rewritten (incompatibly) to define a class
|
||||
and to use "ihooks".
|
||||
|
||||
- The socket module exports a long list of socket related symbols.
|
||||
(More built-in modules will export their symbolic constants instead of
|
||||
relying on a separately generated Python module.)
|
||||
The "string.split()" and "string.splitfields()" functions are now the
|
||||
same function (the presence or absence of the second argument
|
||||
determines which operation is invoked); similar for "string.join()"
|
||||
and "string.joinfields()".
|
||||
|
||||
- When a module object is deleted, it clears out its own dictionary.
|
||||
This fixes a circularity in the references between functions and
|
||||
their global dictionary.
|
||||
The "Tkinter" module and its helper "Dialog" have been revamped to use
|
||||
keyword arguments. Tk 4.0 is now the standard. A new module
|
||||
"FileDialog" has been added which implements standard file selection
|
||||
dialogs.
|
||||
|
||||
- Changed the error handling by [new]getargs() e.g. for "O&".
|
||||
The optional built-in modules "dbm" and "gdbm" are more coordinated
|
||||
--- their "open()" functions now take the same values for their "flag"
|
||||
argument, and the "flag" and "mode" argument have default values (to
|
||||
open the database for reading only, and to create the database with
|
||||
mode "0666" minuse the umask, respectively). The memory leaks have
|
||||
finally been fixed.
|
||||
|
||||
- Dynamic loading of modules using shared libraries is supported for
|
||||
several new platforms.
|
||||
A new dbm-like module, "bsddb", has been added, which uses the BSD DB
|
||||
package's hash method.
|
||||
|
||||
- Support "O&", "[...]" and "{...}" in mkvalue().
|
||||
A portable (though slow) dbm-clone, implemented in Python, has been
|
||||
added for systems where none of the above is provided. It is aptly
|
||||
dubbed "dumbdbm".
|
||||
|
||||
- Extension to findmethod(): findmethodinchain() (where a chain is a
|
||||
linked list of methodlist arrays). The calling interface for
|
||||
findmethod() has changed: it now gets a pointer to the (static!)
|
||||
methodlist structure rather than just to the function name -- this
|
||||
saves copying flags etc. into the (short-lived) method object.
|
||||
The module "anydbm" provides a unified interface to "bsddb", "gdbm",
|
||||
"dbm", and "dumbdbm", choosing the first one available.
|
||||
|
||||
- The callable() function is now public.
|
||||
A new extension module, "binascii", provides a variety of operations
|
||||
for conversion of text-encoded binary data.
|
||||
|
||||
- Object types can define a few new operations by setting function
|
||||
pointers in the type object structure: tp_call defines how an object
|
||||
is called, and tp_str defines how an object's str() is computed.
|
||||
There are three new or rewritten companion modules implemented in
|
||||
Python that can encode and decode the most common such formats: "uu"
|
||||
(uuencode), "base64" and "binhex".
|
||||
|
||||
--Guido van Rossum, CWI, Amsterdam <mailto:guido@cwi.nl>
|
||||
<http://www.cwi.nl/~guido/>
|
||||
A module to handle the MIME encoding quoted-printable has also been
|
||||
added: "quopri".
|
||||
|
||||
The parser module (which provides an interface to the Python parser's
|
||||
abstract syntax trees) has been rewritten (incompatibly) by Fred
|
||||
Drake. It now lets you change the parse tree and compile the result!
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
The dynamic module loader recognizes the fact that different filenames
|
||||
point to the same shared library and loads the library only once, so
|
||||
you can have a single shared library that defines multiple modules.
|
||||
(SunOS / SVR4 style shared libraries only.)
|
||||
|
||||
Jim Fulton's ``abstract object interface'' has been incorporated into
|
||||
the run-time API. For more detailes, read the files
|
||||
"Include/abstract.h" and "Objects/abstract.c".
|
||||
|
||||
The Macintosh version is much more robust now.
|
||||
|
||||
Numerous things I have forgotten or that are so obscure no-one will
|
||||
notice them anyway :-)
|
||||
|
|
Loading…
Reference in New Issue