Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 1 | (*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc |
| 2 | |
| 3 | (-) if __getattr__ prints something, calling repr(x) from cmd line |
| 4 | forgets a newline |
| 5 | |
| 6 | (-) improve performance of list.append/insert etc. by keeping high/low |
| 7 | watermark instead of realloc'ing each time? |
| 8 | |
| 9 | (-) findmethod should cache (also findmember?) |
| 10 | |
| 11 | (-) sysget("check_interval") is called before each method call which |
| 12 | breaks dictlookup caching |
| 13 | |
| 14 | (*) core dump on import of ridiculously long module name |
| 15 | |
| 16 | (-) core dump on repr / print of deeply nested or recursive object |
| 17 | |
| 18 | (*) parsing from string should calculate line numbers |
| 19 | |
| 20 | (-) whrandom doc needs update |
| 21 | |
| 22 | (-) mpz power is still binary insterad of ternary |
| 23 | |
| 24 | (*) design interface to call arbitrary asynchronous routines |
| 25 | |
| 26 | (*) whrandom.set...(0,0,0) doesn't generate random numbers |
| 27 | |
| 28 | (*) Lance's latest curses additions |
| 29 | |
| 30 | (-) Jack's new code: |
| 31 | (*) new xxmodule.c |
| 32 | (*) mac has type for .pyc files |
| 33 | (*) should run .pyc files when passed as command line argument |
| 34 | |
| 35 | (*) all new all singing all dancing freeze script |
| 36 | |
| 37 | (*) make clean should remove *.so and not Makefile.pre |
| 38 | |
| 39 | (-) fix signalmodule.c to re-establish SIGC[H]LD handler |
| 40 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 41 | (-) try out Kees Blom's railroad diagram generator |
| 42 | |
Guido van Rossum | 7522f03 | 1994-08-30 12:42:01 +0000 | [diff] [blame] | 43 | (-) redesign error handling (cf. Donald's mail) |
| 44 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 45 | (*) do MPW and THINK still not support sys_errlist? Indeed not (neither). |
Guido van Rossum | 7522f03 | 1994-08-30 12:42:01 +0000 | [diff] [blame] | 46 | |
| 47 | (-) does MPW 3.2 need the MPW_881_BUG defined in Parser/acceler.c |
| 48 | |
| 49 | (-) rename MPW_3_1 define (which really means 3.x) |
| 50 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 51 | (*) incorporate urlparse.py, uu.py |
Guido van Rossum | 7522f03 | 1994-08-30 12:42:01 +0000 | [diff] [blame] | 52 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 53 | (*) rewrite instance __getattr__ etc. to store ptr in class instead of |
Guido van Rossum | 7522f03 | 1994-08-30 12:42:01 +0000 | [diff] [blame] | 54 | instance -- also have separate __delattr__ |
| 55 | |
| 56 | (-) add warning to docs about sys.exc_traceback and sys.last_traceback. |
| 57 | |
| 58 | (-) Some stdwin wishes: |
| 59 | |
| 60 | (-) stdwinmodule should keep track of textedit rec's per window |
| 61 | (in a chain) so it can unlink them when the window is closed |
| 62 | before the te rec |
| 63 | |
| 64 | (-) textedit flashes at return or backspace |
| 65 | |
| 66 | (-) there's no way to show the text caret after a multi-line paste? |
| 67 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 68 | (*) termios module |
Guido van Rossum | 7522f03 | 1994-08-30 12:42:01 +0000 | [diff] [blame] | 69 | |
| 70 | (*) put signal patches out separately |
| 71 | |
| 72 | (-) latex docs for signal module |
| 73 | |
| 74 | (*) More MPW and Mac changes |
| 75 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 76 | (*) Sjoerd's compileall script |
Guido van Rossum | 3d67fee | 1994-08-17 12:33:50 +0000 | [diff] [blame] | 77 | |
| 78 | (-) systematically create /usr/local/lib/python/<machine>-<os>/ |
| 79 | subdirectories, with a lib/ subdirectory containing the lib*.a |
| 80 | files etc. |
| 81 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 82 | (-) need newer DOS binary (16 bit version doesn't do default args) |
| 83 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 84 | (*) support for dynamically loadable libraries in makesetup and Extensions. |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 85 | e.g. add a make rule to build .so files (unfortunately need to figure |
| 86 | out what ld option is needed) (more appropriate for makesetup |
| 87 | script?) |
| 88 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 89 | (*) Move tkinter into the standard Modules directory; Tkinter c.s. to |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 90 | Lib/tkinter etc. (???) |
| 91 | |
| 92 | (-) document Tk |
| 93 | |
| 94 | (-) class browser |
| 95 | |
| 96 | (-) interactive Python GUI (a la NT thingie) |
| 97 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 98 | (*) speedup finddfa (and classify?) |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 99 | |
| 100 | (-) more stuff under CVS (demo, extensions) |
| 101 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 102 | (*) Mac port of 1.1 |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 103 | |
Guido van Rossum | 0a516c9 | 1994-09-12 10:58:40 +0000 | [diff] [blame] | 104 | (*) Mac port of STDWIN 0.9.9 to THINK C 6.0 |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 105 | |
Guido van Rossum | 3d67fee | 1994-08-17 12:33:50 +0000 | [diff] [blame] | 106 | (-) use const for char * parameters (and many more) where possible |
| 107 | |
| 108 | (-) The Great Renaming! |
| 109 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 110 | (-) redo __xxx__ operators for class instances |
| 111 | |
| 112 | (-) document __getattr__, __setattr__ |
| 113 | |
| 114 | (-) add __delattr__ to class instances |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 115 | |
| 116 | (-) many things that take strings should also take arrays of chars |
| 117 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 118 | (-) add list of existing extensions to FAQ |
| 119 | |
| 120 | (-) update "recent additions" chapter in tutorial |
| 121 | |
| 122 | (-) rewrite "output formatting" chapter in tutorial |
| 123 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 124 | (*) pass OPT from environment via configure to Makefile |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 125 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 126 | (*) version.c should be recompiled for each link |
| 127 | |
| 128 | (*) stropmodule should export find/rfind instead of index/rindex |
| 129 | |
| 130 | (*) add __getattr__, __setattr__ to class instances |
| 131 | |
| 132 | (*) fix pow(x, y, z) for integers |
| 133 | |
| 134 | (*) add tuple(seq) to turn any sequence into a tuple |
| 135 | |
| 136 | (*) Win32s for PC |
| 137 | |
| 138 | (*) integrate NT changes |
| 139 | |
| 140 | (*) write a script and add a "Make" rule (perhaps) that changes |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 141 | #!/usr/local/bin/python to something else in all scripts around. |
| 142 | |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 143 | (*) int*int overflow check shouldn't doubles on alpha (cf. John Tromp's mail) |
| 144 | |
| 145 | (*) add signal.alarm() |
| 146 | |
| 147 | (*) when abort()ing because of unexpected exception, print a message |
| 148 | first (Jack) |
| 149 | |
| 150 | ---------------------------------------------------------------------- |
| 151 | (from BUGS1.0.1) |
| 152 | ---------------------------------------------------------------------- |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 153 | (-) document addpack, urllib, ... |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 154 | |
| 155 | (*) import.c from JaapV |
| 156 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 157 | (*) document os.exec* |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 158 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 159 | (*) name sunaudiodevmodule.c is too long |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 160 | |
| 161 | (*) play with / include SUIT interface |
| 162 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 163 | (-) make regsub.[g]sub() optionally case insensitive |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 164 | |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 165 | ====================================================================== |
| 166 | |
| 167 | (*) ought to use features from autoconf 1.8 |
| 168 | |
| 169 | (*) errors in __repr__() are handled wrong when called from format |
| 170 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 171 | (*) long(0x80000000) has wrong value! |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 172 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 173 | (-) hex(0x80000000) shouldn't have sign (?) |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 174 | |
| 175 | (*) need way to set buffering at file open time |
| 176 | |
| 177 | (*) need way to force stdout unbuffered |
| 178 | |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 179 | (*) restart CVS tree |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 180 | |
| 181 | (?) build shared libs for SunOS 4.1.3 |
| 182 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 183 | (-) dynamic linking on the Mac (is this a dream?) |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 184 | |
| 185 | (*) X patches from Adrian Phillips |
| 186 | |
| 187 | (*) Jaap's freeze script |
| 188 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 189 | (-) Incorporate with contrib status: |
| 190 | - additions to glmodule by rg3h |
| 191 | (*) Jaap's posixfile module (with locking) |
| 192 | (*) pthreads interface |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 193 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 194 | (-) Later: |
| 195 | - put the offending object in IOError and posix.error |
| 196 | - make module marshal work with user-defined file-like objects |
| 197 | - built-in help? |
| 198 | - hierarchical module names? |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 199 | |
| 200 | Big plans: |
| 201 | |
| 202 | - allow separate interpreters (a la Xt's Applocation Contexts, and Tcl) |
| 203 | - great renaming |
| 204 | - complete reflexive nature of the language, e.g. have interfaces et |
| 205 | create any kind of object |
| 206 | (*) GUI interface a la Tk |
| 207 | |
| 208 | |
| 209 | ====================================================================== |
| 210 | For FAQ: |
| 211 | |
| 212 | (*) why don't strings (numbers, tuples, ...) have methods / attributes |
| 213 | |
| 214 | (*) why are strings / numbers / tuples immutable |
| 215 | |
| 216 | why don't list methods return self |
| 217 | |
| 218 | ====================================================================== |
| 219 | PM/TODO list after Egypt (from mailing list): |
| 220 | |
| 221 | make .pyc files executable (how?) |
| 222 | |
| 223 | thread status and improvements (lock stmt; signal/wait) |
| 224 | |
| 225 | optional optimizations |
| 226 | |
| 227 | pthread migration |
| 228 | |
| 229 | (*) test/incorporate new SUIT |
| 230 | |
| 231 | shorten excessively long filenames (sunaudiodevmodule.c) |
| 232 | |
| 233 | (*) default parameter values |
| 234 | |
| 235 | multiple interpreter objects |
| 236 | |
| 237 | (*) import shlib bug (irix5.2) (reload, dlclose) |
| 238 | |
| 239 | (*) addpack.py |
| 240 | |
| 241 | (*) newmodule.c (or other hacks to create new modules, classes, functions |
| 242 | etc. from their components) |
| 243 | |
| 244 | persistency |
| 245 | |
| 246 | new Dbhash.py, dbhash library |
| 247 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 248 | (-) reraise; or raise 3rd param for traceback? |
| 249 | -or- except type, value, tbackobjec |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 250 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 251 | (-) redesign exceptions from scratch? |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 252 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 253 | (-) dbm objects miss items(), values() methods |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 254 | |
| 255 | (*) jar's new profile |
| 256 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 257 | (-) answer q about coerce() |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 258 | |
| 259 | (*) reconsider pass [expression] ??? -or- don't print non-interactive |
| 260 | exprs -or- option to suppress printing non-None expressions |
| 261 | |
| 262 | (*) should be able to hash code objs (add fns to convert between lists/tuples) |
| 263 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 264 | (-) describe() ? |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 265 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 266 | (-) distribute demo2 with Holmes |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 267 | |
| 268 | (*) re-reply on try-continue |
| 269 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 270 | (-) classes are too slow |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 271 | |
Guido van Rossum | b85ae1a | 1994-10-06 16:15:09 +0000 | [diff] [blame^] | 272 | (-) add += etc. ? |
Guido van Rossum | 433c8ad | 1994-08-01 12:07:07 +0000 | [diff] [blame] | 273 | |
| 274 | optimize tuple = tuple |
| 275 | |
| 276 | allow (a, b) = [1, 2] and [1, 2] = (1, 2) ??? |
| 277 | |
| 278 | wustl is not un the northwest of the US? |
| 279 | |
| 280 | (*) MPW doesn't like \000 in string literals? |
| 281 | |
| 282 | MPW patches, unixemu patches |
| 283 | |
| 284 | prepare tar files with |
| 285 | - mac think projects (*) |
| 286 | - mpw makefiles |
| 287 | - dos makefiles |
| 288 | - mac unixemu lib |
| 289 | |
| 290 | explain rules about == vs. 'is' for strings (* by others on the list) |
| 291 | |
| 292 | (*) bug in ceval.c DELETE_FAST |
| 293 | |
| 294 | (*) possible optimize LOAD_NAME -> LOAD_GLOBAL |
| 295 | |
| 296 | get dos python with suit (inesc) |
| 297 | |
| 298 | (*) docs for try/continue are wrong and unclear |
| 299 | |
| 300 | better hashing fn? |
| 301 | |
| 302 | (*) add improved nested indent to python-mode.el |
| 303 | |
| 304 | (*) add a section to tutorial on "new" features |
| 305 | |
| 306 | rewrite section on formatting in tutorial |
| 307 | |
| 308 | ====================================================================== |
| 309 | TODO-TOO list: |
| 310 | |
| 311 | test for overflow when converting python long to float |
| 312 | |
| 313 | lift restrictions on tuple or list in many cases |
| 314 | |
| 315 | (*) allow long ints with sensible values for getargs "i" |
| 316 | |
| 317 | (*) multiline string literals |
| 318 | |
| 319 | what to do about 64-bit int literals (on 64-bit machines) in .pyc |
| 320 | files? (Currently truncated w/o warning!) |
| 321 | |
| 322 | DOCUMENTATION UPDATE! E.g. ref.tex doesn't describe: |
| 323 | (*) - line joins w/o backslash |
| 324 | (*) - double-quoted strings; \" in strings |
| 325 | - more? |
| 326 | Should double-check all changes with docs! |
| 327 | |
| 328 | (?) Interrupting output still sometimes doesn't call clearerr() properly |
| 329 | |
| 330 | sometimes ghost errors when interrupting during debugging in |
| 331 | 'continue' mode? |
| 332 | |
| 333 | typing a comment to a primary prompt shouldn't issue a secondary prompt |
| 334 | |
| 335 | readline: add hooks to recognize Python syntax and to expand Python |
| 336 | commands and names |
| 337 | |
| 338 | should have absolute pathnames in function objects |
| 339 | |
| 340 | in general check that all the exceptions are modernized and that the |
| 341 | messages aren't giving the same error twice (e.g., stdwinmodule.c!) |
| 342 | |
| 343 | - check read/write allowed for file objects |
| 344 | |
| 345 | - introduce macros to set/inspect errno for syscalls, to support things |
| 346 | like getoserr() |
| 347 | |
| 348 | ====================================================================== |
| 349 | DOS/Windows Python |
| 350 | |
| 351 | (???) command line options? |
| 352 | |
| 353 | (*) os.system() |
| 354 | |
| 355 | (???) interrupts |
| 356 | |
| 357 | (???) wrap |
| 358 | |
| 359 | (*) pc module |
| 360 | |
| 361 | (*) dospath.py |
| 362 | |
| 363 | DOS/Windows Python -- TO DO |
| 364 | |
| 365 | (*) memtest from config.h |
| 366 | |
| 367 | (*) copy sources back |
| 368 | |
| 369 | (*) build DOS version |
| 370 | |
| 371 | (*) distribute 386 version |
| 372 | |
| 373 | (*) Mac 1.0.1 release? |
| 374 | ====================================================================== |