From 5e639d446c638b794a3e6e6fa448d5a81b544763 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 11 Oct 1995 18:03:13 +0000 Subject: [PATCH] transcribed changes from tut.tex --- Misc/NEWS | 229 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 119 insertions(+), 110 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 6a587128d51..f5d1b4f45ef 100644 --- a/Misc/NEWS +++ b/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 - +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 :-)