This commit was manufactured by cvs2svn to create tag 'cnrisync'.
[python/dscho.git] / TODO
blob8802fbd50b4a8219a34835e8f142c86df8128bef
1 (-) many module should export their symbolic constants instead of
2 relying on a module written in Python
4 (-) change regexmodule.c to cooperate with other non-python users and
5 to export the symbolic constants
7 (-) save/restore sys.exc_{type,value,traceback} around except clauses.
9 (-) don't call class instance's __del__ more than once?????
11 (-) add "access" to posix?  What name should it have?
13 (-) add facility to "freeze" lists and dictionaries?
15 (-) add WNOHANG to posix
17 (-) support lists in newgetargs()
19 (-) syntax errors detected during compilation should give line number
21 (-) dbm.open(): rwmode, filemode should be made optional; same for gdbm
23 (-) find a bsd hash interface
25 (-) posix.mkdir(): mode should be made optional
27 (-) find a more useful order than alphabetical for Doc/libfuncs.tex
29 ======================================================================
31 (*) use my getopt.c on Linux
33 (*) get Extensions/X11/Doc checked in and out
35 (-) investigate PPRC <URL:ftp://ftp.parc.xerox.com/pub/ppcr/>
37 (*) add buffering parameter to fdopen() and popen()
39 (-) interface to getdtablesize() in posix
41 (-) reentrancy with global variables vs. decref in
42 ./Modules/cdmodule.c ./Modules/flmodule.c ./Objects/accessobject.c
43 ./Objects/frameobject.c ./Python/traceback.c
45 (*) fix reentrancy in list updates?
47 (-) speed up regsub.gsub
49 (*) change md5.md5() to md5.new()
51 (-) try posixenviron.c and merge back into posixmodule.c?
53 (*) document chown()
55 (-) add and document chroot() ?
57 (*) use add gethostname_r and release thread lock when it exists
59 (-) Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' to `Makefile.in'
61 (-) modules should be able to define a module destructor hook
63 (-) destroy modules in reverse order of importation?
65 (-) make array a standard built-in object
67 (-) makesetup should accept .o files without corresponding .c file
69 (*) use autoconf 2.0
71 ======================================================================
72 Release 1.1.1 (10 Nov 1994)
73 ======================================================================
75 (-) try Boehm/Dehmers/Weiser conservative garbage collector
77 (*) implement new 'flatten' module
79 (-) document new Python/C API
81 (*) __import__, module imp
83 (-) add various things to module dictionary, e.g. pathname, dictionary
84 where found, __version__ string?
86 (-) pass dict of builtins to exec / execfile / eval ???
88 (?) stack frame correspondence problem (Jim Roskind)
89 (probably solved by err_fetch / err_restore)
91 (-) make lots of places use newgetargs
93 (*) no tp_str member in typeobject
95 (-) readline 2.0 on sequent has ^C problem (works only first time)
97 (*) add explanatory comments to Setup (especially about SGI modules
98 like 'cd')
100 (-) need to add truncate() and ftruncate() to posixmodule.c (Windows:
101 chsize(fd, size) (solution: added to file objects instead)
103 ======================================================================
104 Release 1.1 (11 Oct 1994)
105 ======================================================================
107 (-) improve performance of list.append/insert etc. by keeping high/low
108 watermark instead of realloc'ing each time?
110 (-) findmethod should cache (also findmember?)
112 (-) sysget("check_interval") is called before each method call which
113 breaks dictlookup caching
115 (*) core dump on import of ridiculously long module name
117 (-) core dump on repr / print of deeply nested or recursive object
119 (*) parsing from string should calculate line numbers
121 (-) whrandom doc needs update
123 (*) mpz power is still binary insterad of ternary
125 (*) design interface to call arbitrary asynchronous routines
127 (*) whrandom.set...(0,0,0) doesn't generate random numbers
129 (*) Lance's latest curses additions
131 (*) Jack's new code:
132         (*) new xxmodule.c
133         (*) mac has type for .pyc files
134         (*) should run .pyc files when passed as command line argument
136 (*) all new all singing all dancing freeze script
138 (*) make clean should remove *.so and not Makefile.pre
140 (-) fix signalmodule.c to re-establish SIGC[H]LD handler
142 (*) try out Kees Blom's railroad diagram generator
144 (-) redesign error handling (cf. Donald's mail)
146 (*) do MPW and THINK still not support sys_errlist?  Indeed not (neither).
148 (-) does MPW 3.2 need the MPW_881_BUG defined in Parser/acceler.c
150 (-) rename MPW_3_1 define (which really means 3.x)
152 (*) incorporate urlparse.py, uu.py
154 (*) rewrite instance __getattr__ etc. to store ptr in class instead of
155 instance -- also have separate __delattr__
157 (-) add warning to docs about sys.exc_traceback and sys.last_traceback.
159 (-) Some stdwin wishes:
161     (-) stdwinmodule should keep track of textedit rec's per window
162         (in a chain) so it can unlink them when the window is closed
163         before the te rec
165     (-) textedit flashes at return or backspace
167     (-) there's no way to show the text caret after a multi-line paste?
169 (*) termios module
171 (*) put signal patches out separately
173 (-) latex docs for signal module
175 (*) More MPW and Mac changes
177 (*) Sjoerd's compileall script
179 (-) systematically create /usr/local/lib/python/<machine>-<os>/
180     subdirectories, with a lib/ subdirectory containing the lib*.a
181     files etc.
183 (-) need newer DOS binary (16 bit version doesn't do default args)
185 (*) support for dynamically loadable libraries in makesetup and Extensions.
186     e.g. add a make rule to build .so files (unfortunately need to figure
187     out what ld option is needed) (more appropriate for makesetup
188     script?)
190 (*) Move tkinter into the standard Modules directory; Tkinter c.s. to
191     Lib/tkinter etc. (???)
193 (-) document Tk
195 (-) class browser
197 (-) interactive Python GUI (a la NT thingie)
199 (*) speedup finddfa (and classify?)
201 (-) more stuff under CVS (demo, extensions)
203 (*) Mac port of 1.1
205 (*) Mac port of STDWIN 0.9.9 to THINK C 6.0
207 (-) use const for char * parameters (and many more) where possible
209 (-) The Great Renaming!
211 (*) redo __xxx__ operators for class instances
213 (-) document __getattr__, __setattr__
215 (*) add __delattr__ to class instances
217 (-) many things that take strings should also take arrays of chars
219 (-) add list of existing extensions to FAQ
221 (-) update "recent additions" chapter in tutorial
223 (-) rewrite "output formatting" chapter in tutorial
225 (*) pass OPT from environment via configure to Makefile
227 (*) version.c should be recompiled for each link
229 (*) stropmodule should export find/rfind instead of index/rindex
231 (*) add __getattr__, __setattr__ to class instances
233 (*) fix pow(x, y, z) for integers
235 (*) add tuple(seq) to turn any sequence into a tuple
237 (*) Win32s for PC
239 (*) integrate NT changes
241 (*) write a script and add a "Make" rule (perhaps) that changes
242     #!/usr/local/bin/python to something else in all scripts around.
244 (*) int*int overflow check shouldn't doubles on alpha (cf. John Tromp's mail)
246 (*) add signal.alarm()
248 (*) when abort()ing because of unexpected exception, print a message
249     first (Jack)
251 ----------------------------------------------------------------------
252 (from BUGS1.0.1)
253 ----------------------------------------------------------------------
254 (-) document addpack, urllib, ...
256 (*) import.c from JaapV
258 (*) document os.exec*
260 (*) name sunaudiodevmodule.c is too long
262 (*) play with / include SUIT interface
264 (-) make regsub.[g]sub() optionally case insensitive
266 ======================================================================
268 (*) ought to use features from autoconf 1.8
270 (*) errors in __repr__() are handled wrong when called from format
272 (*) long(0x80000000) has wrong value!
274 (-) hex(0x80000000) shouldn't have sign (?)
276 (*) need way to set buffering at file open time
278 (*) need way to force stdout unbuffered
280 (*) restart CVS tree
282 (?) build shared libs for SunOS 4.1.3
284 (-) dynamic linking on the Mac (is this a dream?)
286 (*) X patches from Adrian Phillips
288 (*) Jaap's freeze script
290 (-) Incorporate with contrib status:
291     - additions to glmodule by rg3h
292     (*) Jaap's posixfile module (with locking)
293     (*) pthreads interface
295 (-) Later:
296     - put the offending object in IOError and posix.error
297     - make module marshal work with user-defined file-like objects
298     - built-in help?
299     - hierarchical module names?
301 Big plans:
303 - allow separate interpreters (a la Xt's Applocation Contexts, and Tcl)
304 - great renaming
305 - complete reflexive nature of the language, e.g. have interfaces et
306 create any kind of object
307 (*) GUI interface a la Tk
310 ======================================================================
311 For FAQ:
313 (*) why don't strings (numbers, tuples, ...) have methods / attributes
315 (*) why are strings / numbers / tuples immutable
317 why don't list methods return self
319 ======================================================================
320 PM/TODO list after Egypt (from mailing list):
322 make .pyc files executable (how?)
324 thread status and improvements (lock stmt; signal/wait)
326 optional optimizations
328 pthread migration
330 (*) test/incorporate new SUIT
332 shorten excessively long filenames (sunaudiodevmodule.c)
334 (*) default parameter values
336 multiple interpreter objects
338 (*) import shlib bug (irix5.2) (reload, dlclose)
340 (*) addpack.py
342 (*) newmodule.c (or other hacks to create new modules, classes, functions
343     etc. from their components)
345 persistency
347 new Dbhash.py, dbhash library
349 (-) reraise; or raise 3rd param for traceback?
350     -or- except type, value, tbackobjec
352 (-) redesign exceptions from scratch?
354 (-) dbm objects miss items(), values() methods
356 (*) jar's new profile
358 (-) answer q about coerce()
360 (*) reconsider pass [expression] ??? -or- don't print non-interactive
361     exprs -or- option to suppress printing non-None expressions
363 (*) should be able to hash code objs (add fns to convert between lists/tuples)
365 (-) describe() ?
367 (-) distribute demo2 with Holmes
369 (*) re-reply on try-continue
371 (-) classes are too slow
373 (-) add += etc. ?
375 optimize tuple = tuple
377 allow (a, b) = [1, 2] and [1, 2] = (1, 2) ???
379 wustl is not un the northwest of the US?
381 (*) MPW doesn't like \000 in string literals?
383 MPW patches, unixemu patches
385 prepare tar files with
386         - mac think projects (*)
387         - mpw makefiles
388         - dos makefiles
389         - mac unixemu lib
391 explain rules about == vs. 'is' for strings (* by others on the list)
393 (*) bug in ceval.c DELETE_FAST
395 (*) possible optimize LOAD_NAME -> LOAD_GLOBAL
397 get dos python with suit (inesc)
399 (*) docs for try/continue are wrong and unclear
401 better hashing fn?
403 (*) add improved nested indent to python-mode.el
405 (*) add a section to tutorial on "new" features
407 rewrite section on formatting in tutorial
409 ======================================================================
410 TODO-TOO list:
412 test for overflow when converting python long to float
414 lift restrictions on tuple or list in many cases
416 (*) allow long ints with sensible values for getargs "i"
418 (*) multiline string literals
420 what to do about 64-bit int literals (on 64-bit machines) in .pyc
421 files?  (Currently truncated w/o warning!)
423 DOCUMENTATION UPDATE!  E.g. ref.tex doesn't describe:
424 (*)     - line joins w/o backslash
425 (*)     - double-quoted strings; \" in strings
426         - more?
427 Should double-check all changes with docs!
429 (?) Interrupting output still sometimes doesn't call clearerr() properly
431 sometimes ghost errors when interrupting during debugging in
432 'continue' mode?
434 typing a comment to a primary prompt shouldn't issue a secondary prompt
436 readline: add hooks to recognize Python syntax and to expand Python
437 commands and names
439 should have absolute pathnames in function objects
441 in general check that all the exceptions are modernized and that the
442 messages aren't giving the same error twice (e.g., stdwinmodule.c!)
444 - check read/write allowed for file objects
446 - introduce macros to set/inspect errno for syscalls, to support things
447   like getoserr()
449 ======================================================================
450 DOS/Windows Python
452 (???) command line options?
454 (*) os.system()
456 (???) interrupts
458 (???) wrap
460 (*) pc module
462 (*) dospath.py
464 DOS/Windows Python -- TO DO
466 (*) memtest from config.h
468 (*) copy sources back
470 (*) build DOS version
472 (*) distribute 386 version
474 (*) Mac 1.0.1 release?
475 ======================================================================