summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 6e46244e89a0768304b52547343c229781d9b175 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298

(-) systematically create /usr/local/lib/python/<machine>-<os>/
    subdirectories, with a lib/ subdirectory containing the lib*.a
    files etc.

(-) need newer DOS binary (16 bit version doesn't do default args)

(-) support for dynamically loadable libraries in makesetup and Extensions.
    e.g. add a make rule to build .so files (unfortunately need to figure
    out what ld option is needed) (more appropriate for makesetup
    script?)

(-) Move tkinter into the standard Modules directory; Tkinter c.s. to
    Lib/tkinter etc. (???)

(-) document Tk

(-) class browser

(-) interactive Python GUI (a la NT thingie)

(-) speedup finddfa (and classify?)

(-) more stuff under CVS (demo, extensions)

(-) Mac port of 1.1

(-) Mac port of STDWIN 0.9.9 to THINK C 6.0

(-) use const for char * parameters (and many more) where possible

(-) The Great Renaming!

(-) redo __xxx__ operators for class instances

(-) document __getattr__, __setattr__

(-) add __delattr__ to class instances

(-) many things that take strings should also take arrays of chars

(-) add list of existing extensions to FAQ

(-) update "recent additions" chapter in tutorial

(-) rewrite "output formatting" chapter in tutorial

(*) pass OPT from environment via configure to Makefile

(*) version.c should be recompiled for each link

(*) stropmodule should export find/rfind instead of index/rindex

(*) add __getattr__, __setattr__ to class instances

(*) fix pow(x, y, z) for integers

(*) add tuple(seq) to turn any sequence into a tuple

(*) Win32s for PC

(*) integrate NT changes

(*) write a script and add a "Make" rule (perhaps) that changes
    #!/usr/local/bin/python to something else in all scripts around.

(*) int*int overflow check shouldn't doubles on alpha (cf. John Tromp's mail)

(*) add signal.alarm()

(*) when abort()ing because of unexpected exception, print a message
    first (Jack)

----------------------------------------------------------------------
(from BUGS1.0.1)
----------------------------------------------------------------------
(-) document addpack, urllib, ...

(*) import.c from JaapV

(*) document os.exec*

(*) name sunaudiodevmodule.c is too long

(*) play with / include SUIT interface

(-) make regsub.[g]sub() optionally case insensitive

======================================================================

(*) ought to use features from autoconf 1.8

(*) errors in __repr__() are handled wrong when called from format

(*) long(0x80000000) has wrong value!

(-) hex(0x80000000) shouldn't have sign (?)

(*) need way to set buffering at file open time

(*) need way to force stdout unbuffered

(*) restart CVS tree

(?) build shared libs for SunOS 4.1.3

(-) dynamic linking on the Mac (is this a dream?)

(*) X patches from Adrian Phillips

(*) Jaap's freeze script

Incorporate with contrib status:
- additions to glmodule by rg3h
(*) Jaap's posixfile module (with locking)
(*) pthreads interface

Later:
- put the offending object in IOError and posix.error
- make module marshal work with user-defined file-like objects
- built-in help?
- hierarchical module names?

Big plans:

- allow separate interpreters (a la Xt's Applocation Contexts, and Tcl)
- great renaming
- complete reflexive nature of the language, e.g. have interfaces et
create any kind of object
(*) GUI interface a la Tk


======================================================================
For FAQ:

(*) why don't strings (numbers, tuples, ...) have methods / attributes

(*) why are strings / numbers / tuples immutable

why don't list methods return self

======================================================================
PM/TODO list after Egypt (from mailing list):

make .pyc files executable (how?)

thread status and improvements (lock stmt; signal/wait)

optional optimizations

pthread migration

(*) test/incorporate new SUIT

shorten excessively long filenames (sunaudiodevmodule.c)

(*) default parameter values

multiple interpreter objects

(*) import shlib bug (irix5.2) (reload, dlclose)

(*) addpack.py

(*) newmodule.c (or other hacks to create new modules, classes, functions
    etc. from their components)

persistency

new Dbhash.py, dbhash library

reraise; or raise 3rd param for traceback?
-or- except type, value, tbackobjec

redesign exceptions from scratch?

dbm objects miss items(), values() methods

(*) jar's new profile

answer q about coerce()

(*) reconsider pass [expression] ??? -or- don't print non-interactive
    exprs -or- option to suppress printing non-None expressions

(*) should be able to hash code objs (add fns to convert between lists/tuples)

describe() ?

distribute demo2 with Holmes

(*) re-reply on try-continue

classes are too slow

add += etc. ?

optimize tuple = tuple

allow (a, b) = [1, 2] and [1, 2] = (1, 2) ???

wustl is not un the northwest of the US?

(*) MPW doesn't like \000 in string literals?

MPW patches, unixemu patches

prepare tar files with
	- mac think projects (*)
	- mpw makefiles
	- dos makefiles
	- mac unixemu lib

explain rules about == vs. 'is' for strings (* by others on the list)

(*) bug in ceval.c DELETE_FAST

(*) possible optimize LOAD_NAME -> LOAD_GLOBAL

get dos python with suit (inesc)

(*) docs for try/continue are wrong and unclear

better hashing fn?

(*) add improved nested indent to python-mode.el

(*) add a section to tutorial on "new" features

rewrite section on formatting in tutorial

======================================================================
TODO-TOO list:

test for overflow when converting python long to float

lift restrictions on tuple or list in many cases

(*) allow long ints with sensible values for getargs "i"

(*) multiline string literals

what to do about 64-bit int literals (on 64-bit machines) in .pyc
files?  (Currently truncated w/o warning!)

DOCUMENTATION UPDATE!  E.g. ref.tex doesn't describe:
(*)	- line joins w/o backslash
(*)	- double-quoted strings; \" in strings
	- more?
Should double-check all changes with docs!

(?) Interrupting output still sometimes doesn't call clearerr() properly

sometimes ghost errors when interrupting during debugging in
'continue' mode?

typing a comment to a primary prompt shouldn't issue a secondary prompt

readline: add hooks to recognize Python syntax and to expand Python
commands and names

should have absolute pathnames in function objects

in general check that all the exceptions are modernized and that the
messages aren't giving the same error twice (e.g., stdwinmodule.c!)

- check read/write allowed for file objects

- introduce macros to set/inspect errno for syscalls, to support things
  like getoserr()

======================================================================
DOS/Windows Python

(???) command line options?

(*) os.system()

(???) interrupts

(???) wrap

(*) pc module

(*) dospath.py

DOS/Windows Python -- TO DO

(*) memtest from config.h

(*) copy sources back

(*) build DOS version

(*) distribute 386 version

(*) Mac 1.0.1 release?
======================================================================