blob: 3515d8f6f19ace8d23001e563f1d1f1acc7edaee [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 Rossum635649f1994-11-10 23:04:51 +00005
Guido van Rossum04cba5b1995-03-09 14:44:51 +00006- Virtually all known bugs have been fixed. For example the
7pow(2,2,3L) bug on Linux has been fixed. Also the re-entrancy
8problems with __del__ have been fixed.
Guido van Rossum635649f1994-11-10 23:04:51 +00009
Guido van Rossum5426ab31995-01-17 17:00:47 +000010- Most known memory leaks have been fixed.
Guido van Rossum635649f1994-11-10 23:04:51 +000011
Guido van Rossum5426ab31995-01-17 17:00:47 +000012- Phase 2 of the Great Renaming has been executed. The header files
13now use the new names (PyObject instead of object, etc.). The linker
14also sees the new names. Most source files still use the old names,
15by virtue of the rename2.h header file. If you include Python.h, you
16only see the new names. Dynamically linked modules have to be
17recompiled.
Guido van Rossum061f1821994-10-06 16:03:45 +000018
Guido van Rossum5426ab31995-01-17 17:00:47 +000019- The hooks for implementing "safe-python" (better called "restricted
20execution") are in place. Specifically, the import statement is
21implemented by calling the built-in function __import__, and the
22built-in names used in a particular scope are taken from the
23dictionary __builtins__ in that scope's global dictionary. See also
24the new module rexec.py.
Guido van Rossum061f1821994-10-06 16:03:45 +000025
Guido van Rossum5426ab31995-01-17 17:00:47 +000026- The import statement now supports the syntax "import a.b.c" and
27"from a.b.c import name". No meaningful implementation exists, but
28one can be prototyped by replacing the built-in __import__ function.
Guido van Rossum061f1821994-10-06 16:03:45 +000029
Guido van Rossum5426ab31995-01-17 17:00:47 +000030- All machinery used by the import statement (or the built-in
31__import__ function) is now exposed through the new built-in module
32"imp". All dynamic loading machinery is moved to the new file
33importdl.c.
Guido van Rossumac5a4e31994-10-11 15:04:57 +000034
Guido van Rossum5426ab31995-01-17 17:00:47 +000035- Persistent storage is supported through the use of the module
36"pickle" and "shelve" (implemented in Python). Read the .py files for
37more info. There's also a "copy" module implementing deepcopy and
38normal (shallow) copy operations.
Guido van Rossum061f1821994-10-06 16:03:45 +000039
Guido van Rossum5426ab31995-01-17 17:00:47 +000040- Documentation strings for many objects types are accessible through
41the __doc__ attribute. Modules, classes and functions support special
42syntax to initialize the __doc__ attribute: if the first statement
43consists of just a string literal, that string literal becomes the
44value of the __doc__ attribute. The default __doc__ attribute is
45None. Documentation strings are also supported for built-in
46functions, types and modules; however this feature hasn't been widely
47used yet. See the 'new' module for an example.
Guido van Rossum061f1821994-10-06 16:03:45 +000048
Guido van Rossum5426ab31995-01-17 17:00:47 +000049- The __coerce__ and __cmp__ methods for user-defined classes once
50again work as expected. As an example, there's a new standard class
51Complex in the library.
Guido van Rossum061f1821994-10-06 16:03:45 +000052
Guido van Rossum5426ab31995-01-17 17:00:47 +000053- The functions posix.popen() and posix.fdopen() now have an optional
54third argument to specify the buffer size, and default their second
55(mode) argument to 'r' -- in analogy to the builtin open() function.
Guido van Rossum061f1821994-10-06 16:03:45 +000056
Guido van Rossum5426ab31995-01-17 17:00:47 +000057- Improved support for the Apple Macintosh, e.g. interfaces to (a few)
58resource mananger functions, get/set file type and creator, gestalt,
59sound manager, speech manager, MacTCP, comm toolbox, and the think C
60console library. (Sorry, no Mac binary yet. Will try to produce one
61shortly, plus instructions on how to compile with THINK C 6.0.)
Guido van Rossum061f1821994-10-06 16:03:45 +000062
Guido van Rossum5426ab31995-01-17 17:00:47 +000063- Used autoconf 2.0 to generate the configure script. Adapted
64configure.in to use the new features in autoconf 2.0.
Guido van Rossum061f1821994-10-06 16:03:45 +000065
Guido van Rossum04cba5b1995-03-09 14:44:51 +000066- It should now build on the NeXT without intervention, even on the
673.3 Sparc pre-release.
68
69- __import__ is now called with 4 arguments:
70(modulename, globals, locals, fromlist)
71
72- Characters passed to isspace() and friends are masked to nonnegative
73values
74
75- Correctly compute pow(-3.0, 3)
76
77- Fix portability problems with getopt (configure now checks for a
78non-GNU getopt)
79
80- Don't add frozenmain.o to libPython.a
81
82- Exceptions can now be classes
83
84- The socket module exports a long list of socket related symbols
85
86- Lots of Mac specific changes (this area of the source is not
87completed!)
88
89- When a module object is deleted, it clears out its own dictionary
90(this fixes a circularity in the references between functions and
91their global dictionary)
92
93- Changed the error handling by [new]getargs() e.g. for "O&"
94
95- Dynamic loading of modules using shared libraries is supported for
96several new platforms
97
98- Support "O&" in mkvalue()
99
100- Extension to findmethod(): findmethodinchain() (where a chain is a
101linked list of methodlist arrays)
102
103- Callable() function is now public
104
105
106Known bugs still remaining:
107---------------------------
108
109- There's still a memory leak in threads; bigger when
110thread.exit_thread() is used
111
Guido van Rossum061f1821994-10-06 16:03:45 +0000112
Guido van Rossuma85d0531994-01-26 17:24:14 +0000113--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>
114URL: <http://www.cwi.nl/cwi/people/Guido.van.Rossum.html>