blob: 6a587128d515206f48748d50a23f52f9debf8dd2 [file] [log] [blame]
Guido van Rossum635649f1994-11-10 23:04:51 +00001===================================
Guido van Rossum5426ab31995-01-17 17:00:47 +00002==> Release 1.2 <==
Guido van Rossum635649f1994-11-10 23:04:51 +00003===================================
4
Guido van Rossum0082c1a1995-04-10 11:52:44 +00005- 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 Rossum635649f1994-11-10 23:04:51 +000017
Guido van Rossum0082c1a1995-04-10 11:52:44 +000018- The Library Reference has been restructured, and many new and
19existing modules are now documented, in particular the debugger and
20the profiler, as well as the persistency and the WWW/Internet support
21modules.
Guido van Rossum635649f1994-11-10 23:04:51 +000022
Guido van Rossum0082c1a1995-04-10 11:52:44 +000023- All known bugs have been fixed. For example the pow(2,2,3L) bug on
24Linux has been fixed. Also the re-entrancy problems with __del__ have
25been fixed.
26
27- All known memory leaks have been fixed.
Guido van Rossum635649f1994-11-10 23:04:51 +000028
Guido van Rossum5426ab31995-01-17 17:00:47 +000029- Phase 2 of the Great Renaming has been executed. The header files
30now use the new names (PyObject instead of object, etc.). The linker
31also sees the new names. Most source files still use the old names,
32by virtue of the rename2.h header file. If you include Python.h, you
33only see the new names. Dynamically linked modules have to be
Guido van Rossum0082c1a1995-04-10 11:52:44 +000034recompiled. (Phase 3, fixing the rest of the sources, will be
35executed gradually with the release later versions.)
Guido van Rossum061f1821994-10-06 16:03:45 +000036
Guido van Rossum5426ab31995-01-17 17:00:47 +000037- The hooks for implementing "safe-python" (better called "restricted
38execution") are in place. Specifically, the import statement is
39implemented by calling the built-in function __import__, and the
40built-in names used in a particular scope are taken from the
41dictionary __builtins__ in that scope's global dictionary. See also
Guido van Rossum0082c1a1995-04-10 11:52:44 +000042the new (unsupported, undocumented) module rexec.py.
Guido van Rossum061f1821994-10-06 16:03:45 +000043
Guido van Rossum5426ab31995-01-17 17:00:47 +000044- The import statement now supports the syntax "import a.b.c" and
Guido van Rossum0082c1a1995-04-10 11:52:44 +000045"from a.b.c import name". No officially supported implementation
46exists, but one can be prototyped by replacing the built-in __import__
47function. A proposal by Ken Manheimer is provided as newimp.py.
Guido van Rossum061f1821994-10-06 16:03:45 +000048
Guido van Rossum5426ab31995-01-17 17:00:47 +000049- 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 Rossum0082c1a1995-04-10 11:52:44 +000051"imp" (see the library reference manual). All dynamic loading
52machinery is moved to the new file importdl.c.
Guido van Rossumac5a4e31994-10-11 15:04:57 +000053
Guido van Rossum0082c1a1995-04-10 11:52:44 +000054- Persistent storage is supported through the use of the modules
55"pickle" and "shelve" (implemented in Python). There's also a "copy"
56module implementing deepcopy and normal (shallow) copy operations.
57See the library reference manual.
Guido van Rossum061f1821994-10-06 16:03:45 +000058
Guido van Rossum5426ab31995-01-17 17:00:47 +000059- Documentation strings for many objects types are accessible through
60the __doc__ attribute. Modules, classes and functions support special
61syntax to initialize the __doc__ attribute: if the first statement
62consists of just a string literal, that string literal becomes the
63value of the __doc__ attribute. The default __doc__ attribute is
64None. Documentation strings are also supported for built-in
65functions, types and modules; however this feature hasn't been widely
Guido van Rossum0082c1a1995-04-10 11:52:44 +000066used yet. See the 'new' module for an example. (Basically, the type
67object's tp_doc field contains the doc string for the type, and the
684th member of the methodlist structure contains the doc string for the
69method.)
Guido van Rossum061f1821994-10-06 16:03:45 +000070
Guido van Rossum5426ab31995-01-17 17:00:47 +000071- The __coerce__ and __cmp__ methods for user-defined classes once
72again work as expected. As an example, there's a new standard class
73Complex in the library.
Guido van Rossum061f1821994-10-06 16:03:45 +000074
Guido van Rossum5426ab31995-01-17 17:00:47 +000075- The functions posix.popen() and posix.fdopen() now have an optional
76third argument to specify the buffer size, and default their second
77(mode) argument to 'r' -- in analogy to the builtin open() function.
Guido van Rossum0082c1a1995-04-10 11:52:44 +000078The same applies to posixfile.open() and the socket method makefile().
Guido van Rossum061f1821994-10-06 16:03:45 +000079
Guido van Rossum0082c1a1995-04-10 11:52:44 +000080- 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
84is being maintained and distributed separately.
85
86- Improved support for the Apple Macintosh, in part by Jack Jansen,
87e.g. interfaces to (a few) resource mananger functions, get/set file
88type and creator, gestalt, sound manager, speech manager, MacTCP, comm
89toolbox, and the think C console library. This is being maintained
90and distributed separately.
91
92- Improved version for Windows NT, by Mark Hammond. This is being
93maintained and distributed separately.
Guido van Rossum061f1821994-10-06 16:03:45 +000094
Guido van Rossum5426ab31995-01-17 17:00:47 +000095- Used autoconf 2.0 to generate the configure script. Adapted
96configure.in to use the new features in autoconf 2.0.
Guido van Rossum061f1821994-10-06 16:03:45 +000097
Guido van Rossum0082c1a1995-04-10 11:52:44 +000098- It now builds on the NeXT without intervention, even on the 3.3
99Sparc pre-release.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000100
101- Characters passed to isspace() and friends are masked to nonnegative
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000102values.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000103
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000104- Correctly compute pow(-3.0, 3).
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000105
106- Fix portability problems with getopt (configure now checks for a
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000107non-GNU getopt).
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000108
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000109- Don't add frozenmain.o to libPython.a.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000110
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000111- Exceptions can now be classes. ALl built-in exceptions are still
112string objects, but this will change in the future.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000113
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000114- The socket module exports a long list of socket related symbols.
115(More built-in modules will export their symbolic constants instead of
116relying on a separately generated Python module.)
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000117
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000118- When a module object is deleted, it clears out its own dictionary.
119This fixes a circularity in the references between functions and
120their global dictionary.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000121
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000122- Changed the error handling by [new]getargs() e.g. for "O&".
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000123
124- Dynamic loading of modules using shared libraries is supported for
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000125several new platforms.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000126
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000127- Support "O&", "[...]" and "{...}" in mkvalue().
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000128
129- Extension to findmethod(): findmethodinchain() (where a chain is a
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000130linked list of methodlist arrays). The calling interface for
131findmethod() has changed: it now gets a pointer to the (static!)
132methodlist structure rather than just to the function name -- this
133saves copying flags etc. into the (short-lived) method object.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000134
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000135- The callable() function is now public.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000136
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000137- Object types can define a few new operations by setting function
138pointers in the type object structure: tp_call defines how an object
139is called, and tp_str defines how an object's str() is computed.
Guido van Rossum04cba5b1995-03-09 14:44:51 +0000140
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000141--Guido van Rossum, CWI, Amsterdam <mailto:guido@cwi.nl>
142<http://www.cwi.nl/~guido/>