| 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/> |