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