Guido van Rossum | 635649f | 1994-11-10 23:04:51 +0000 | [diff] [blame] | 1 | =================================== |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 2 | ==> Release 1.2 <== |
Guido van Rossum | 635649f | 1994-11-10 23:04:51 +0000 | [diff] [blame] | 3 | =================================== |
| 4 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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) |
Guido van Rossum | 635649f | 1994-11-10 23:04:51 +0000 | [diff] [blame] | 17 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 635649f | 1994-11-10 23:04:51 +0000 | [diff] [blame] | 22 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 635649f | 1994-11-10 23:04:51 +0000 | [diff] [blame] | 28 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 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 |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 34 | recompiled. (Phase 3, fixing the rest of the sources, will be |
| 35 | executed gradually with the release later versions.) |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 36 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 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 |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 42 | the new (unsupported, undocumented) module rexec.py. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 43 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 44 | - The import statement now supports the syntax "import a.b.c" and |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 48 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 49 | - All machinery used by the import statement (or the built-in |
| 50 | __import__ function) is now exposed through the new built-in module |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 51 | "imp" (see the library reference manual). All dynamic loading |
| 52 | machinery is moved to the new file importdl.c. |
Guido van Rossum | ac5a4e3 | 1994-10-11 15:04:57 +0000 | [diff] [blame] | 53 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 58 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 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 |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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.) |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 70 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 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. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 74 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 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. |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 78 | The same applies to posixfile.open() and the socket method makefile(). |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 79 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 94 | |
Guido van Rossum | 5426ab3 | 1995-01-17 17:00:47 +0000 | [diff] [blame] | 95 | - Used autoconf 2.0 to generate the configure script. Adapted |
| 96 | configure.in to use the new features in autoconf 2.0. |
Guido van Rossum | 061f182 | 1994-10-06 16:03:45 +0000 | [diff] [blame] | 97 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 98 | - It now builds on the NeXT without intervention, even on the 3.3 |
| 99 | Sparc pre-release. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 100 | |
| 101 | - Characters passed to isspace() and friends are masked to nonnegative |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 102 | values. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 103 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 104 | - Correctly compute pow(-3.0, 3). |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 105 | |
| 106 | - Fix portability problems with getopt (configure now checks for a |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 107 | non-GNU getopt). |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 108 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 109 | - Don't add frozenmain.o to libPython.a. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 110 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 111 | - Exceptions can now be classes. ALl built-in exceptions are still |
| 112 | string objects, but this will change in the future. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 113 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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.) |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 117 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 121 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 122 | - Changed the error handling by [new]getargs() e.g. for "O&". |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 123 | |
| 124 | - Dynamic loading of modules using shared libraries is supported for |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 125 | several new platforms. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 126 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 127 | - Support "O&", "[...]" and "{...}" in mkvalue(). |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 128 | |
| 129 | - Extension to findmethod(): findmethodinchain() (where a chain is a |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 134 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 135 | - The callable() function is now public. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 136 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 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. |
Guido van Rossum | 04cba5b | 1995-03-09 14:44:51 +0000 | [diff] [blame] | 140 | |
Guido van Rossum | 0082c1a | 1995-04-10 11:52:44 +0000 | [diff] [blame^] | 141 | --Guido van Rossum, CWI, Amsterdam <mailto:guido@cwi.nl> |
| 142 | <http://www.cwi.nl/~guido/> |