Mercurial > cpython-lru_cache-weakref
annotate Misc/HISTORY @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | a3b09a71162b |
| children | 7254ee2a8abd |
| rev | line source |
|---|---|
| 1529 | 1 Python history |
| 2 -------------- | |
| 3 | |
| 4 This file contains the release messages for previous Python releases | |
| 5 (slightly edited to adapt them to the format of this file). As you | |
| 6 read on you go back to the dark ages of Python's history. | |
| 7 | |
|
1948
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
8 |
|
3866
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
9 ===================================== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
10 ==> Release 1.3 (13 October 1995) <== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
11 ===================================== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
12 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
13 Major change |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
14 ============ |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
15 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
16 Two words: Keyword Arguments. See the first section of Chapter 12 of |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
17 the Tutorial. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
18 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
19 (The rest of this file is textually the same as the remaining sections |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
20 of that chapter.) |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
21 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
22 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
23 Changes to the WWW and Internet tools |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
24 ===================================== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
25 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
26 The "htmllib" module has been rewritten in an incompatible fashion. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
27 The new version is considerably more complete (HTML 2.0 except forms, |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
28 but including all ISO-8859-1 entity definitions), and easy to use. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
29 Small changes to "sgmllib" have also been made, to better match the |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
30 tokenization of HTML as recognized by other web tools. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
31 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
32 A new module "formatter" has been added, for use with the new |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
33 "htmllib" module. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
34 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
35 The "urllib"and "httplib" modules have been changed somewhat to allow |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
36 overriding unknown URL types and to support authentication. They now |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
37 use "mimetools.Message" instead of "rfc822.Message" to parse headers. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
38 The "endrequest()" method has been removed from the HTTP class since |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
39 it breaks the interaction with some servers. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
40 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
41 The "rfc822.Message" class has been changed to allow a flag to be |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
42 passed in that says that the file is unseekable. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
43 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
44 The "ftplib" module has been fixed to be (hopefully) more robust on |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
45 Linux. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
46 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
47 Several new operations that are optionally supported by servers have |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
48 been added to "nntplib": "xover", "xgtitle", "xpath" and "date". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
49 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
50 Other Language Changes |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
51 ====================== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
52 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
53 The "raise" statement now takes an optional argument which specifies |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
54 the traceback to be used when printing the exception's stack trace. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
55 This must be a traceback object, such as found in "sys.exc_traceback". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
56 When omitted or given as "None", the old behavior (to generate a stack |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
57 trace entry for the current stack frame) is used. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
58 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
59 The tokenizer is now more tolerant of alien whitespace. Control-L in |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
60 the leading whitespace of a line resets the column number to zero, |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
61 while Control-R just before the end of the line is ignored. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
62 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
63 Changes to Built-in Operations |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
64 ============================== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
65 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
66 For file objects, "f.read(0)" and "f.readline(0)" now return an empty |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
67 string rather than reading an unlimited number of bytes. For the |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
68 latter, omit the argument altogether or pass a negative value. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
69 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
70 A new system variable, "sys.platform", has been added. It specifies |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
71 the current platform, e.g. "sunos5" or "linux1". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
72 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
73 The built-in functions "input()" and "raw_input()" now use the GNU |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
74 readline library when it has been configured (formerly, only |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
75 interactive input to the interpreter itself was read using GNU |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
76 readline). The GNU readline library provides elaborate line editing |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
77 and history. The Python debugger ("pdb") is the first beneficiary of |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
78 this change. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
79 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
80 Two new built-in functions, "globals()" and "locals()", provide access |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
81 to dictionaries containming current global and local variables, |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
82 respectively. (These augment rather than replace "vars()", which |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
83 returns the current local variables when called without an argument, |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
84 and a module's global variables when called with an argument of type |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
85 module.) |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
86 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
87 The built-in function "compile()" now takes a third possible value for |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
88 the kind of code to be compiled: specifying "'single'" generates code |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
89 for a single interactive statement, which prints the output of |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
90 expression statements that evaluate to something else than "None". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
91 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
92 Library Changes |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
93 =============== |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
94 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
95 There are new module "ni" and "ihooks" that support importing modules |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
96 with hierarchical names such as "A.B.C". This is enabled by writing |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
97 "import ni; ni.ni()" at the very top of the main program. These |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
98 modules are amply documented in the Python source. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
99 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
100 The module "rexec" has been rewritten (incompatibly) to define a class |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
101 and to use "ihooks". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
102 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
103 The "string.split()" and "string.splitfields()" functions are now the |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
104 same function (the presence or absence of the second argument |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
105 determines which operation is invoked); similar for "string.join()" |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
106 and "string.joinfields()". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
107 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
108 The "Tkinter" module and its helper "Dialog" have been revamped to use |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
109 keyword arguments. Tk 4.0 is now the standard. A new module |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
110 "FileDialog" has been added which implements standard file selection |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
111 dialogs. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
112 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
113 The optional built-in modules "dbm" and "gdbm" are more coordinated |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
114 --- their "open()" functions now take the same values for their "flag" |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
115 argument, and the "flag" and "mode" argument have default values (to |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
116 open the database for reading only, and to create the database with |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
117 mode "0666" minuse the umask, respectively). The memory leaks have |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
118 finally been fixed. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
119 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
120 A new dbm-like module, "bsddb", has been added, which uses the BSD DB |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
121 package's hash method. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
122 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
123 A portable (though slow) dbm-clone, implemented in Python, has been |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
124 added for systems where none of the above is provided. It is aptly |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
125 dubbed "dumbdbm". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
126 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
127 The module "anydbm" provides a unified interface to "bsddb", "gdbm", |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
128 "dbm", and "dumbdbm", choosing the first one available. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
129 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
130 A new extension module, "binascii", provides a variety of operations |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
131 for conversion of text-encoded binary data. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
132 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
133 There are three new or rewritten companion modules implemented in |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
134 Python that can encode and decode the most common such formats: "uu" |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
135 (uuencode), "base64" and "binhex". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
136 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
137 A module to handle the MIME encoding quoted-printable has also been |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
138 added: "quopri". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
139 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
140 The parser module (which provides an interface to the Python parser's |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
141 abstract syntax trees) has been rewritten (incompatibly) by Fred |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
142 Drake. It now lets you change the parse tree and compile the result! |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
143 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
144 The \code{syslog} module has been upgraded and documented. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
145 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
146 Other Changes |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
147 ============= |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
148 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
149 The dynamic module loader recognizes the fact that different filenames |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
150 point to the same shared library and loads the library only once, so |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
151 you can have a single shared library that defines multiple modules. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
152 (SunOS / SVR4 style shared libraries only.) |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
153 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
154 Jim Fulton's ``abstract object interface'' has been incorporated into |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
155 the run-time API. For more detailes, read the files |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
156 "Include/abstract.h" and "Objects/abstract.c". |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
157 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
158 The Macintosh version is much more robust now. |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
159 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
160 Numerous things I have forgotten or that are so obscure no-one will |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
161 notice them anyway :-) |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
162 |
|
a3b09a71162b
Moved 1.3 news to HISTORY; put some 1.4 news in NEWS
Guido van Rossum <guido@python.org>
parents:
3179
diff
changeset
|
163 |
|
2067
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
164 =================================== |
| 3179 | 165 ==> Release 1.2 (13 April 1995) <== |
| 166 =================================== | |
| 167 | |
| 168 - Changes to Misc/python-mode.el: | |
| 169 - Wrapping and indentation within triple quote strings should work | |
| 170 properly now. | |
| 171 - `Standard' bug reporting mechanism (use C-c C-b) | |
| 172 - py-mark-block was moved to C-c C-m | |
| 173 - C-c C-v shows you the python-mode version | |
| 174 - a basic python-font-lock-keywords has been added for Emacs 19 | |
| 175 font-lock colorizations. | |
| 176 - proper interaction with pending-del and del-sel modes. | |
| 177 - New py-electric-colon (:) command for improved outdenting. Also | |
| 178 py-indent-line (TAB) should handle outdented lines better. | |
| 179 - New commands py-outdent-left (C-c C-l) and py-indent-right (C-c C-r) | |
| 180 | |
| 181 - The Library Reference has been restructured, and many new and | |
| 182 existing modules are now documented, in particular the debugger and | |
| 183 the profiler, as well as the persistency and the WWW/Internet support | |
| 184 modules. | |
| 185 | |
| 186 - All known bugs have been fixed. For example the pow(2,2,3L) bug on | |
| 187 Linux has been fixed. Also the re-entrancy problems with __del__ have | |
| 188 been fixed. | |
| 189 | |
| 190 - All known memory leaks have been fixed. | |
| 191 | |
| 192 - Phase 2 of the Great Renaming has been executed. The header files | |
| 193 now use the new names (PyObject instead of object, etc.). The linker | |
| 194 also sees the new names. Most source files still use the old names, | |
| 195 by virtue of the rename2.h header file. If you include Python.h, you | |
| 196 only see the new names. Dynamically linked modules have to be | |
| 197 recompiled. (Phase 3, fixing the rest of the sources, will be | |
| 198 executed gradually with the release later versions.) | |
| 199 | |
| 200 - The hooks for implementing "safe-python" (better called "restricted | |
| 201 execution") are in place. Specifically, the import statement is | |
| 202 implemented by calling the built-in function __import__, and the | |
| 203 built-in names used in a particular scope are taken from the | |
| 204 dictionary __builtins__ in that scope's global dictionary. See also | |
| 205 the new (unsupported, undocumented) module rexec.py. | |
| 206 | |
| 207 - The import statement now supports the syntax "import a.b.c" and | |
| 208 "from a.b.c import name". No officially supported implementation | |
| 209 exists, but one can be prototyped by replacing the built-in __import__ | |
| 210 function. A proposal by Ken Manheimer is provided as newimp.py. | |
| 211 | |
| 212 - All machinery used by the import statement (or the built-in | |
| 213 __import__ function) is now exposed through the new built-in module | |
| 214 "imp" (see the library reference manual). All dynamic loading | |
| 215 machinery is moved to the new file importdl.c. | |
| 216 | |
| 217 - Persistent storage is supported through the use of the modules | |
| 218 "pickle" and "shelve" (implemented in Python). There's also a "copy" | |
| 219 module implementing deepcopy and normal (shallow) copy operations. | |
| 220 See the library reference manual. | |
| 221 | |
| 222 - Documentation strings for many objects types are accessible through | |
| 223 the __doc__ attribute. Modules, classes and functions support special | |
| 224 syntax to initialize the __doc__ attribute: if the first statement | |
| 225 consists of just a string literal, that string literal becomes the | |
| 226 value of the __doc__ attribute. The default __doc__ attribute is | |
| 227 None. Documentation strings are also supported for built-in | |
| 228 functions, types and modules; however this feature hasn't been widely | |
| 229 used yet. See the 'new' module for an example. (Basically, the type | |
| 230 object's tp_doc field contains the doc string for the type, and the | |
| 231 4th member of the methodlist structure contains the doc string for the | |
| 232 method.) | |
| 233 | |
| 234 - The __coerce__ and __cmp__ methods for user-defined classes once | |
| 235 again work as expected. As an example, there's a new standard class | |
| 236 Complex in the library. | |
| 237 | |
| 238 - The functions posix.popen() and posix.fdopen() now have an optional | |
| 239 third argument to specify the buffer size, and default their second | |
| 240 (mode) argument to 'r' -- in analogy to the builtin open() function. | |
| 241 The same applies to posixfile.open() and the socket method makefile(). | |
| 242 | |
| 243 - The thread.exit_thread() function now raises SystemExit so that | |
| 244 'finally' clauses are honored and a memory leak is plugged. | |
| 245 | |
| 246 - Improved X11 and Motif support, by Sjoerd Mullender. This extension | |
| 247 is being maintained and distributed separately. | |
| 248 | |
| 249 - Improved support for the Apple Macintosh, in part by Jack Jansen, | |
| 250 e.g. interfaces to (a few) resource mananger functions, get/set file | |
| 251 type and creator, gestalt, sound manager, speech manager, MacTCP, comm | |
| 252 toolbox, and the think C console library. This is being maintained | |
| 253 and distributed separately. | |
| 254 | |
| 255 - Improved version for Windows NT, by Mark Hammond. This is being | |
| 256 maintained and distributed separately. | |
| 257 | |
| 258 - Used autoconf 2.0 to generate the configure script. Adapted | |
| 259 configure.in to use the new features in autoconf 2.0. | |
| 260 | |
| 261 - It now builds on the NeXT without intervention, even on the 3.3 | |
| 262 Sparc pre-release. | |
| 263 | |
| 264 - Characters passed to isspace() and friends are masked to nonnegative | |
| 265 values. | |
| 266 | |
| 267 - Correctly compute pow(-3.0, 3). | |
| 268 | |
| 269 - Fix portability problems with getopt (configure now checks for a | |
| 270 non-GNU getopt). | |
| 271 | |
| 272 - Don't add frozenmain.o to libPython.a. | |
| 273 | |
| 274 - Exceptions can now be classes. ALl built-in exceptions are still | |
| 275 string objects, but this will change in the future. | |
| 276 | |
| 277 - The socket module exports a long list of socket related symbols. | |
| 278 (More built-in modules will export their symbolic constants instead of | |
| 279 relying on a separately generated Python module.) | |
| 280 | |
| 281 - When a module object is deleted, it clears out its own dictionary. | |
| 282 This fixes a circularity in the references between functions and | |
| 283 their global dictionary. | |
| 284 | |
| 285 - Changed the error handling by [new]getargs() e.g. for "O&". | |
| 286 | |
| 287 - Dynamic loading of modules using shared libraries is supported for | |
| 288 several new platforms. | |
| 289 | |
| 290 - Support "O&", "[...]" and "{...}" in mkvalue(). | |
| 291 | |
| 292 - Extension to findmethod(): findmethodinchain() (where a chain is a | |
| 293 linked list of methodlist arrays). The calling interface for | |
| 294 findmethod() has changed: it now gets a pointer to the (static!) | |
| 295 methodlist structure rather than just to the function name -- this | |
| 296 saves copying flags etc. into the (short-lived) method object. | |
| 297 | |
| 298 - The callable() function is now public. | |
| 299 | |
| 300 - Object types can define a few new operations by setting function | |
| 301 pointers in the type object structure: tp_call defines how an object | |
| 302 is called, and tp_str defines how an object's str() is computed. | |
| 303 | |
| 304 | |
| 305 =================================== | |
|
2067
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
306 ==> Release 1.1.1 (10 Nov 1994) <== |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
307 =================================== |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
308 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
309 This is a pure bugfix release again. See the ChangeLog file for details. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
310 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
311 One exception: a few new features were added to tkinter. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
312 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
313 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
314 ================================= |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
315 ==> Release 1.1 (11 Oct 1994) <== |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
316 ================================= |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
317 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
318 This release adds several new features, improved configuration and |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
319 portability, and fixes more bugs than I can list here (including some |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
320 memory leaks). |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
321 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
322 The source compiles and runs out of the box on more platforms than |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
323 ever -- including Windows NT. Makefiles or projects for a variety of |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
324 non-UNIX platforms are provided. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
325 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
326 APOLOGY: some new features are badly documented or not at all. I had |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
327 the choice -- postpone the new release indefinitely, or release it |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
328 now, with working code but some undocumented areas. The problem with |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
329 postponing the release is that people continue to suffer from existing |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
330 bugs, and send me patches based on the previous release -- which I |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
331 can't apply directly because my own source has changed. Also, some |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
332 new modules (like signal) have been ready for release for quite some |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
333 time, and people are anxiously waiting for them. In the case of |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
334 signal, the interface is simple enough to figure out without |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
335 documentation (if you're anxious enough :-). In this case it was not |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
336 simple to release the module on its own, since it relies on many small |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
337 patches elsewhere in the source. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
338 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
339 For most new Python modules, the source code contains comments that |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
340 explain how to use them. Documentation for the Tk interface, written |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
341 by Matt Conway, is available as tkinter-doc.tar.gz from the Python |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
342 home and mirror ftp sites (see Misc/FAQ for ftp addresses). For the |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
343 new operator overloading facilities, have a look at Demo/classes: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
344 Complex.py and Rat.py show how to implement a numeric type without and |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
345 with __coerce__ method. Also have a look at the end of the Tutorial |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
346 document (Doc/tut.tex). If you're still confused: use the newsgroup |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
347 or mailing list. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
348 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
349 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
350 New language features: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
351 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
352 - More flexible operator overloading for user-defined classes |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
353 (INCOMPATIBLE WITH PREVIOUS VERSIONS!) See end of tutorial. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
354 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
355 - Classes can define methods named __getattr__, __setattr__ and |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
356 __delattr__ to trap attribute accesses. See end of tutorial. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
357 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
358 - Classes can define method __call__ so instances can be called |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
359 directly. See end of tutorial. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
360 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
361 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
362 New support facilities: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
363 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
364 - The Makefiles (for the base interpreter as well as for extensions) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
365 now support creating dynamically loadable modules if the platform |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
366 supports shared libraries. |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
367 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
368 - Passing the interpreter a .pyc file as script argument will execute |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
369 the code in that file. (On the Mac such files can be double-clicked!) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
370 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
371 - New Freeze script, to create independently distributable "binaries" |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
372 of Python programs -- look in Demo/freeze |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
373 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
374 - Improved h2py script (in Demo/scripts) follows #includes and |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
375 supports macros with one argument |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
376 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
377 - New module compileall generates .pyc files for all modules in a |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
378 directory (tree) without also executing them |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
379 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
380 - Threads should work on more platforms |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
381 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
382 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
383 New built-in modules: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
384 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
385 - tkinter (support for Tcl's Tk widget set) is now part of the base |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
386 distribution |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
387 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
388 - signal allows catching or ignoring UNIX signals (unfortunately still |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
389 undocumented -- any taker?) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
390 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
391 - termios provides portable access to POSIX tty settings |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
392 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
393 - curses provides an interface to the System V curses library |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
394 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
395 - syslog provides an interface to the (BSD?) syslog daemon |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
396 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
397 - 'new' provides interfaces to create new built-in object types |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
398 (e.g. modules and functions) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
399 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
400 - sybase provides an interface to SYBASE database |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
401 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
402 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
403 New/obsolete built-in methods: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
404 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
405 - callable(x) tests whether x can be called |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
406 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
407 - sockets now have a setblocking() method |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
408 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
409 - sockets no longer have an allowbroadcast() method |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
410 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
411 - socket methods send() and sendto() return byte count |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
412 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
413 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
414 New standard library modules: |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
415 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
416 - types.py defines standard names for built-in types, e.g. StringType |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
417 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
418 - urlparse.py parses URLs according to the latest Internet draft |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
419 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
420 - uu.py does uuencode/uudecode (not the fastest in the world, but |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
421 quicker than installing uuencode on a non-UNIX machine :-) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
422 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
423 - New, faster and more powerful profile module.py |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
424 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
425 - mhlib.py provides interface to MH folders and messages |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
426 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
427 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
428 New facilities for extension writers (unfortunately still |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
429 undocumented): |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
430 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
431 - newgetargs() supports optional arguments and improved error messages |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
432 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
433 - O!, O& O? formats for getargs allow more versatile type checking of |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
434 non-standard types |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
435 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
436 - can register pending asynchronous callback, to be called the next |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
437 time the Python VM begins a new instruction (Py_AddPendingCall) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
438 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
439 - can register cleanup routines to be called when Python exits |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
440 (Py_AtExit) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
441 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
442 - makesetup script understands C++ files in Setup file (use file.C |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
443 or file.cc) |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
444 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
445 - Make variable OPT is passed on to sub-Makefiles |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
446 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
447 - An init<module>() routine may signal an error by not entering |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
448 the module in the module table and raising an exception instead |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
449 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
450 - For long module names, instead of foobarbletchmodule.c you can |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
451 use foobarbletch.c |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
452 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
453 - getintvalue() and getfloatvalue() try to convert any object |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
454 instead of requiring an "intobject" or "floatobject" |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
455 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
456 - All the [new]getargs() formats that retrieve an integer value |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
457 will now also work if a float is passed |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
458 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
459 - C function listtuple() converts list to tuple, fast |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
460 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
461 - You should now call sigcheck() instead of intrcheck(); |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
462 sigcheck() also sets an exception when it returns nonzero |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
463 |
|
1b99451fa143
Moved 1.1 and 1.1.1 news here
Guido van Rossum <guido@python.org>
parents:
1948
diff
changeset
|
464 |
|
1948
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
465 ==================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
466 ==> Release 1.0.3 (14 July 1994) <== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
467 ==================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
468 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
469 This release consists entirely of bug fixes to the C sources; see the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
470 head of ../ChangeLog for a complete list. Most important bugs fixed: |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
471 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
472 - Sometimes the format operator (string%expr) would drop the last |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
473 character of the format string |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
474 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
475 - Tokenizer looped when last line did not end in \n |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
476 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
477 - Bug when triple-quoted string ended in quote plus newline |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
478 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
479 - Typo in socketmodule (listen) (== instead of =) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
480 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
481 - typing vars() at the >>> prompt would cause recursive output |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
482 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
483 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
484 ================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
485 ==> Release 1.0.2 (4 May 1994) <== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
486 ================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
487 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
488 Overview of the most visible changes. Bug fixes are not listed. See |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
489 also ChangeLog. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
490 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
491 Tokens |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
492 ------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
493 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
494 * String literals follow Standard C rules: they may be continued on |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
495 the next line using a backslash; adjacent literals are concatenated |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
496 at compile time. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
497 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
498 * A new kind of string literals, surrounded by triple quotes (""" or |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
499 '''), can be continued on the next line without a backslash. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
500 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
501 Syntax |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
502 ------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
503 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
504 * Function arguments may have a default value, e.g. def f(a, b=1); |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
505 defaults are evaluated at function definition time. This also applies |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
506 to lambda. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
507 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
508 * The try-except statement has an optional else clause, which is |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
509 executed when no exception occurs in the try clause. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
510 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
511 Interpreter |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
512 ----------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
513 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
514 * The result of a statement-level expression is no longer printed, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
515 except_ for expressions entered interactively. Consequently, the -k |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
516 command line option is gone. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
517 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
518 * The result of the last printed interactive expression is assigned to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
519 the variable '_'. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
520 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
521 * Access to implicit global variables has been speeded up by removing |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
522 an always-failing dictionary lookup in the dictionary of local |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
523 variables (mod suggested by Steve Makewski and Tim Peters). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
524 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
525 * There is a new command line option, -u, to force stdout and stderr |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
526 to be unbuffered. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
527 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
528 * Incorporated Steve Majewski's mods to import.c for dynamic loading |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
529 under AIX. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
530 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
531 * Fewer chances of dumping core when trying to reload or re-import |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
532 static built-in, dynamically loaded built-in, or frozen modules. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
533 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
534 * Loops over sequences now don't ask for the sequence's length when |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
535 they start, but try to access items 0, 1, 2, and so on until they hit |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
536 an IndexError. This makes it possible to create classes that generate |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
537 infinite or indefinite sequences a la Steve Majewski. This affects |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
538 for loops, the (not) in operator, and the built-in functions filter(), |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
539 map(), max(), min(), reduce(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
540 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
541 Changed Built-in operations |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
542 --------------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
543 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
544 * The '%' operator on strings (printf-style formatting) supports a new |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
545 feature (adapted from a patch by Donald Beaudry) to allow |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
546 '%(<key>)<format>' % {...} to take values from a dictionary by name |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
547 instead of from a tuple by position (see also the new function |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
548 vars()). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
549 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
550 * The '%s' formatting operator is changed to accept any type and |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
551 convert it to a string using str(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
552 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
553 * Dictionaries with more than 20,000 entries can now be created |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
554 (thanks to Steve Kirsch). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
555 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
556 New Built-in Functions |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
557 ---------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
558 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
559 * vars() returns a dictionary containing the local variables; vars(m) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
560 returns a dictionary containing the variables of module m. Note: |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
561 dir(x) is now equivalent to vars(x).keys(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
562 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
563 Changed Built-in Functions |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
564 -------------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
565 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
566 * open() has an optional third argument to specify the buffer size: 0 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
567 for unbuffered, 1 for line buffered, >1 for explicit buffer size, <0 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
568 for default. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
569 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
570 * open()'s second argument is now optional; it defaults to "r". |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
571 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
572 * apply() now checks that its second argument is indeed a tuple. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
573 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
574 New Built-in Modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
575 -------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
576 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
577 Changed Built-in Modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
578 ------------------------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
579 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
580 The thread module no longer supports exit_prog(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
581 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
582 New Python Modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
583 ------------------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
584 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
585 * Module addpack contains a standard interface to modify sys.path to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
586 find optional packages (groups of related modules). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
587 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
588 * Module urllib contains a number of functions to access |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
589 World-Wide-Web files specified by their URL. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
590 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
591 * Module httplib implements the client side of the HTTP protocol used |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
592 by World-Wide-Web servers. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
593 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
594 * Module gopherlib implements the client side of the Gopher protocol. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
595 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
596 * Module mailbox (by Jack Jansen) contains a parser for UNIX and MMDF |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
597 style mailbox files. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
598 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
599 * Module random contains various random distributions, e.g. gauss(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
600 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
601 * Module lockfile locks and unlocks open files using fcntl (inspired |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
602 by a similar module by Andy Bensky). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
603 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
604 * Module ntpath (by Jaap Vermeulen) implements path operations for |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
605 Windows/NT. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
606 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
607 * Module test_thread (in Lib/test) contains a small test set for the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
608 thread module. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
609 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
610 Changed Python Modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
611 ---------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
612 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
613 * The string module's expandvars() function is now documented and is |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
614 implemented in Python (using regular expressions) instead of forking |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
615 off a shell process. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
616 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
617 * Module rfc822 now supports accessing the header fields using the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
618 mapping/dictionary interface, e.g. h['subject']. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
619 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
620 * Module pdb now makes it possible to set a break on a function |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
621 (syntax: break <expression>, where <expression> yields a function |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
622 object). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
623 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
624 Changed Demos |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
625 ------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
626 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
627 * The Demo/scripts/freeze.py script is working again (thanks to Jaap |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
628 Vermeulen). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
629 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
630 New Demos |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
631 --------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
632 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
633 * Demo/threads/Generator.py is a proposed interface for restartable |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
634 functions a la Tim Peters. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
635 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
636 * Demo/scripts/newslist.py, by Quentin Stafford-Fraser, generates a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
637 directory full of HTML pages which between them contain links to all |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
638 the newsgroups available on your server. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
639 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
640 * Demo/dns contains a DNS (Domain Name Server) client. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
641 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
642 * Demo/lutz contains miscellaneous demos by Mark Lutz (e.g. psh.py, a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
643 nice enhanced Python shell!!!). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
644 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
645 * Demo/turing contains a Turing machine by Amrit Prem. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
646 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
647 Documentation |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
648 ------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
649 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
650 * Documented new language features mentioned above (but not all new |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
651 modules). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
652 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
653 * Added a chapter to the Tutorial describing recent additions to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
654 Python. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
655 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
656 * Clarified some sentences in the reference manual, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
657 e.g. break/continue, local/global scope, slice assignment. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
658 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
659 Source Structure |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
660 ---------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
661 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
662 * Moved Include/tokenizer.h to Parser/tokenizer.h. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
663 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
664 * Added Python/getopt.c for systems that don't have it. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
665 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
666 Emacs mode |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
667 ---------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
668 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
669 * Indentation of continuated lines is done more intelligently; |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
670 consequently the variable py-continuation-offset is gone. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
671 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
672 ======================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
673 ==> Release 1.0.1 (15 February 1994) <== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
674 ======================================== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
675 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
676 * Many portability fixes should make it painless to build Python on |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
677 several new platforms, e.g. NeXT, SEQUENT, WATCOM, DOS, and Windows. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
678 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
679 * Fixed test for <stdarg.h> -- this broke on some platforms. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
680 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
681 * Fixed test for shared library dynalic loading -- this broke on SunOS |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
682 4.x using the GNU loader. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
683 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
684 * Changed order and number of SVR4 networking libraries (it is now |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
685 -lsocket -linet -lnsl, if these libraries exist). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
686 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
687 * Installing the build intermediate stages with "make libainstall" now |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
688 also installs config.c.in, Setup and makesetup, which are used by the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
689 new Extensions mechanism. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
690 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
691 * Improved README file contains more hints and new troubleshooting |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
692 section. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
693 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
694 * The built-in module strop now defines fast versions of three more |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
695 functions of the standard string module: atoi(), atol() and atof(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
696 The strop versions of atoi() and atol() support an optional second |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
697 argument to specify the base (default 10). NOTE: you don't have to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
698 explicitly import strop to use the faster versions -- the string |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
699 module contains code to let versions from stop override the default |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
700 versions. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
701 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
702 * There is now a working Lib/dospath.py for those who use Python under |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
703 DOS (or Windows). Thanks, Jaap! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
704 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
705 * There is now a working Modules/dosmodule.c for DOS (or Windows) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
706 system calls. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
707 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
708 * Lib.os.py has been reorganized (making it ready for more operating |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
709 systems). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
710 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
711 * Lib/ospath.py is now obsolete (use os.path instead). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
712 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
713 * Many fixes to the tutorial to make it match Python 1.0. Thanks, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
714 Tim! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
715 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
716 * Fixed Doc/Makefile, Doc/README and various scripts there. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
717 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
718 * Added missing description of fdopen to Doc/libposix.tex. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
719 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
720 * Made cleanup() global, for the benefit of embedded applications. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
721 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
722 * Added parsing of addresses and dates to Lib/rfc822.py. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
723 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
724 * Small fixes to Lib/aifc.py, Lib/sunau.py, Lib/tzparse.py to make |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
725 them usable at all. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
726 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
727 * New module Lib/wave.py reads RIFF (*.wav) audio files. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
728 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
729 * Module Lib/filewin.py moved to Lib/stdwin/filewin.py where it |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
730 belongs. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
731 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
732 * New options and comments for Modules/makesetup (used by new |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
733 Extension mechanism). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
734 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
735 * Misc/HYPE contains text of announcement of 1.0.0 in comp.lang.misc |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
736 and elsewhere. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
737 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
738 * Fixed coredump in filter(None, 'abcdefg'). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
739 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
740 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
741 ======================================= |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
742 ==> Release 1.0.0 (26 January 1994) <== |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
743 ======================================= |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
744 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
745 As is traditional, so many things have changed that I can't pretend to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
746 be complete in these release notes, but I'll try anyway :-) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
747 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
748 Note that the very last section is labeled "remaining bugs". |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
749 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
750 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
751 Source organization and build process |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
752 ------------------------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
753 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
754 * The sources have finally been split: instead of a single src |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
755 subdirectory there are now separate directories Include, Parser, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
756 Grammar, Objects, Python and Modules. Other directories also start |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
757 with a capital letter: Misc, Doc, Lib, Demo. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
758 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
759 * A few extensions (notably Amoeba and X support) have been moved to a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
760 separate subtree Extensions, which is no longer in the core |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
761 distribution, but separately ftp'able as extensions.tar.Z. (The |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
762 distribution contains a placeholder Ext-dummy with a description of |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
763 the Extensions subtree as well as the most recent versions of the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
764 scripts used there.) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
765 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
766 * A few large specialized demos (SGI video and www) have been |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
767 moved to a separate subdirectory Demo2, which is no longer in the core |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
768 distribution, but separately ftp'able as demo2.tar.Z. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
769 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
770 * Parts of the standard library have been moved to subdirectories: |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
771 there are now standard subdirectories stdwin, test, sgi and sun4. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
772 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
773 * The configuration process has radically changed: I now use GNU |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
774 autoconf. This makes it much easier to build on new Unix flavors, as |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
775 well as fully supporting VPATH (if your Make has it). The scripts |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
776 Configure.py and Addmodule.sh are no longer needed. Many source files |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
777 have been adapted in order to work with the symbols that the configure |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
778 script generated by autoconf defines (or not); the resulting source is |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
779 much more portable to different C compilers and operating systems, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
780 even non Unix systems (a Mac port was done in an afternoon). See the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
781 toplevel README file for a description of the new build process. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
782 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
783 * GNU readline (a slightly newer version) is now a subdirectory of the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
784 Python toplevel. It is still not automatically configured (being |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
785 totally autoconf-unaware :-). One problem has been solved: typing |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
786 Control-C to a readline prompt will now work. The distribution no |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
787 longer contains a "super-level" directory (above the python toplevel |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
788 directory), and dl, dl-dld and GNU dld are no longer part of the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
789 Python distribution (you can still ftp them from |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
790 ftp.cwi.nl:/pub/dynload). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
791 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
792 * The DOS functions have been taken out of posixmodule.c and moved |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
793 into a separate file dosmodule.c. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
794 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
795 * There's now a separate file version.c which contains nothing but |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
796 the version number. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
797 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
798 * The actual main program is now contained in config.c (unless NO_MAIN |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
799 is defined); pythonmain.c now contains a function realmain() which is |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
800 called from config.c's main(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
801 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
802 * All files needed to use the built-in module md5 are now contained in |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
803 the distribution. The module has been cleaned up considerably. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
804 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
805 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
806 Documentation |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
807 ------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
808 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
809 * The library manual has been split into many more small latex files, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
810 so it is easier to edit Doc/lib.tex file to create a custom library |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
811 manual, describing only those modules supported on your system. (This |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
812 is not automated though.) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
813 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
814 * A fourth manual has been added, titled "Extending and Embedding the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
815 Python Interpreter" (Doc/ext.tex), which collects information about |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
816 the interpreter which was previously spread over several files in the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
817 misc subdirectory. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
818 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
819 * The entire documentation is now also available on-line for those who |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
820 have a WWW browser (e.g. NCSA Mosaic). Point your browser to the URL |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
821 "http://www.cwi.nl/~guido/Python.html". |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
822 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
823 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
824 Syntax |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
825 ------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
826 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
827 * Strings may now be enclosed in double quotes as well as in single |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
828 quotes. There is no difference in interpretation. The repr() of |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
829 string objects will use double quotes if the string contains a single |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
830 quote and no double quotes. Thanks to Amrit Prem for these changes! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
831 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
832 * There is a new keyword 'exec'. This replaces the exec() built-in |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
833 function. If a function contains an exec statement, local variable |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
834 optimization is not performed for that particular function, thus |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
835 making assignment to local variables in exec statements less |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
836 confusing. (As a consequence, os.exec and python.exec have been |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
837 renamed to execv.) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
838 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
839 * There is a new keyword 'lambda'. An expression of the form |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
840 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
841 lambda <parameters> : <expression> |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
842 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
843 yields an anonymous function. This is really only syntactic sugar; |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
844 you can just as well define a local function using |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
845 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
846 def some_temporary_name(<parameters>): return <expression> |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
847 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
848 Lambda expressions are particularly useful in combination with map(), |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
849 filter() and reduce(), described below. Thanks to Amrit Prem for |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
850 submitting this code (as well as map(), filter(), reduce() and |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
851 xrange())! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
852 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
853 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
854 Built-in functions |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
855 ------------------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
856 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
857 * The built-in module containing the built-in functions is called |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
858 __builtin__ instead of builtin. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
859 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
860 * New built-in functions map(), filter() and reduce() perform standard |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
861 functional programming operations (though not lazily): |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
862 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
863 - map(f, seq) returns a new sequence whose items are the items from |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
864 seq with f() applied to them. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
865 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
866 - filter(f, seq) returns a subsequence of seq consisting of those |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
867 items for which f() is true. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
868 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
869 - reduce(f, seq, initial) returns a value computed as follows: |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
870 acc = initial |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
871 for item in seq: acc = f(acc, item) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
872 return acc |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
873 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
874 * New function xrange() creates a "range object". Its arguments are |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
875 the same as those of range(), and when used in a for loop a range |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
876 objects also behaves identical. The advantage of xrange() over |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
877 range() is that its representation (if the range contains many |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
878 elements) is much more compact than that of range(). The disadvantage |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
879 is that the result cannot be used to initialize a list object or for |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
880 the "Python idiom" [RED, GREEN, BLUE] = range(3). On some modern |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
881 architectures, benchmarks have shown that "for i in range(...): ..." |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
882 actually executes *faster* than "for i in xrange(...): ...", but on |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
883 memory starved machines like PCs running DOS range(100000) may be just |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
884 too big to be represented at all... |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
885 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
886 * Built-in function exec() has been replaced by the exec statement -- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
887 see above. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
888 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
889 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
890 The interpreter |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
891 --------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
892 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
893 * Syntax errors are now not printed to stderr by the parser, but |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
894 rather the offending line and other relevant information are packed up |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
895 in the SyntaxError exception argument. When the main loop catches a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
896 SyntaxError exception it will print the error in the same format as |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
897 previously, but at the proper position in the stack traceback. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
898 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
899 * You can now set a maximum to the number of traceback entries |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
900 printed by assigning to sys.tracebacklimit. The default is 1000. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
901 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
902 * The version number in .pyc files has changed yet again. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
903 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
904 * It is now possible to have a .pyc file without a corresponding .py |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
905 file. (Warning: this may break existing installations if you have an |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
906 old .pyc file lingering around somewhere on your module search path |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
907 without a corresponding .py file, when there is a .py file for a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
908 module of the same name further down the path -- the new interpreter |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
909 will find the first .pyc file and complain about it, while the old |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
910 interpreter would ignore it and use the .py file further down.) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
911 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
912 * The list sys.builtin_module_names is now sorted and also contains |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
913 the names of a few hardwired built-in modules (sys, __main__ and |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
914 __builtin__). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
915 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
916 * A module can now find its own name by accessing the global variable |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
917 __name__. Assigning to this variable essentially renames the module |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
918 (it should also be stored under a different key in sys.modules). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
919 A neat hack follows from this: a module that wants to execute a main |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
920 program when called as a script no longer needs to compare |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
921 sys.argv[0]; it can simply do "if __name__ == '__main__': main()". |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
922 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
923 * When an object is printed by the print statement, its implementation |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
924 of str() is used. This means that classes can define __str__(self) to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
925 direct how their instances are printed. This is different from |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
926 __repr__(self), which should define an unambigous string |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
927 representation of the instance. (If __str__() is not defined, it |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
928 defaults to __repr__().) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
929 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
930 * Functions and code objects can now be compared meaningfully. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
931 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
932 * On systems supporting SunOS or SVR4 style shared libraries, dynamic |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
933 loading of modules using shared libraries is automatically configured. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
934 Thanks to Bill Jansen and Denis Severson for contributing this change! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
935 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
936 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
937 Built-in objects |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
938 ---------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
939 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
940 * File objects have acquired a new method writelines() which is the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
941 reverse of readlines(). (It does not actually write lines, just a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
942 list of strings, but the symmetry makes the choice of name OK.) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
943 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
944 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
945 Built-in modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
946 ---------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
947 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
948 * Socket objects no longer support the avail() method. Use the select |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
949 module instead, or use this function to replace it: |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
950 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
951 def avail(f): |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
952 import select |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
953 return f in select.select([f], [], [], 0)[0] |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
954 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
955 * Initialization of stdwin is done differently. It actually modifies |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
956 sys.argv (taking out the options the X version of stdwin recognizes) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
957 the first time it is imported. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
958 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
959 * A new built-in module parser provides a rudimentary interface to the |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
960 python parser. Corresponding standard library modules token and symbol |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
961 defines the numeric values of tokens and non-terminal symbols. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
962 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
963 * The posix module has aquired new functions setuid(), setgid(), |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
964 execve(), and exec() has been renamed to execv(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
965 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
966 * The array module is extended with 8-byte object swaps, the 'i' |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
967 format character, and a reverse() method. The read() and write() |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
968 methods are renamed to fromfile() and tofile(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
969 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
970 * The rotor module has freed of portability bugs. This introduces a |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
971 backward compatibility problem: strings encoded with the old rotor |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
972 module can't be decoded by the new version. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
973 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
974 * For select.select(), a timeout (4th) argument of None means the same |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
975 as leaving the timeout argument out. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
976 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
977 * Module strop (and hence standard library module string) has aquired |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
978 a new function: rindex(). Thanks to Amrit Prem! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
979 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
980 * Module regex defines a new function symcomp() which uses an extended |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
981 regular expression syntax: parenthesized subexpressions may be labeled |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
982 using the form "\(<labelname>...\)", and the group() method can return |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
983 sub-expressions by name. Thanks to Tracy Tims for these changes! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
984 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
985 * Multiple threads are now supported on Solaris 2. Thanks to Sjoerd |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
986 Mullender! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
987 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
988 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
989 Standard library modules |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
990 ------------------------ |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
991 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
992 * The library is now split in several subdirectories: all stuff using |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
993 stdwin is in Lib/stdwin, all SGI specific (or SGI Indigo or GL) stuff |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
994 is in Lib/sgi, all Sun Sparc specific stuff is in Lib/sun4, and all |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
995 test modules are in Lib/test. The default module search path will |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
996 include all relevant subdirectories by default. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
997 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
998 * Module os now knows about trying to import dos. It defines |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
999 functions execl(), execle(), execlp() and execvp(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1000 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1001 * New module dospath (should be attacked by a DOS hacker though). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1002 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1003 * All modules defining classes now define __init__() constructors |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1004 instead of init() methods. THIS IS AN INCOMPATIBLE CHANGE! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1005 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1006 * Some minor changes and bugfixes module ftplib (mostly Steve |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1007 Majewski's suggestions); the debug() method is renamed to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1008 set_debuglevel(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1009 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1010 * Some new test modules (not run automatically by testall though): |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1011 test_audioop, test_md5, test_rgbimg, test_select. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1012 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1013 * Module string now defines rindex() and rfind() in analogy of index() |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1014 and find(). It also defines atof() and atol() (and corresponding |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1015 exceptions) in analogy to atoi(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1016 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1017 * Added help() functions to modules profile and pdb. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1018 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1019 * The wdb debugger (now in Lib/stdwin) now shows class or instance |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1020 variables on a double click. Thanks to Sjoerd Mullender! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1021 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1022 * The (undocumented) module lambda has gone -- you couldn't import it |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1023 any more, and it was basically more a demo than a library module... |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1024 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1025 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1026 Multimedia extensions |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1027 --------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1028 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1029 * The optional built-in modules audioop and imageop are now standard |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1030 parts of the interpreter. Thanks to Sjoerd Mullender and Jack Jansen |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1031 for contributing this code! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1032 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1033 * There's a new operation in audioop: minmax(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1034 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1035 * There's a new built-in module called rgbimg which supports portable |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1036 efficient reading of SGI RCG image files. Thanks also to Paul |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1037 Haeberli for the original code! (Who will contribute a GIF reader?) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1038 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1039 * The module aifc is gone -- you should now always use aifc, which has |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1040 received a facelift. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1041 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1042 * There's a new module sunau., for reading Sun (and NeXT) audio files. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1043 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1044 * There's a new module audiodev which provides a uniform interface to |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1045 (SGI Indigo and Sun Sparc) audio hardware. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1046 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1047 * There's a new module sndhdr which recognizes various sound files by |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1048 looking in their header and checking for various magic words. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1049 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1050 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1051 Optimizations |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1052 ------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1053 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1054 * Most optimizations below can be configured by compile-time flags. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1055 Thanks to Sjoerd Mullender for submitting these optimizations! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1056 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1057 * Small integers (default -1..99) are shared -- i.e. if two different |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1058 functions compute the same value it is possible (but not |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1059 guaranteed!!!) that they return the same *object*. Python programs |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1060 can detect this but should *never* rely on it. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1061 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1062 * Empty tuples (which all compare equal) are shared in the same |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1063 manner. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1064 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1065 * Tuples of size up to 20 (default) are put in separate free lists |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1066 when deallocated. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1067 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1068 * There is a compile-time option to cache a string's hash function, |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1069 but this appeared to have a negligeable effect, and as it costs 4 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1070 bytes per string it is disabled by default. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1071 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1072 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1073 Embedding Python |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1074 ---------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1075 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1076 * The initialization interface has been simplified somewhat. You now |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1077 only call "initall()" to initialize the interpreter. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1078 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1079 * The previously announced renaming of externally visible identifiers |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1080 has not been carried out. It will happen in a later release. Sorry. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1081 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1082 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1083 Miscellaneous bugs that have been fixed |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1084 --------------------------------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1085 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1086 * All known portability bugs. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1087 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1088 * Version 0.9.9 dumped core in <listobject>.sort() which has been |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1089 fixed. Thanks to Jaap Vermeulen for fixing this and posting the fix |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1090 on the mailing list while I was away! |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1091 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1092 * Core dump on a format string ending in '%', e.g. in the expression |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1093 '%' % None. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1094 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1095 * The array module yielded a bogus result for concatenation (a+b would |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1096 yield a+a). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1097 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1098 * Some serious memory leaks in strop.split() and strop.splitfields(). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1099 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1100 * Several problems with the nis module. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1101 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1102 * Subtle problem when copying a class method from another class |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1103 through assignment (the method could not be called). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1104 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1105 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1106 Remaining bugs |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1107 -------------- |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1108 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1109 * One problem with 64-bit machines remains -- since .pyc files are |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1110 portable and use only 4 bytes to represent an integer object, 64-bit |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1111 integer literals are silently truncated when written into a .pyc file. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1112 Work-around: use eval('123456789101112'). |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1113 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1114 * The freeze script doesn't work any more. A new and more portable |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1115 one can probably be cooked up using tricks from Extensions/mkext.py. |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1116 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1117 * The dos support hasn't been tested yet. (Really Soon Now we should |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1118 have a PC with a working C compiler!) |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1119 |
|
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1120 |
| 1529 | 1121 =================================== |
| 1122 ==> Release 0.9.9 (29 Jul 1993) <== | |
| 1123 =================================== | |
| 1124 | |
| 1125 I *believe* these are the main user-visible changes in this release, | |
| 1126 but there may be others. SGI users may scan the {src,lib}/ChangeLog | |
| 1127 files for improvements of some SGI specific modules, e.g. aifc and | |
| 1128 cl. Developers of extension modules should also read src/ChangeLog. | |
| 1129 | |
| 1130 | |
| 1131 Naming of C symbols used by the Python interpreter | |
| 1132 -------------------------------------------------- | |
| 1133 | |
| 1134 * This is the last release using the current naming conventions. New | |
| 1135 naming conventions are explained in the file misc/NAMING. | |
| 1136 Summarizing, all externally visible symbols get (at least) a "Py" | |
| 1137 prefix, and most functions are renamed to the standard form | |
| 1138 PyModule_FunctionName. | |
| 1139 | |
| 1140 * Writers of extensions are urged to start using the new naming | |
| 1141 conventions. The next release will use the new naming conventions | |
| 1142 throughout (it will also have a different source directory | |
| 1143 structure). | |
| 1144 | |
| 1145 * As a result of the preliminary work for the great renaming, many | |
| 1146 functions that were accidentally global have been made static. | |
| 1147 | |
| 1148 | |
| 1149 BETA X11 support | |
| 1150 ---------------- | |
| 1151 | |
| 1152 * There are now modules interfacing to the X11 Toolkit Intrinsics, the | |
| 1153 Athena widgets, and the Motif 1.1 widget set. These are not yet | |
| 1154 documented except through the examples and README file in the demo/x11 | |
| 1155 directory. It is expected that this interface will be replaced by a | |
| 1156 more powerful and correct one in the future, which may or may not be | |
| 1157 backward compatible. In other words, this part of the code is at most | |
| 1158 BETA level software! (Note: the rest of Python is rock solid as ever!) | |
| 1159 | |
| 1160 * I understand that the above may be a bit of a disappointment, | |
| 1161 however my current schedule does not allow me to change this situation | |
| 1162 before putting the release out of the door. By releasing it | |
| 1163 undocumented and buggy, at least some of the (working!) demo programs, | |
| 1164 like itr (my Internet Talk Radio browser) become available to a larger | |
| 1165 audience. | |
| 1166 | |
| 1167 * There are also modules interfacing to SGI's "Glx" widget (a GL | |
| 1168 window wrapped in a widget) and to NCSA's "HTML" widget (which can | |
| 1169 format HyperText Markup Language, the document format used by the | |
| 1170 World Wide Web). | |
| 1171 | |
| 1172 * I've experienced some problems when building the X11 support. In | |
| 1173 particular, the Xm and Xaw widget sets don't go together, and it | |
| 1174 appears that using X11R5 is better than using X11R4. Also the threads | |
| 1175 module and its link time options may spoil things. My own strategy is | |
| 1176 to build two Python binaries: one for use with X11 and one without | |
| 1177 it, which can contain a richer set of built-in modules. Don't even | |
| 1178 *think* of loading the X11 modules dynamically... | |
| 1179 | |
| 1180 | |
| 1181 Environmental changes | |
| 1182 --------------------- | |
| 1183 | |
| 1184 * Compiled files (*.pyc files) created by this Python version are | |
| 1185 incompatible with those created by the previous version. Both | |
| 1186 versions detect this and silently create a correct version, but it | |
| 1187 means that it is not a good idea to use the same library directory for | |
| 1188 an old and a new interpreter, since they will start to "fight" over | |
| 1189 the *.pyc files... | |
| 1190 | |
| 1191 * When a stack trace is printed, the exception is printed last instead | |
| 1192 of first. This means that if the beginning of the stack trace | |
| 1193 scrolled out of your window you can still see what exception caused | |
| 1194 it. | |
| 1195 | |
| 1196 * Sometimes interrupting a Python operation does not work because it | |
| 1197 hangs in a blocking system call. You can now kill the interpreter by | |
| 1198 interrupting it three times. The second time you interrupt it, a | |
| 1199 message will be printed telling you that the third interrupt will kill | |
| 1200 the interpreter. The "sys.exitfunc" feature still makes limited | |
| 1201 clean-up possible in this case. | |
| 1202 | |
| 1203 | |
| 1204 Changes to the command line interface | |
| 1205 ------------------------------------- | |
| 1206 | |
| 1207 * The python usage message is now much more informative. | |
| 1208 | |
| 1209 * New option -i enters interactive mode after executing a script -- | |
| 1210 useful for debugging. | |
| 1211 | |
| 1212 * New option -k raises an exception when an expression statement | |
| 1213 yields a value other than None. | |
| 1214 | |
| 1215 * For each option there is now also a corresponding environment | |
| 1216 variable. | |
| 1217 | |
| 1218 | |
| 1219 Using Python as an embedded language | |
| 1220 ------------------------------------ | |
| 1221 | |
| 1222 * The distribution now contains (some) documentation on the use of | |
| 1223 Python as an "embedded language" in other applications, as well as a | |
| 1224 simple example. See the file misc/EMBEDDING and the directory embed/. | |
| 1225 | |
| 1226 | |
| 1227 Speed improvements | |
| 1228 ------------------ | |
| 1229 | |
| 1230 * Function local variables are now generally stored in an array and | |
| 1231 accessed using an integer indexing operation, instead of through a | |
| 1232 dictionary lookup. (This compensates the somewhat slower dictionary | |
| 1233 lookup caused by the generalization of the dictionary module.) | |
| 1234 | |
| 1235 | |
| 1236 Changes to the syntax | |
| 1237 --------------------- | |
| 1238 | |
| 1239 * Continuation lines can now *sometimes* be written without a | |
| 1240 backslash: if the continuation is contained within nesting (), [] or | |
| 1241 {} brackets the \ may be omitted. There's a much improved | |
| 1242 python-mode.el in the misc directory which knows about this as well. | |
| 1243 | |
| 1244 * You can no longer use an empty set of parentheses to define a class | |
| 1245 without base classes. That is, you no longer write this: | |
| 1246 | |
| 1247 class Foo(): # syntax error | |
| 1248 ... | |
| 1249 | |
| 1250 You must write this instead: | |
| 1251 | |
| 1252 class Foo: | |
| 1253 ... | |
| 1254 | |
| 1255 This was already the preferred syntax in release 0.9.8 but many | |
| 1256 people seemed not to have picked it up. There's a Python script that | |
| 1257 fixes old code: demo/scripts/classfix.py. | |
| 1258 | |
| 1259 * There's a new reserved word: "access". The syntax and semantics are | |
| 1260 still subject of of research and debate (as well as undocumented), but | |
| 1261 the parser knows about the keyword so you must not use it as a | |
| 1262 variable, function, or attribute name. | |
| 1263 | |
| 1264 | |
| 1265 Changes to the semantics of the language proper | |
| 1266 ----------------------------------------------- | |
| 1267 | |
| 1268 * The following compatibility hack is removed: if a function was | |
| 1269 defined with two or more arguments, and called with a single argument | |
| 1270 that was a tuple with just as many arguments, the items of this tuple | |
| 1271 would be used as the arguments. This is no longer supported. | |
| 1272 | |
| 1273 | |
| 1274 Changes to the semantics of classes and instances | |
| 1275 ------------------------------------------------- | |
| 1276 | |
| 1277 * Class variables are now also accessible as instance variables for | |
| 1278 reading (assignment creates an instance variable which overrides the | |
| 1279 class variable of the same name though). | |
| 1280 | |
| 1281 * If a class attribute is a user-defined function, a new kind of | |
| 1282 object is returned: an "unbound method". This contains a pointer to | |
| 1283 the class and can only be called with a first argument which is a | |
| 1284 member of that class (or a derived class). | |
| 1285 | |
| 1286 * If a class defines a method __init__(self, arg1, ...) then this | |
| 1287 method is called when a class instance is created by the classname() | |
| 1288 construct. Arguments passed to classname() are passed to the | |
| 1289 __init__() method. The __init__() methods of base classes are not | |
| 1290 automatically called; the derived __init__() method must call these if | |
| 1291 necessary (this was done so the derived __init__() method can choose | |
| 1292 the call order and arguments for the base __init__() methods). | |
| 1293 | |
| 1294 * If a class defines a method __del__(self) then this method is called | |
| 1295 when an instance of the class is about to be destroyed. This makes it | |
| 1296 possible to implement clean-up of external resources attached to the | |
| 1297 instance. As with __init__(), the __del__() methods of base classes | |
| 1298 are not automatically called. If __del__ manages to store a reference | |
| 1299 to the object somewhere, its destruction is postponed; when the object | |
| 1300 is again about to be destroyed its __del__() method will be called | |
| 1301 again. | |
| 1302 | |
| 1303 * Classes may define a method __hash__(self) to allow their instances | |
| 1304 to be used as dictionary keys. This must return a 32-bit integer. | |
| 1305 | |
| 1306 | |
| 1307 Minor improvements | |
| 1308 ------------------ | |
| 1309 | |
| 1310 * Function and class objects now know their name (the name given in | |
| 1311 the 'def' or 'class' statement that created them). | |
| 1312 | |
| 1313 * Class instances now know their class name. | |
| 1314 | |
| 1315 | |
| 1316 Additions to built-in operations | |
| 1317 -------------------------------- | |
| 1318 | |
| 1319 * The % operator with a string left argument implements formatting | |
| 1320 similar to sprintf() in C. The right argument is either a single | |
| 1321 value or a tuple of values. All features of Standard C sprintf() are | |
| 1322 supported except %p. | |
| 1323 | |
| 1324 * Dictionaries now support almost any key type, instead of just | |
| 1325 strings. (The key type must be an immutable type or must be a class | |
| 1326 instance where the class defines a method __hash__(), in order to | |
| 1327 avoid losing track of keys whose value may change.) | |
| 1328 | |
| 1329 * Built-in methods are now compared properly: when comparing x.meth1 | |
| 1330 and y.meth2, if x is equal to y and the methods are defined by the | |
| 1331 same function, x.meth1 compares equal to y.meth2. | |
| 1332 | |
| 1333 | |
| 1334 Additions to built-in functions | |
| 1335 ------------------------------- | |
| 1336 | |
| 1337 * str(x) returns a string version of its argument. If the argument is | |
| 1338 a string it is returned unchanged, otherwise it returns `x`. | |
| 1339 | |
| 1340 * repr(x) returns the same as `x`. (Some users found it easier to | |
| 1341 have this as a function.) | |
| 1342 | |
| 1343 * round(x) returns the floating point number x rounded to an whole | |
| 1344 number, represented as a floating point number. round(x, n) returns x | |
| 1345 rounded to n digits. | |
| 1346 | |
| 1347 * hasattr(x, name) returns true when x has an attribute with the given | |
| 1348 name. | |
| 1349 | |
| 1350 * hash(x) returns a hash code (32-bit integer) of an arbitrary | |
| 1351 immutable object's value. | |
| 1352 | |
| 1353 * id(x) returns a unique identifier (32-bit integer) of an arbitrary | |
| 1354 object. | |
| 1355 | |
| 1356 * compile() compiles a string to a Python code object. | |
| 1357 | |
| 1358 * exec() and eval() now support execution of code objects. | |
| 1359 | |
| 1360 | |
| 1361 Changes to the documented part of the library (standard modules) | |
| 1362 ---------------------------------------------------------------- | |
| 1363 | |
| 1364 * os.path.normpath() (a.k.a. posixpath.normpath()) has been fixed so | |
| 1365 the border case '/foo/..' returns '/' instead of ''. | |
| 1366 | |
| 1367 * A new function string.find() is added with similar semantics to | |
| 1368 string.index(); however when it does not find the given substring it | |
| 1369 returns -1 instead of raising string.index_error. | |
| 1370 | |
| 1371 | |
| 1372 Changes to built-in modules | |
| 1373 --------------------------- | |
| 1374 | |
| 1375 * New optional module 'array' implements operations on sequences of | |
| 1376 integers or floating point numbers of a particular size. This is | |
| 1377 useful to manipulate large numerical arrays or to read and write | |
| 1378 binary files consisting of numerical data. | |
| 1379 | |
| 1380 * Regular expression objects created by module regex now support a new | |
| 1381 method named group(), which returns one or more \(...\) groups by number. | |
| 1382 The number of groups is increased from 10 to 100. | |
| 1383 | |
| 1384 * Function compile() in module regex now supports an optional mapping | |
| 1385 argument; a variable casefold is added to the module which can be used | |
| 1386 as a standard uppercase to lowercase mapping. | |
| 1387 | |
| 1388 * Module time now supports many routines that are defined in the | |
| 1389 Standard C time interface (<time.h>): gmtime(), localtime(), | |
| 1390 asctime(), ctime(), mktime(), as well as these variables (taken from | |
| 1391 System V): timezone, altzone, daylight and tzname. (The corresponding | |
| 1392 functions in the undocumented module calendar have been removed; the | |
| 1393 undocumented and unfinished module tzparse is now obsolete and will | |
| 1394 disappear in a future release.) | |
| 1395 | |
| 1396 * Module strop (the fast built-in version of standard module string) | |
| 1397 now uses C's definition of whitespace instead of fixing it to space, | |
| 1398 tab and newline; in practice this usually means that vertical tab, | |
| 1399 form feed and return are now also considered whitespace. It exports | |
| 1400 the string of characters that are considered whitespace as well as the | |
| 1401 characters that are considered lowercase or uppercase. | |
| 1402 | |
| 1403 * Module sys now defines the variable builtin_module_names, a list of | |
| 1404 names of modules built into the current interpreter (including not | |
| 1405 yet imported, but excluding two special modules that always have to be | |
| 1406 defined -- sys and builtin). | |
| 1407 | |
| 1408 * Objects created by module sunaudiodev now also support flush() and | |
| 1409 close() methods. | |
| 1410 | |
| 1411 * Socket objects created by module socket now support an optional | |
| 1412 flags argument for their methods sendto() and recvfrom(). | |
| 1413 | |
| 1414 * Module marshal now supports dumping to and loading from strings, | |
| 1415 through the functions dumps() and loads(). | |
| 1416 | |
| 1417 * Module stdwin now supports some new functionality. You may have to | |
| 1418 ftp the latest version: ftp.cwi.nl:/pub/stdwin/stdwinforviews.tar.Z.) | |
| 1419 | |
| 1420 | |
| 1421 Bugs fixed | |
| 1422 ---------- | |
| 1423 | |
| 1424 * Fixed comparison of negative long integers. | |
| 1425 | |
| 1426 * The tokenizer no longer botches input lines longer than BUFSIZ. | |
| 1427 | |
| 1428 * Fixed several severe memory leaks in module select. | |
| 1429 | |
| 1430 * Fixed memory leaks in modules socket and sv. | |
| 1431 | |
| 1432 * Fixed memory leak in divmod() for long integers. | |
| 1433 | |
| 1434 * Problems with definition of floatsleep() on Suns fixed. | |
| 1435 | |
| 1436 * Many portability bugs fixed (and undoubtedly new ones added :-). | |
| 1437 | |
| 1438 | |
| 1439 Changes to the build procedure | |
| 1440 ------------------------------ | |
| 1441 | |
| 1442 * The Makefile supports some new targets: "make default" and "make | |
| 1443 all". Both are by normally equivalent to "make python". | |
| 1444 | |
| 1445 * The Makefile no longer uses $> since it's not supported by all | |
| 1446 versions of Make. | |
| 1447 | |
| 1448 * The header files now all contain #ifdef constructs designed to make | |
| 1449 it safe to include the same header file twice, as well as support for | |
| 1450 inclusion from C++ programs (automatic extern "C" { ... } added). | |
| 1451 | |
| 1452 | |
| 1453 Freezing Python scripts | |
| 1454 ----------------------- | |
| 1455 | |
| 1456 * There is now some support for "freezing" a Python script as a | |
| 1457 stand-alone executable binary file. See the script | |
| 1458 demo/scripts/freeze.py. It will require some site-specific tailoring | |
| 1459 of the script to get this working, but is quite worthwhile if you write | |
| 1460 Python code for other who may not have built and installed Python. | |
| 1461 | |
| 1462 | |
| 1463 MS-DOS | |
| 1464 ------ | |
| 1465 | |
| 1466 * A new MS-DOS port has been done, using MSC 6.0 (I believe). Thanks, | |
| 1467 Marcel van der Peijl! This requires fewer compatibility hacks in | |
| 1468 posixmodule.c. The executable is not yet available but will be soon | |
| 1469 (check the mailing list). | |
| 1470 | |
| 1471 * The default PYTHONPATH has changed. | |
| 1472 | |
| 1473 | |
| 1474 Changes for developers of extension modules | |
| 1475 ------------------------------------------- | |
| 1476 | |
| 1477 * Read src/ChangeLog for full details. | |
| 1478 | |
| 1479 | |
| 1480 SGI specific changes | |
| 1481 -------------------- | |
| 1482 | |
| 1483 * Read src/ChangeLog for full details. | |
| 1484 | |
|
1948
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
1485 |
| 1529 | 1486 ================================== |
| 1487 ==> Release 0.9.8 (9 Jan 1993) <== | |
| 1488 ================================== | |
| 1489 | |
| 1490 I claim no completeness here, but I've tried my best to scan the log | |
| 1491 files throughout my source tree for interesting bits of news. A more | |
| 1492 complete account of the changes is to be found in the various | |
| 1493 ChangeLog files. See also "News for release 0.9.7beta" below if you're | |
| 1494 still using release 0.9.6, and the file HISTORY if you have an even | |
| 1495 older release. | |
| 1496 | |
| 1497 --Guido | |
| 1498 | |
| 1499 | |
| 1500 Changes to the language proper | |
| 1501 ------------------------------ | |
| 1502 | |
| 1503 There's only one big change: the conformance checking for function | |
| 1504 argument lists (of user-defined functions only) is stricter. Earlier, | |
| 1505 you could get away with the following: | |
| 1506 | |
| 1507 (a) define a function of one argument and call it with any | |
| 1508 number of arguments; if the actual argument count wasn't | |
| 1509 one, the function would receive a tuple containing the | |
| 1510 arguments arguments (an empty tuple if there were none). | |
| 1511 | |
| 1512 (b) define a function of two arguments, and call it with more | |
| 1513 than two arguments; if there were more than two arguments, | |
| 1514 the second argument would be passed as a tuple containing | |
| 1515 the second and further actual arguments. | |
| 1516 | |
| 1517 (Note that an argument (formal or actual) that is a tuple is counted as | |
| 1518 one; these rules don't apply inside such tuples, only at the top level | |
| 1519 of the argument list.) | |
| 1520 | |
| 1521 Case (a) was needed to accommodate variable-length argument lists; | |
| 1522 there is now an explicit "varargs" feature (precede the last argument | |
| 1523 with a '*'). Case (b) was needed for compatibility with old class | |
| 1524 definitions: up to release 0.9.4 a method with more than one argument | |
| 1525 had to be declared as "def meth(self, (arg1, arg2, ...)): ...". | |
| 1526 Version 0.9.6 provide better ways to handle both casees, bot provided | |
| 1527 backward compatibility; version 0.9.8 retracts the compatibility hacks | |
| 1528 since they also cause confusing behavior if a function is called with | |
| 1529 the wrong number of arguments. | |
| 1530 | |
| 1531 There's a script that helps converting classes that still rely on (b), | |
| 1532 provided their methods' first argument is called "self": | |
| 1533 demo/scripts/methfix.py. | |
| 1534 | |
| 1535 If this change breaks lots of code you have developed locally, try | |
| 1536 #defining COMPAT_HACKS in ceval.c. | |
| 1537 | |
| 1538 (There's a third compatibility hack, which is the reverse of (a): if a | |
| 1539 function is defined with two or more arguments, and called with a | |
| 1540 single argument that is a tuple with just as many arguments, the items | |
| 1541 of this tuple will be used as the arguments. Although this can (and | |
| 1542 should!) be done using the built-in function apply() instead, it isn't | |
| 1543 withdrawn yet.) | |
| 1544 | |
| 1545 | |
| 1546 One minor change: comparing instance methods works like expected, so | |
| 1547 that if x is an instance of a user-defined class and has a method m, | |
| 1548 then (x.m==x.m) yields 1. | |
| 1549 | |
| 1550 | |
| 1551 The following was already present in 0.9.7beta, but not explicitly | |
| 1552 mentioned in the NEWS file: user-defined classes can now define types | |
| 1553 that behave in almost allrespects like numbers. See | |
| 1554 demo/classes/Rat.py for a simple example. | |
| 1555 | |
| 1556 | |
| 1557 Changes to the build process | |
| 1558 ---------------------------- | |
| 1559 | |
| 1560 The Configure.py script and the Makefile has been made somewhat more | |
| 1561 bullet-proof, after reports of (minor) trouble on certain platforms. | |
| 1562 | |
| 1563 There is now a script to patch Makefile and config.c to add a new | |
| 1564 optional built-in module: Addmodule.sh. Read the script before using! | |
| 1565 | |
| 1566 Useing Addmodule.sh, all optional modules can now be configured at | |
| 1567 compile time using Configure.py, so there are no modules left that | |
| 1568 require dynamic loading. | |
| 1569 | |
| 1570 The Makefile has been fixed to make it easier to use with the VPATH | |
| 1571 feature of some Make versions (e.g. SunOS). | |
| 1572 | |
| 1573 | |
| 1574 Changes affecting portability | |
| 1575 ----------------------------- | |
| 1576 | |
| 1577 Several minor portability problems have been solved, e.g. "malloc.h" | |
| 1578 has been renamed to "mymalloc.h", "strdup.c" is no longer used, and | |
| 1579 the system now tolerates malloc(0) returning 0. | |
| 1580 | |
| 1581 For dynamic loading on the SGI, Jack Jansen's dl 1.6 is now | |
| 1582 distributed with Python. This solves several minor problems, in | |
| 1583 particular scripts invoked using #! can now use dynamic loading. | |
| 1584 | |
| 1585 | |
| 1586 Changes to the interpreter interface | |
| 1587 ------------------------------------ | |
| 1588 | |
| 1589 On popular demand, there's finally a "profile" feature for interactive | |
| 1590 use of the interpreter. If the environment variable $PYTHONSTARTUP is | |
| 1591 set to the name of an existing file, Python statements in this file | |
| 1592 are executed when the interpreter is started in interactive mode. | |
| 1593 | |
| 1594 There is a new clean-up mechanism, complementing try...finally: if you | |
| 1595 assign a function object to sys.exitfunc, it will be called when | |
| 1596 Python exits or receives a SIGTERM or SIGHUP signal. | |
| 1597 | |
| 1598 The interpreter is now generally assumed to live in | |
| 1599 /usr/local/bin/python (as opposed to /usr/local/python). The script | |
| 1600 demo/scripts/fixps.py will update old scripts in place (you can easily | |
| 1601 modify it to do other similar changes). | |
| 1602 | |
| 1603 Most I/O that uses sys.stdin/stdout/stderr will now use any object | |
| 1604 assigned to those names as long as the object supports readline() or | |
| 1605 write() methods. | |
| 1606 | |
| 1607 The parser stack has been increased to 500 to accommodate more | |
| 1608 complicated expressions (7 levels used to be the practical maximum, | |
| 1609 it's now about 38). | |
| 1610 | |
| 1611 The limit on the size of the *run-time* stack has completely been | |
| 1612 removed -- this means that tuple or list displays can contain any | |
| 1613 number of elements (formerly more than 50 would crash the | |
| 1614 interpreter). | |
| 1615 | |
| 1616 | |
| 1617 Changes to existing built-in functions and methods | |
| 1618 -------------------------------------------------- | |
| 1619 | |
| 1620 The built-in functions int(), long(), float(), oct() and hex() now | |
| 1621 also apply to class instalces that define corresponding methods | |
| 1622 (__int__ etc.). | |
| 1623 | |
| 1624 | |
| 1625 New built-in functions | |
| 1626 ---------------------- | |
| 1627 | |
| 1628 The new functions str() and repr() convert any object to a string. | |
| 1629 The function repr(x) is in all respects equivalent to `x` -- some | |
| 1630 people prefer a function for this. The function str(x) does the same | |
| 1631 except if x is already a string -- then it returns x unchanged | |
| 1632 (repr(x) adds quotes and escapes "funny" characters as octal escapes). | |
| 1633 | |
| 1634 The new function cmp(x, y) returns -1 if x<y, 0 if x==y, 1 if x>y. | |
| 1635 | |
| 1636 | |
| 1637 Changes to general built-in modules | |
| 1638 ----------------------------------- | |
| 1639 | |
| 1640 The time module's functions are more general: time() returns a | |
| 1641 floating point number and sleep() accepts one. Their accuracies | |
| 1642 depends on the precision of the system clock. Millisleep is no longer | |
| 1643 needed (although it still exists for now), but millitimer is still | |
| 1644 needed since on some systems wall clock time is only available with | |
| 1645 seconds precision, while a source of more precise time exists that | |
| 1646 isn't synchronized with the wall clock. (On UNIX systems that support | |
| 1647 the BSD gettimeofday() function, time.time() is as time.millitimer().) | |
| 1648 | |
| 1649 The string representation of a file object now includes an address: | |
| 1650 '<file 'filename', mode 'r' at #######>' where ###### is a hex number | |
| 1651 (the object's address) to make it unique. | |
| 1652 | |
| 1653 New functions added to posix: nice(), setpgrp(), and if your system | |
| 1654 supports them: setsid(), setpgid(), tcgetpgrp(), tcsetpgrp(). | |
| 1655 | |
| 1656 Improvements to the socket module: socket objects have new methods | |
| 1657 getpeername() and getsockname(), and the {get,set}sockopt methods can | |
| 1658 now get/set any kind of option using strings built with the new struct | |
| 1659 module. And there's a new function fromfd() which creates a socket | |
| 1660 object given a file descriptor (useful for servers started by inetd, | |
| 1661 which have a socket connected to stdin and stdout). | |
| 1662 | |
| 1663 | |
| 1664 Changes to SGI-specific built-in modules | |
| 1665 ---------------------------------------- | |
| 1666 | |
| 1667 The FORMS library interface (fl) now requires FORMS 2.1a. Some new | |
| 1668 functions have been added and some bugs have been fixed. | |
| 1669 | |
| 1670 Additions to al (audio library interface): added getname(), | |
| 1671 getdefault() and getminmax(). | |
| 1672 | |
| 1673 The gl modules doesn't call "foreground()" when initialized (this | |
| 1674 caused some problems) like it dit in 0.9.7beta (but not before). | |
| 1675 There's a new gl function 'gversion() which returns a version string. | |
| 1676 | |
| 1677 The interface to sv (Indigo video interface) has totally changed. | |
| 1678 (Sorry, still no documentation, but see the examples in | |
| 1679 demo/sgi/{sv,video}.) | |
| 1680 | |
| 1681 | |
| 1682 Changes to standard library modules | |
| 1683 ----------------------------------- | |
| 1684 | |
| 1685 Most functions in module string are now much faster: they're actually | |
| 1686 implemented in C. The module containing the C versions is called | |
| 1687 "strop" but you should still import "string" since strop doesn't | |
| 1688 provide all the interfaces defined in string (and strop may be renamed | |
| 1689 to string when it is complete in a future release). | |
| 1690 | |
| 1691 string.index() now accepts an optional third argument giving an index | |
| 1692 where to start searching in the first argument, so you can find second | |
| 1693 and further occurrences (this is similar to the regular expression | |
| 1694 functions in regex). | |
| 1695 | |
| 1696 The definition of what string.splitfields(anything, '') should return | |
| 1697 is changed for the last time: it returns a singleton list containing | |
| 1698 its whole first argument unchanged. This is compatible with | |
| 1699 regsub.split() which also ignores empty delimiter matches. | |
| 1700 | |
| 1701 posixpath, macpath: added dirname() and normpath() (and basename() to | |
| 1702 macpath). | |
| 1703 | |
| 1704 The mainloop module (for use with stdwin) can now demultiplex input | |
| 1705 from other sources, as long as they can be polled with select(). | |
| 1706 | |
| 1707 | |
| 1708 New built-in modules | |
| 1709 -------------------- | |
| 1710 | |
| 1711 Module struct defines functions to pack/unpack values to/from strings | |
| 1712 representing binary values in native byte order. | |
| 1713 | |
| 1714 Module strop implements C versions of many functions from string (see | |
| 1715 above). | |
| 1716 | |
| 1717 Optional module fcntl defines interfaces to fcntl() and ioctl() -- | |
| 1718 UNIX only. (Not yet properly documented -- see however src/fcntl.doc.) | |
| 1719 | |
| 1720 Optional module mpz defines an interface to an altaernative long | |
| 1721 integer implementation, the GNU MPZ library. | |
| 1722 | |
| 1723 Optional module md5 uses the GNU MPZ library to calculate MD5 | |
| 1724 signatures of strings. | |
| 1725 | |
| 1726 There are also optional new modules specific to SGI machines: imageop | |
| 1727 defines some simple operations to images represented as strings; sv | |
| 1728 interfaces to the Indigo video board; cl interfaces to the (yet | |
| 1729 unreleased) compression library. | |
| 1730 | |
| 1731 | |
| 1732 New standard library modules | |
| 1733 ---------------------------- | |
| 1734 | |
| 1735 (Unfortunately the following modules are not all documented; read the | |
| 1736 sources to find out more about them!) | |
| 1737 | |
| 1738 autotest: run testall without showing any output unless it differs | |
| 1739 from the expected output | |
| 1740 | |
| 1741 bisect: use bisection to insert or find an item in a sorted list | |
| 1742 | |
| 1743 colorsys: defines conversions between various color systems (e.g. RGB | |
| 1744 <-> YUV) | |
| 1745 | |
| 1746 nntplib: a client interface to NNTP servers | |
| 1747 | |
| 1748 pipes: utility to construct pipeline from templates, e.g. for | |
| 1749 conversion from one file format to another using several utilities. | |
| 1750 | |
| 1751 regsub: contains three functions that are more or less compatible with | |
| 1752 awk functions of the same name: sub() and gsub() do string | |
| 1753 substitution, split() splits a string using a regular expression to | |
| 1754 define how separators are define. | |
| 1755 | |
| 1756 test_types: test operations on the built-in types of Python | |
| 1757 | |
| 1758 toaiff: convert various audio file formats to AIFF format | |
| 1759 | |
| 1760 tzparse: parse the TZ environment parameter (this may be less general | |
| 1761 than it could be, let me know if you fix it). | |
| 1762 | |
| 1763 (Note that the obsolete module "path" no longer exists.) | |
| 1764 | |
| 1765 | |
| 1766 New SGI-specific library modules | |
| 1767 -------------------------------- | |
| 1768 | |
| 1769 CL: constants for use with the built-in compression library interface (cl) | |
| 1770 | |
| 1771 Queue: a multi-producer, multi-consumer queue class implemented for | |
| 1772 use with the built-in thread module | |
| 1773 | |
| 1774 SOCKET: constants for use with built-in module socket, e.g. to set/get | |
| 1775 socket options. This is SGI-specific because the constants to be | |
| 1776 passed are system-dependent. You can generate a version for your own | |
| 1777 system by running the script demo/scripts/h2py.py with | |
| 1778 /usr/include/sys/socket.h as input. | |
| 1779 | |
| 1780 cddb: interface to the database used the the CD player | |
| 1781 | |
| 1782 torgb: convert various image file types to rgb format (requires pbmplus) | |
| 1783 | |
| 1784 | |
| 1785 New demos | |
| 1786 --------- | |
| 1787 | |
| 1788 There's an experimental interface to define Sun RPC clients and | |
| 1789 servers in demo/rpc. | |
| 1790 | |
| 1791 There's a collection of interfaces to WWW, WAIS and Gopher (both | |
| 1792 Python classes and program providing a user interface) in demo/www. | |
| 1793 This includes a program texi2html.py which converts texinfo files to | |
| 1794 HTML files (the format used hy WWW). | |
| 1795 | |
| 1796 The ibrowse demo has moved from demo/stdwin/ibrowse to demo/ibrowse. | |
| 1797 | |
| 1798 For SGI systems, there's a whole collection of programs and classes | |
| 1799 that make use of the Indigo video board in demo/sgi/{sv,video}. This | |
| 1800 represents a significant amount of work that we're giving away! | |
| 1801 | |
| 1802 There are demos "rsa" and "md5test" that exercise the mpz and md5 | |
| 1803 modules, respectively. The rsa demo is a complete implementation of | |
| 1804 the RSA public-key cryptosystem! | |
| 1805 | |
| 1806 A bunch of games and examples submitted by Stoffel Erasmus have been | |
| 1807 included in demo/stoffel. | |
| 1808 | |
| 1809 There are miscellaneous new files in some existing demo | |
| 1810 subdirectories: classes/bitvec.py, scripts/{fixps,methfix}.py, | |
| 1811 sgi/al/cmpaf.py, sockets/{mcast,gopher}.py. | |
| 1812 | |
| 1813 There are also many minor changes to existing files, but I'm too lazy | |
| 1814 to run a diff and note the differences -- you can do this yourself if | |
| 1815 you save the old distribution's demos. One highlight: the | |
| 1816 stdwin/python.py demo is much improved! | |
| 1817 | |
| 1818 | |
| 1819 Changes to the documentation | |
| 1820 ---------------------------- | |
| 1821 | |
| 1822 The LaTeX source for the library uses different macros to enable it to | |
| 1823 be converted to texinfo, and from there to INFO or HTML format so it | |
| 1824 can be browsed as a hypertext. The net result is that you can now | |
| 1825 read the Python library documentation in Emacs info mode! | |
| 1826 | |
| 1827 | |
| 1828 Changes to the source code that affect C extension writers | |
| 1829 ---------------------------------------------------------- | |
| 1830 | |
| 1831 The function strdup() no longer exists (it was used only in one places | |
| 1832 and is somewhat of a a portability problem sice some systems have the | |
| 1833 same function in their C library. | |
| 1834 | |
| 1835 The functions NEW() and RENEW() allocate one spare byte to guard | |
| 1836 against a NULL return from malloc(0) being taken for an error, but | |
| 1837 this should not be relied upon. | |
| 1838 | |
| 1839 | |
| 1840 ========================= | |
| 1841 ==> Release 0.9.7beta <== | |
| 1842 ========================= | |
| 1843 | |
| 1844 | |
| 1845 Changes to the language proper | |
| 1846 ------------------------------ | |
| 1847 | |
| 1848 User-defined classes can now implement operations invoked through | |
| 1849 special syntax, such as x[i] or `x` by defining methods named | |
| 1850 __getitem__(self, i) or __repr__(self), etc. | |
| 1851 | |
| 1852 | |
| 1853 Changes to the build process | |
| 1854 ---------------------------- | |
| 1855 | |
| 1856 Instead of extensive manual editing of the Makefile to select | |
| 1857 compile-time options, you can now run a Configure.py script. | |
| 1858 The Makefile as distributed builds a minimal interpreter sufficient to | |
| 1859 run Configure.py. See also misc/BUILD | |
| 1860 | |
| 1861 The Makefile now includes more "utility" targets, e.g. install and | |
| 1862 tags/TAGS | |
| 1863 | |
| 1864 Using the provided strtod.c and strtol.c are now separate options, as | |
| 1865 on the Sun the provided strtod.c dumps core :-( | |
| 1866 | |
| 1867 The regex module is now an option chosen by the Makefile, since some | |
| 1868 (old) C compilers choke on regexpr.c | |
| 1869 | |
| 1870 | |
| 1871 Changes affecting portability | |
| 1872 ----------------------------- | |
| 1873 | |
| 1874 You need STDWIN version 0.9.7 (released 30 June 1992) for the stdwin | |
| 1875 interface | |
| 1876 | |
| 1877 Dynamic loading is now supported for Sun (and other non-COFF systems) | |
| 1878 throug dld-3.2.3, as well as for SGI (a new version of Jack Jansen's | |
| 1879 DL is out, 1.4) | |
| 1880 | |
| 1881 The system-dependent code for the use of the select() system call is | |
| 1882 moved to one file: myselect.h | |
| 1883 | |
| 1884 Thanks to Jaap Vermeulen, the code should now port cleanly to the | |
| 1885 SEQUENT | |
| 1886 | |
| 1887 | |
| 1888 Changes to the interpreter interface | |
| 1889 ------------------------------------ | |
| 1890 | |
| 1891 The interpretation of $PYTHONPATH in the environment is different: it | |
| 1892 is inserted in front of the default path instead of overriding it | |
| 1893 | |
| 1894 | |
| 1895 Changes to existing built-in functions and methods | |
| 1896 -------------------------------------------------- | |
| 1897 | |
| 1898 List objects now support an optional argument to their sort() method, | |
| 1899 which is a comparison function similar to qsort(3) in C | |
| 1900 | |
| 1901 File objects now have a method fileno(), used by the new select module | |
| 1902 (see below) | |
| 1903 | |
| 1904 | |
| 1905 New built-in function | |
| 1906 --------------------- | |
| 1907 | |
| 1908 coerce(x, y): take two numbers and return a tuple containing them | |
| 1909 both converted to a common type | |
| 1910 | |
| 1911 | |
| 1912 Changes to built-in modules | |
| 1913 --------------------------- | |
| 1914 | |
| 1915 sys: fixed core dumps in settrace() and setprofile() | |
| 1916 | |
| 1917 socket: added socket methods setsockopt() and getsockopt(); and | |
| 1918 fileno(), used by the new select module (see below) | |
| 1919 | |
| 1920 stdwin: added fileno() == connectionnumber(), in support of new module | |
| 1921 select (see below) | |
| 1922 | |
| 1923 posix: added get{eg,eu,g,u}id(); waitpid() is now a separate function. | |
| 1924 | |
| 1925 gl: added qgetfd() | |
| 1926 | |
| 1927 fl: added several new functions, fixed several obscure bugs, adapted | |
| 1928 to FORMS 2.1 | |
| 1929 | |
| 1930 | |
| 1931 Changes to standard modules | |
| 1932 --------------------------- | |
| 1933 | |
| 1934 posixpath: changed implementation of ismount() | |
| 1935 | |
| 1936 string: atoi() no longer mistakes leading zero for octal number | |
| 1937 | |
| 1938 ... | |
| 1939 | |
| 1940 | |
| 1941 New built-in modules | |
| 1942 -------------------- | |
| 1943 | |
| 1944 Modules marked "dynamic only" are not configured at compile time but | |
| 1945 can be loaded dynamically. You need to turn on the DL or DLD option in | |
| 1946 the Makefile for support dynamic loading of modules (this requires | |
| 1947 external code). | |
| 1948 | |
| 1949 select: interfaces to the BSD select() system call | |
| 1950 | |
| 1951 dbm: interfaces to the (new) dbm library (dynamic only) | |
| 1952 | |
| 1953 nis: interfaces to some NIS functions (aka yellow pages) | |
| 1954 | |
| 1955 thread: limited form of multiple threads (sgi only) | |
| 1956 | |
| 1957 audioop: operations useful for audio programs, e.g. u-LAW and ADPCM | |
| 1958 coding (dynamic only) | |
| 1959 | |
| 1960 cd: interface to Indigo SCSI CDROM player audio library (sgi only) | |
| 1961 | |
| 1962 jpeg: read files in JPEG format (dynamic only, sgi only; needs | |
| 1963 external code) | |
| 1964 | |
| 1965 imgfile: read SGI image files (dynamic only, sgi only) | |
| 1966 | |
| 1967 sunaudiodev: interface to sun's /dev/audio (dynamic only, sun only) | |
| 1968 | |
| 1969 sv: interface to Indigo video library (sgi only) | |
| 1970 | |
| 1971 pc: a minimal set of MS-DOS interfaces (MS-DOS only) | |
| 1972 | |
| 1973 rotor: encryption, by Lance Ellinghouse (dynamic only) | |
| 1974 | |
| 1975 | |
| 1976 New standard modules | |
| 1977 -------------------- | |
| 1978 | |
| 1979 Not all these modules are documented. Read the source: | |
| 1980 lib/<modulename>.py. Sometimes a file lib/<modulename>.doc contains | |
| 1981 additional documentation. | |
| 1982 | |
| 1983 imghdr: recognizes image file headers | |
| 1984 | |
| 1985 sndhdr: recognizes sound file headers | |
| 1986 | |
| 1987 profile: print run-time statistics of Python code | |
| 1988 | |
| 1989 readcd, cdplayer: companion modules for built-in module cd (sgi only) | |
| 1990 | |
| 1991 emacs: interface to Emacs using py-connect.el (see below). | |
| 1992 | |
| 1993 SOCKET: symbolic constant definitions for socket options | |
| 1994 | |
| 1995 SUNAUDIODEV: symbolic constant definitions for sunaudiodef (sun only) | |
| 1996 | |
| 1997 SV: symbolic constat definitions for sv (sgi only) | |
| 1998 | |
| 1999 CD: symbolic constat definitions for cd (sgi only) | |
| 2000 | |
| 2001 | |
| 2002 New demos | |
| 2003 --------- | |
| 2004 | |
| 2005 scripts/pp.py: execute Python as a filter with a Perl-like command | |
| 2006 line interface | |
| 2007 | |
| 2008 classes/: examples using the new class features | |
| 2009 | |
| 2010 threads/: examples using the new thread module | |
| 2011 | |
| 2012 sgi/cd/: examples using the new cd module | |
| 2013 | |
| 2014 | |
| 2015 Changes to the documentation | |
| 2016 ---------------------------- | |
| 2017 | |
| 2018 The last-minute syntax changes of release 0.9.6 are now reflected | |
| 2019 everywhere in the manuals | |
| 2020 | |
| 2021 The reference manual has a new section (3.2) on implementing new kinds | |
| 2022 of numbers, sequences or mappings with user classes | |
| 2023 | |
| 2024 Classes are now treated extensively in the tutorial (chapter 9) | |
| 2025 | |
| 2026 Slightly restructured the system-dependent chapters of the library | |
| 2027 manual | |
| 2028 | |
| 2029 The file misc/EXTENDING incorporates documentation for mkvalue() and | |
| 2030 a new section on error handling | |
| 2031 | |
| 2032 The files misc/CLASSES and misc/ERRORS are no longer necessary | |
| 2033 | |
| 2034 The doc/Makefile now creates PostScript files automatically | |
| 2035 | |
| 2036 | |
| 2037 Miscellaneous changes | |
| 2038 --------------------- | |
| 2039 | |
| 2040 Incorporated Tim Peters' changes to python-mode.el, it's now version | |
| 2041 1.06 | |
| 2042 | |
| 2043 A python/Emacs bridge (provided by Terrence M. Brannon) lets a Python | |
| 2044 program running in an Emacs buffer execute Emacs lisp code. The | |
| 2045 necessary Python code is in lib/emacs.py. The Emacs code is | |
| 2046 misc/py-connect.el (it needs some external Emacs lisp code) | |
| 2047 | |
| 2048 | |
| 2049 Changes to the source code that affect C extension writers | |
| 2050 ---------------------------------------------------------- | |
| 2051 | |
| 2052 New service function mkvalue() to construct a Python object from C | |
| 2053 values according to a "format" string a la getargs() | |
| 2054 | |
| 2055 Most functions from pythonmain.c moved to new pythonrun.c which is | |
| 2056 in libpython.a. This should make embedded versions of Python easier | |
| 2057 | |
| 2058 ceval.h is split in eval.h (which needs compile.h and only declares | |
| 2059 eval_code) and ceval.h (which doesn't need compile.hand declares the | |
| 2060 rest) | |
| 2061 | |
| 2062 ceval.h defines macros BGN_SAVE / END_SAVE for use with threads (to | |
| 2063 improve the parallellism of multi-threaded programs by letting other | |
| 2064 Python code run when a blocking system call or something similar is | |
| 2065 made) | |
| 2066 | |
| 2067 In structmember.[ch], new member types BYTE, CHAR and unsigned | |
| 2068 variants have been added | |
| 2069 | |
| 2070 New file xxmodule.c is a template for new extension modules. | |
| 2071 | |
|
1948
9bcac8da0262
Moved older news to HISTORY file
Guido van Rossum <guido@python.org>
parents:
1529
diff
changeset
|
2072 |
| 1529 | 2073 ================================== |
| 2074 ==> RELEASE 0.9.6 (6 Apr 1992) <== | |
| 2075 ================================== | |
| 2076 | |
| 2077 Misc news in 0.9.6: | |
| 2078 - Restructured the misc subdirectory | |
| 2079 - Reference manual completed, library manual much extended (with indexes!) | |
| 2080 - the GNU Readline library is now distributed standard with Python | |
| 2081 - the script "../demo/scripts/classfix.py" fixes Python modules using old | |
| 2082 class syntax | |
| 2083 - Emacs python-mode.el (was python.el) vastly improved (thanks, Tim!) | |
| 2084 - Because of the GNU copyleft business I am not using the GNU regular | |
| 2085 expression implementation but a free re-implementation by Tatu Ylonen | |
| 2086 that recently appeared in comp.sources.misc (Bravo, Tatu!) | |
| 2087 | |
| 2088 New features in 0.9.6: | |
| 2089 - stricter try stmt syntax: cannot mix except and finally clauses on 1 try | |
| 2090 - New module 'os' supplants modules 'mac' and 'posix' for most cases; | |
| 2091 module 'path' is replaced by 'os.path' | |
| 2092 - os.path.split() return value differs from that of old path.split() | |
| 2093 - sys.exc_type, sys.exc_value, sys.exc_traceback are set to the exception | |
| 2094 currently being handled | |
| 2095 - sys.last_type, sys.last_value, sys.last_traceback remember last unhandled | |
| 2096 exception | |
| 2097 - New function string.expandtabs() expands tabs in a string | |
| 2098 - Added times() interface to posix (user & sys time of process & children) | |
| 2099 - Added uname() interface to posix (returns OS type, hostname, etc.) | |
| 2100 - New built-in function execfile() is like exec() but from a file | |
| 2101 - Functions exec() and eval() are less picky about whitespace/newlines | |
| 2102 - New built-in functions getattr() and setattr() access arbitrary attributes | |
| 2103 - More generic argument handling in built-in functions (see "./EXTENDING") | |
| 2104 - Dynamic loading of modules written in C or C++ (see "./DYNLOAD") | |
| 2105 - Division and modulo for long and plain integers with negative operands | |
| 2106 have changed; a/b is now floor(float(a)/float(b)) and a%b is defined | |
| 2107 as a-(a/b)*b. So now the outcome of divmod(a,b) is the same as | |
| 2108 (a/b, a%b) for integers. For floats, % is also changed, but of course | |
| 2109 / is unchanged, and divmod(x,y) does not yield (x/y, x%y)... | |
| 2110 - A function with explicit variable-length argument list can be declared | |
| 2111 like this: def f(*args): ...; or even like this: def f(a, b, *rest): ... | |
| 2112 - Code tracing and profiling features have been added, and two source | |
| 2113 code debuggers are provided in the library (pdb.py, tty-oriented, | |
| 2114 and wdb, window-oriented); you can now step through Python programs! | |
| 2115 See sys.settrace() and sys.setprofile(), and "../lib/pdb.doc" | |
| 2116 - '==' is now the only equality operator; "../demo/scripts/eqfix.py" is | |
| 2117 a script that fixes old Python modules | |
| 2118 - Plain integer right shift now uses sign extension | |
| 2119 - Long integer shift/mask operations now simulate 2's complement | |
| 2120 to give more useful results for negative operands | |
| 2121 - Changed/added range checks for long/plain integer shifts | |
| 2122 - Options found after "-c command" are now passed to the command in sys.argv | |
| 2123 (note subtle incompatiblity with "python -c command -- -options"!) | |
| 2124 - Module stdwin is better protected against touching objects after they've | |
| 2125 been closed; menus can now also be closed explicitly | |
| 2126 - Stdwin now uses its own exception (stdwin.error) | |
| 2127 | |
| 2128 New features in 0.9.5 (released as Macintosh application only, 2 Jan 1992): | |
| 2129 - dictionary objects can now be compared properly; e.g., {}=={} is true | |
| 2130 - new exception SystemExit causes termination if not caught; | |
| 2131 it is raised by sys.exit() so that 'finally' clauses can clean up, | |
| 2132 and it may even be caught. It does work interactively! | |
| 2133 - new module "regex" implements GNU Emacs style regular expressions; | |
| 2134 module "regexp" is rewritten in Python for backward compatibility | |
| 2135 - formal parameter lists may contain trailing commas | |
| 2136 | |
| 2137 Bugs fixed in 0.9.6: | |
| 2138 - assigning to or deleting a list item with a negative index dumped core | |
| 2139 - divmod(-10L,5L) returned (-3L, 5L) instead of (-2L, 0L) | |
| 2140 | |
| 2141 Bugs fixed in 0.9.5: | |
| 2142 - masking operations involving negative long integers gave wrong results | |
| 2143 | |
| 2144 | |
| 2145 =================================== | |
| 2146 ==> RELEASE 0.9.4 (24 Dec 1991) <== | |
| 2147 =================================== | |
| 2148 | |
| 2149 - new function argument handling (see below) | |
| 2150 - built-in apply(func, args) means func(args[0], args[1], ...) | |
| 2151 - new, more refined exceptions | |
| 2152 - new exception string values (NameError = 'NameError' etc.) | |
| 2153 - better checking for math exceptions | |
| 2154 - for sequences (string/tuple/list), x[-i] is now equivalent to x[len(x)-i] | |
| 2155 - fixed list assignment bug: "a[1:1] = a" now works correctly | |
| 2156 - new class syntax, without extraneous parentheses | |
| 2157 - new 'global' statement to assign global variables from within a function | |
| 2158 | |
| 2159 | |
| 2160 New class syntax | |
| 2161 ---------------- | |
| 2162 | |
| 2163 You can now declare a base class as follows: | |
| 2164 | |
| 2165 class B: # Was: class B(): | |
| 2166 def some_method(self): ... | |
| 2167 ... | |
| 2168 | |
| 2169 and a derived class thusly: | |
| 2170 | |
| 2171 class D(B): # Was: class D() = B(): | |
| 2172 def another_method(self, arg): ... | |
| 2173 | |
| 2174 Multiple inheritance looks like this: | |
| 2175 | |
| 2176 class M(B, D): # Was: class M() = B(), D(): | |
| 2177 def this_or_that_method(self, arg): ... | |
| 2178 | |
| 2179 The old syntax is still accepted by Python 0.9.4, but will disappear | |
| 2180 in Python 1.0 (to be posted to comp.sources). | |
| 2181 | |
| 2182 | |
| 2183 New 'global' statement | |
| 2184 ---------------------- | |
| 2185 | |
| 2186 Every now and then you have a global variable in a module that you | |
| 2187 want to change from within a function in that module -- say, a count | |
| 2188 of calls to a function, or an option flag, etc. Until now this was | |
| 2189 not directly possible. While several kludges are known that | |
| 2190 circumvent the problem, and often the need for a global variable can | |
| 2191 be avoided by rewriting the module as a class, this does not always | |
| 2192 lead to clearer code. | |
| 2193 | |
| 2194 The 'global' statement solves this dilemma. Its occurrence in a | |
| 2195 function body means that, for the duration of that function, the | |
| 2196 names listed there refer to global variables. For instance: | |
| 2197 | |
| 2198 total = 0.0 | |
| 2199 count = 0 | |
| 2200 | |
| 2201 def add_to_total(amount): | |
| 2202 global total, count | |
| 2203 total = total + amount | |
| 2204 count = count + 1 | |
| 2205 | |
| 2206 'global' must be repeated in each function where it is needed. The | |
| 2207 names listed in a 'global' statement must not be used in the function | |
| 2208 before the statement is reached. | |
| 2209 | |
| 2210 Remember that you don't need to use 'global' if you only want to *use* | |
| 2211 a global variable in a function; nor do you need ot for assignments to | |
| 2212 parts of global variables (e.g., list or dictionary items or | |
| 2213 attributes of class instances). This has not changed; in fact | |
| 2214 assignment to part of a global variable was the standard workaround. | |
| 2215 | |
| 2216 | |
| 2217 New exceptions | |
| 2218 -------------- | |
| 2219 | |
| 2220 Several new exceptions have been defined, to distinguish more clearly | |
| 2221 between different types of errors. | |
| 2222 | |
| 2223 name meaning was | |
| 2224 | |
| 2225 AttributeError reference to non-existing attribute NameError | |
| 2226 IOError unexpected I/O error RuntimeError | |
| 2227 ImportError import of non-existing module or name NameError | |
| 2228 IndexError invalid string, tuple or list index RuntimeError | |
| 2229 KeyError key not in dictionary RuntimeError | |
| 2230 OverflowError numeric overflow RuntimeError | |
| 2231 SyntaxError invalid syntax RuntimeError | |
| 2232 ValueError invalid argument value RuntimeError | |
| 2233 ZeroDivisionError division by zero RuntimeError | |
| 2234 | |
| 2235 The string value of each exception is now its name -- this makes it | |
| 2236 easier to experimentally find out which operations raise which | |
| 2237 exceptions; e.g.: | |
| 2238 | |
| 2239 >>> KeyboardInterrupt | |
| 2240 'KeyboardInterrupt' | |
| 2241 >>> | |
| 2242 | |
| 2243 | |
| 2244 New argument passing semantics | |
| 2245 ------------------------------ | |
| 2246 | |
| 2247 Off-line discussions with Steve Majewski and Daniel LaLiberte have | |
| 2248 convinced me that Python's parameter mechanism could be changed in a | |
| 2249 way that made both of them happy (I hope), kept me happy, fixed a | |
| 2250 number of outstanding problems, and, given some backward compatibility | |
| 2251 provisions, would only break a very small amount of existing code -- | |
| 2252 probably all mine anyway. In fact I suspect that most Python users | |
| 2253 will hardly notice the difference. And yet it has cost me at least | |
| 2254 one sleepless night to decide to make the change... | |
| 2255 | |
| 2256 Philosophically, the change is quite radical (to me, anyway): a | |
| 2257 function is no longer called with either zero or one argument, which | |
| 2258 is a tuple if there appear to be more arguments. Every function now | |
| 2259 has an argument list containing 0, 1 or more arguments. This list is | |
| 2260 always implemented as a tuple, and it is a (run-time) error if a | |
| 2261 function is called with a different number of arguments than expected. | |
| 2262 | |
| 2263 What's the difference? you may ask. The answer is, very little unless | |
| 2264 you want to write variadic functions -- functions that may be called | |
| 2265 with a variable number of arguments. Formerly, you could write a | |
| 2266 function that accepted one or more arguments with little trouble, but | |
| 2267 writing a function that could be called with either 0 or 1 argument | |
| 2268 (or more) was next to impossible. This is now a piece of cake: you | |
| 2269 can simply declare an argument that receives the entire argument | |
| 2270 tuple, and check its length -- it will be of size 0 if there are no | |
| 2271 arguments. | |
| 2272 | |
| 2273 Another anomaly of the old system was the way multi-argument methods | |
| 2274 (in classes) had to be declared, e.g.: | |
| 2275 | |
| 2276 class Point(): | |
| 2277 def init(self, (x, y, color)): ... | |
| 2278 def setcolor(self, color): ... | |
| 2279 dev moveto(self, (x, y)): ... | |
| 2280 def draw(self): ... | |
| 2281 | |
| 2282 Using the new scheme there is no need to enclose the method arguments | |
| 2283 in an extra set of parentheses, so the above class could become: | |
| 2284 | |
| 2285 class Point: | |
| 2286 def init(self, x, y, color): ... | |
| 2287 def setcolor(self, color): ... | |
| 2288 dev moveto(self, x, y): ... | |
| 2289 def draw(self): ... | |
| 2290 | |
| 2291 That is, the equivalence rule between methods and functions has | |
| 2292 changed so that now p.moveto(x,y) is equivalent to Point.moveto(p,x,y) | |
| 2293 while formerly it was equivalent to Point.moveto(p,(x,y)). | |
| 2294 | |
| 2295 A special backward compatibility rule makes that the old version also | |
| 2296 still works: whenever a function with exactly two arguments (at the top | |
| 2297 level) is called with more than two arguments, the second and further | |
| 2298 arguments are packed into a tuple and passed as the second argument. | |
| 2299 This rule is invoked independently of whether the function is actually a | |
| 2300 method, so there is a slight chance that some erroneous calls of | |
| 2301 functions expecting two arguments with more than that number of | |
| 2302 arguments go undetected at first -- when the function tries to use the | |
| 2303 second argument it may find it is a tuple instead of what was expected. | |
| 2304 Note that this rule will be removed from future versions of the | |
| 2305 language; it is a backward compatibility provision *only*. | |
| 2306 | |
| 2307 Two other rules and a new built-in function handle conversion between | |
| 2308 tuples and argument lists: | |
| 2309 | |
| 2310 Rule (a): when a function with more than one argument is called with a | |
| 2311 single argument that is a tuple of the right size, the tuple's items | |
| 2312 are used as arguments. | |
| 2313 | |
| 2314 Rule (b): when a function with exactly one argument receives no | |
| 2315 arguments or more than one, that one argument will receive a tuple | |
| 2316 containing the arguments (the tuple will be empty if there were no | |
| 2317 arguments). | |
| 2318 | |
| 2319 | |
| 2320 A new built-in function, apply(), was added to support functions that | |
| 2321 need to call other functions with a constructed argument list. The call | |
| 2322 | |
| 2323 apply(function, tuple) | |
| 2324 | |
| 2325 is equivalent to | |
| 2326 | |
| 2327 function(tuple[0], tuple[1], ..., tuple[len(tuple)-1]) | |
| 2328 | |
| 2329 | |
| 2330 While no new argument syntax was added in this phase, it would now be | |
| 2331 quite sensible to add explicit syntax to Python for default argument | |
| 2332 values (as in C++ or Modula-3), or a "rest" argument to receive the | |
| 2333 remaining arguments of a variable-length argument list. | |
| 2334 | |
| 2335 | |
| 2336 ======================================================== | |
| 2337 ==> Release 0.9.3 (never made available outside CWI) <== | |
| 2338 ======================================================== | |
| 2339 | |
| 2340 - string sys.version shows current version (also printed on interactive entry) | |
| 2341 - more detailed exceptions, e.g., IOError, ZeroDivisionError, etc. | |
| 2342 - 'global' statement to declare module-global variables assigned in functions. | |
| 2343 - new class declaration syntax: class C(Base1, Base2, ...): suite | |
| 2344 (the old syntax is still accepted -- be sure to convert your classes now!) | |
| 2345 - C shifting and masking operators: << >> ~ & ^ | (for ints and longs). | |
| 2346 - C comparison operators: == != (the old = and <> remain valid). | |
| 2347 - floating point numbers may now start with a period (e.g., .14). | |
| 2348 - definition of integer division tightened (always truncates towards zero). | |
| 2349 - new builtins hex(x), oct(x) return hex/octal string from (long) integer. | |
| 2350 - new list method l.count(x) returns the number of occurrences of x in l. | |
| 2351 - new SGI module: al (Indigo and 4D/35 audio library). | |
| 2352 - the FORMS interface (modules fl and FL) now uses FORMS 2.0 | |
| 2353 - module gl: added lrect{read,write}, rectzoom and pixmode; | |
| 2354 added (non-GL) functions (un)packrect. | |
| 2355 - new socket method: s.allowbroadcast(flag). | |
| 2356 - many objects support __dict__, __methods__ or __members__. | |
| 2357 - dir() lists anything that has __dict__. | |
| 2358 - class attributes are no longer read-only. | |
| 2359 - classes support __bases__, instances support __class__ (and __dict__). | |
| 2360 - divmod() now also works for floats. | |
| 2361 - fixed obscure bug in eval('1 '). | |
| 2362 | |
| 2363 | |
| 2364 =================================== | |
| 2365 ==> Release 0.9.2 (Autumn 1991) <== | |
| 2366 =================================== | |
| 2367 | |
| 2368 Highlights | |
| 2369 ---------- | |
| 2370 | |
| 2371 - tutorial now (almost) complete; library reference reorganized | |
| 2372 - new syntax: continue statement; semicolons; dictionary constructors; | |
| 2373 restrictions on blank lines in source files removed | |
| 2374 - dramatically improved module load time through precompiled modules | |
| 2375 - arbitrary precision integers: compute 2 to the power 1000 and more... | |
| 2376 - arithmetic operators now accept mixed type operands, e.g., 3.14/4 | |
| 2377 - more operations on list: remove, index, reverse; repetition | |
| 2378 - improved/new file operations: readlines, seek, tell, flush, ... | |
| 2379 - process management added to the posix module: fork/exec/wait/kill etc. | |
| 2380 - BSD socket operations (with example servers and clients!) | |
| 2381 - many new STDWIN features (color, fonts, polygons, ...) | |
| 2382 - new SGI modules: font manager and FORMS library interface | |
| 2383 | |
| 2384 | |
| 2385 Extended list of changes in 0.9.2 | |
| 2386 --------------------------------- | |
| 2387 | |
| 2388 Here is a summary of the most important user-visible changes in 0.9.2, | |
| 2389 in somewhat arbitrary order. Changes in later versions are listed in | |
| 2390 the "highlights" section above. | |
| 2391 | |
| 2392 | |
| 2393 1. Changes to the interpreter proper | |
| 2394 | |
| 2395 - Simple statements can now be separated by semicolons. | |
| 2396 If you write "if t: s1; s2", both s1 and s2 are executed | |
| 2397 conditionally. | |
| 2398 - The 'continue' statement was added, with semantics as in C. | |
| 2399 - Dictionary displays are now allowed on input: {key: value, ...}. | |
| 2400 - Blank lines and lines bearing only a comment no longer need to | |
| 2401 be indented properly. (A completely empty line still ends a multi- | |
| 2402 line statement interactively.) | |
| 2403 - Mixed arithmetic is supported, 1 compares equal to 1.0, etc. | |
| 2404 - Option "-c command" to execute statements from the command line | |
| 2405 - Compiled versions of modules are cached in ".pyc" files, giving a | |
| 2406 dramatic improvement of start-up time | |
| 2407 - Other, smaller speed improvements, e.g., extracting characters from | |
| 2408 strings, looking up single-character keys, and looking up global | |
| 2409 variables | |
| 2410 - Interrupting a print operation raises KeyboardInterrupt instead of | |
| 2411 only cancelling the print operation | |
| 2412 - Fixed various portability problems (it now passes gcc with only | |
| 2413 warnings -- more Standard C compatibility will be provided in later | |
| 2414 versions) | |
| 2415 - Source is prepared for porting to MS-DOS | |
| 2416 - Numeric constants are now checked for overflow (this requires | |
| 2417 standard-conforming strtol() and strtod() functions; a correct | |
| 2418 strtol() implementation is provided, but the strtod() provided | |
| 2419 relies on atof() for everything, including error checking | |
| 2420 | |
| 2421 | |
| 2422 2. Changes to the built-in types, functions and modules | |
| 2423 | |
| 2424 - New module socket: interface to BSD socket primitives | |
| 2425 - New modules pwd and grp: access the UNIX password and group databases | |
| 2426 - (SGI only:) New module "fm" interfaces to the SGI IRIX Font Manager | |
| 2427 - (SGI only:) New module "fl" interfaces to Mark Overmars' FORMS library | |
| 2428 - New numeric type: long integer, for unlimited precision | |
| 2429 - integer constants suffixed with 'L' or 'l' are long integers | |
| 2430 - new built-in function long(x) converts int or float to long | |
| 2431 - int() and float() now also convert from long integers | |
| 2432 - New built-in function: | |
| 2433 - pow(x, y) returns x to the power y | |
| 2434 - New operation and methods for lists: | |
| 2435 - l*n returns a new list consisting of n concatenated copies of l | |
| 2436 - l.remove(x) removes the first occurrence of the value x from l | |
| 2437 - l.index(x) returns the index of the first occurrence of x in l | |
| 2438 - l.reverse() reverses l in place | |
| 2439 - New operation for tuples: | |
| 2440 - t*n returns a tuple consisting of n concatenated copies of t | |
| 2441 - Improved file handling: | |
| 2442 - f.readline() no longer restricts the line length, is faster, | |
| 2443 and isn't confused by null bytes; same for raw_input() | |
| 2444 - f.read() without arguments reads the entire (rest of the) file | |
| 2445 - mixing of print and sys.stdout.write() has different effect | |
| 2446 - New methods for files: | |
| 2447 - f.readlines() returns a list containing the lines of the file, | |
| 2448 as read with f.readline() | |
| 2449 - f.flush(), f.tell(), f.seek() call their stdio counterparts | |
| 2450 - f.isatty() tests for "tty-ness" | |
| 2451 - New posix functions: | |
| 2452 - _exit(), exec(), fork(), getpid(), getppid(), kill(), wait() | |
| 2453 - popen() returns a file object connected to a pipe | |
| 2454 - utime() replaces utimes() (the latter is not a POSIX name) | |
| 2455 - New stdwin features, including: | |
| 2456 - font handling | |
| 2457 - color drawing | |
| 2458 - scroll bars made optional | |
| 2459 - polygons | |
| 2460 - filled and xor shapes | |
| 2461 - text editing objects now have a 'settext' method | |
| 2462 | |
| 2463 | |
| 2464 3. Changes to the standard library | |
| 2465 | |
| 2466 - Name change: the functions path.cat and macpath.cat are now called | |
| 2467 path.join and macpath.join | |
| 2468 - Added new modules: formatter, mutex, persist, sched, mainloop | |
| 2469 - Added some modules and functionality to the "widget set" (which is | |
| 2470 still under development, so please bear with me): | |
| 2471 DirList, FormSplit, TextEdit, WindowSched | |
| 2472 - Fixed module testall to work non-interactively | |
| 2473 - Module string: | |
| 2474 - added functions join() and joinfields() | |
| 2475 - fixed center() to work correct and make it "transitive" | |
| 2476 - Obsolete modules were removed: util, minmax | |
| 2477 - Some modules were moved to the demo directory | |
| 2478 | |
| 2479 | |
| 2480 4. Changes to the demonstration programs | |
| 2481 | |
| 2482 - Added new useful scipts: byteyears, eptags, fact, from, lfact, | |
| 2483 objgraph, pdeps, pi, primes, ptags, which | |
| 2484 - Added a bunch of socket demos | |
| 2485 - Doubled the speed of ptags | |
| 2486 - Added new stdwin demos: microedit, miniedit | |
| 2487 - Added a windowing interface to the Python interpreter: python (most | |
| 2488 useful on the Mac) | |
| 2489 - Added a browser for Emacs info files: demo/stdwin/ibrowse | |
| 2490 (yes, I plan to put all STDWIN and Python documentation in texinfo | |
| 2491 form in the future) | |
| 2492 | |
| 2493 | |
| 2494 5. Other changes to the distribution | |
| 2495 | |
| 2496 - An Emacs Lisp file "python.el" is provided to facilitate editing | |
| 2497 Python programs in GNU Emacs (slightly improved since posted to | |
| 2498 gnu.emacs.sources) | |
| 2499 - Some info on writing an extension in C is provided | |
| 2500 - Some info on building Python on non-UNIX platforms is provided | |
| 2501 | |
| 2502 | |
| 2503 ===================================== | |
| 2504 ==> Release 0.9.1 (February 1991) <== | |
| 2505 ===================================== | |
| 2506 | |
| 2507 - Micro changes only | |
| 2508 - Added file "patchlevel.h" | |
| 2509 | |
| 2510 | |
| 2511 ===================================== | |
| 2512 ==> Release 0.9.0 (February 1991) <== | |
| 2513 ===================================== | |
| 2514 | |
| 2515 Original posting to alt.sources. |
