home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / p / python / !Python / Misc / TODO < prev   
Encoding:
Text File  |  1996-10-25  |  16.0 KB  |  646 lines

  1. ======================================================================
  2. Things to do before releasing Pyton 1.4 the final cut:
  3.  
  4. Win/NT specific things:
  5.  
  6. ... pyc files remain open when imported???
  7.  
  8. ... no control-c or control-break in Windows Console mode???
  9.     (implement Mark's hacks) (seems to work now?)
  10.  
  11. Bugs:
  12.  
  13. ... exception in __del__ when __builtins__ has been deleted
  14.  
  15. Features:
  16.  
  17. ... simple threading support (with lock) for Tk
  18.  
  19. ... Create and distribute the generic Makefile.pre.in for outside extensions.
  20.  
  21. Documentation:
  22.  
  23. ... Add section on filesystem interface to tutorial
  24.  
  25. ... Update tutorial for changes in the language & library
  26.  
  27. ... New sections for library reference manual (use NEWS file for hints)
  28.  
  29. ... add stuff to ext.tex about threads and embedded Python
  30.  
  31. ... mention that -2147483648 doesn't work
  32.  
  33. ... mention that 0e0 and 01.0 etc. don't work
  34.  
  35. Maybe not (yet):
  36.  
  37. ... get rid of 'owner' passed around for newframeobject and evalcode
  38.  
  39. ... Get freeze working for NT?  (Sam has one)
  40.  
  41. ... rename init<module> to PyInit_<module>.
  42.  
  43. ... import ni seems to interpret the current directory as a package.
  44.  
  45. ... math.sqrt(1j) should raise TypeError!!!  (To fix in getargs 'd' format.)
  46.  
  47. ... add make target that does machdep install; use in "machdepinstall"
  48.  
  49. ... prototype for PyOS_CheckStack() somewhere
  50.  
  51. ... On some Linuxes, ``python -c "print 12" | wc'' produces no output???
  52.  
  53. ... Add INSTALL_ROOT variable to Makefile.in
  54.  
  55. ... More thread testing (Solaris?), wait for David Arnold
  56.  
  57. ... Get rid of more modules: (stdwin, soundex, SGI specific?)
  58.  
  59. ... Use autoconf features to find X11 libraries
  60.  
  61. ... Use more modern autoconf features (e.g. for platform testing)
  62.  
  63. Done:
  64.  
  65. (*) get bsddb.c patch
  66.  
  67. (*) no trailing separator on sys.path[0] please
  68.  
  69. (*) add PC template for extensions, + instructions
  70.  
  71. (*) segv on NT after ^Z after import _tkinter
  72.  
  73. (*) apply(<class>, (), {}) fails while apply(<class>, ()) succeeds
  74.     if class has no __init__ method
  75.  
  76. (*) core dump on complex % or divmod
  77.  
  78. (*) New last chapter of tutorial explaining new things (use NEWS file)
  79.  
  80. (*) Update reference manual for complex, power, slice and ellipses
  81.  
  82. (*) Update Misc/FAQ
  83.  
  84. (*) Update README for 1.4 final cut
  85.  
  86. (*) Update documentation for httplib
  87.  
  88. (*) SyntaxErrors w/o line numbers
  89.  
  90. (*) More NeXT patches (Bill Bumgarner, Lele Gaifax)
  91.  
  92. (*) fix file upload in cgi.py from Netscape
  93.  
  94. (*) Tkinter.Variable.__del__ may cause (ignored) exceptions
  95.  
  96. (*) Test for -lreadline *without* -lterm{cap,lib}
  97.  
  98. (*) autotest fails on NT due to 1e-005 instead of 1e-05
  99.  
  100. (*) Update 1.3 version number and date occurring in tutorial, Misc/FAQ,
  101.     Doc/texipre.dat, Doc/boilerplate.tex, Doc/tut.tex example
  102.  
  103. (*) Fix the freeze script
  104.  
  105. (*) merge Fred's changes to formatter.py and other stuff in Grail/pythonlib
  106.  
  107. (*) urllib.py: open_http() has bogosity when proxy and auth used together
  108.  
  109. (*) Update Misc/NEWS
  110.  
  111. (*) Get rid of obsolete modules: objc, environment
  112.  
  113. (*) Try threads on NT?
  114.  
  115. (*) get rid of remains of access.c
  116.  
  117. (*) document the fact that __del__ exceptions get lost
  118.  
  119. (*) print warning when __del__ raises exception (no SystemExit though)
  120.  
  121. (*) document all new features of string.py and regsub.py
  122.  
  123. (*) add delitem, delslice to operator.c
  124.  
  125. (*) get rid of 'or', 'and' in operator.c (or rename to 'or_', 'and_')
  126.  
  127. (*) Pass LDFLAGS from configure to Makefile?
  128.  
  129. (*) -L option for -lreadline comes too late
  130.  
  131. (*) halfbinop PROTO(...) triggers error on Alpha compiler?
  132.  
  133. (*) operator.c is not K&R C nor is it ANSI C
  134.  
  135. (*) some complex numbers code is not K&R
  136.  
  137. (*) More AIX sharedlibs patches (Manus Hand, Vlad)
  138.  
  139.     Delete Modules/bindit
  140.     Add Modules/python.ext
  141.  
  142. (*) #undef for fabs in mathmodule.c from Jack
  143.  
  144. (*) Fix _tkinter.c for use on NT
  145.  
  146. (*) Remove AIX shared libraries in make clean target
  147.     Remove *.sl in "make clean" targets
  148.  
  149. (*) Sjoerd's optimizations
  150.  
  151. (*) remove access stmt from docs
  152.  
  153. (*) Lance's patches for SCO
  154.  
  155. (*) Jim H's patch to fix power
  156.  
  157. (*) rip out all traces of 'access'
  158.  
  159. (*) New extref.tex from Richard Jones
  160.  
  161. (*) ref.man patch by Anthony Baxter for lambda scope
  162.  
  163. (*) Add extensions reference to ext.tex
  164.  
  165. (*) generic/regen is bogus
  166.  
  167. ======================================================================
  168. ======================================================================
  169. The following is old and I haven't checked whether it still applies:
  170.  
  171. (-) many module should export their symbolic constants instead of
  172. relying on a module written in Python
  173.  
  174. (-) change regexmodule.c to cooperate with other non-python users and
  175. to export the symbolic constants
  176.  
  177. (-) save/restore sys.exc_{type,value,traceback} around except clauses.
  178.  
  179. (-) don't call class instance's __del__ more than once?????
  180.  
  181. (-) add "access" to posix?  What name should it have?
  182.  
  183. (-) add facility to "freeze" lists and dictionaries?
  184.  
  185. (-) add WNOHANG to posix
  186.  
  187. (-) support lists in newgetargs()
  188.  
  189. (-) syntax errors detected during compilation should give line number
  190.  
  191. (-) dbm.open(): rwmode, filemode should be made optional; same for gdbm
  192.  
  193. (-) find a bsd hash interface
  194.  
  195. (-) posix.mkdir(): mode should be made optional
  196.  
  197. (-) find a more useful order than alphabetical for Doc/libfuncs.tex
  198.  
  199. ======================================================================
  200.  
  201. (*) use my getopt.c on Linux
  202.  
  203. (*) get Extensions/X11/Doc checked in and out
  204.  
  205. (-) investigate PPRC <URL:ftp://ftp.parc.xerox.com/pub/ppcr/>
  206.  
  207. (*) add buffering parameter to fdopen() and popen()
  208.  
  209. (-) interface to getdtablesize() in posix
  210.  
  211. (-) reentrancy with global variables vs. decref in
  212. ./Modules/cdmodule.c ./Modules/flmodule.c ./Objects/accessobject.c
  213. ./Objects/frameobject.c ./Python/traceback.c
  214.  
  215. (*) fix reentrancy in list updates?
  216.  
  217. (-) speed up regsub.gsub
  218.  
  219. (*) change md5.md5() to md5.new()
  220.  
  221. (-) try posixenviron.c and merge back into posixmodule.c?
  222.  
  223. (*) document chown()
  224.  
  225. (-) add and document chroot() ?
  226.  
  227. (*) use add gethostname_r and release thread lock when it exists
  228.  
  229. (-) Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' to `Makefile.in'
  230.  
  231. (-) modules should be able to define a module destructor hook
  232.  
  233. (-) destroy modules in reverse order of importation?
  234.  
  235. (-) make array a standard built-in object
  236.  
  237. (-) makesetup should accept .o files without corresponding .c file
  238.  
  239. (*) use autoconf 2.0
  240.  
  241. ======================================================================
  242. Release 1.1.1 (10 Nov 1994)
  243. ======================================================================
  244.  
  245. (-) try Boehm/Dehmers/Weiser conservative garbage collector
  246.  
  247. (*) implement new 'flatten' module
  248.  
  249. (-) document new Python/C API
  250.  
  251. (*) __import__, module imp
  252.  
  253. (-) add various things to module dictionary, e.g. pathname, dictionary
  254. where found, __version__ string?
  255.  
  256. (-) pass dict of builtins to exec / execfile / eval ???
  257.  
  258. (?) stack frame correspondence problem (Jim Roskind)
  259. (probably solved by err_fetch / err_restore)
  260.  
  261. (-) make lots of places use newgetargs
  262.  
  263. (*) no tp_str member in typeobject
  264.  
  265. (-) readline 2.0 on sequent has ^C problem (works only first time)
  266.  
  267. (*) add explanatory comments to Setup (especially about SGI modules
  268. like 'cd')
  269.  
  270. (-) need to add truncate() and ftruncate() to posixmodule.c (Windows:
  271. chsize(fd, size) (solution: added to file objects instead)
  272.  
  273. ======================================================================
  274. Release 1.1 (11 Oct 1994)
  275. ======================================================================
  276.  
  277. (-) improve performance of list.append/insert etc. by keeping high/low
  278. watermark instead of realloc'ing each time?
  279.  
  280. (-) findmethod should cache (also findmember?)
  281.  
  282. (-) sysget("check_interval") is called before each method call which
  283. breaks dictlookup caching
  284.  
  285. (*) core dump on import of ridiculously long module name
  286.  
  287. (-) core dump on repr / print of deeply nested or recursive object
  288.  
  289. (*) parsing from string should calculate line numbers
  290.  
  291. (-) whrandom doc needs update
  292.  
  293. (*) mpz power is still binary insterad of ternary
  294.  
  295. (*) design interface to call arbitrary asynchronous routines
  296.  
  297. (*) whrandom.set...(0,0,0) doesn't generate random numbers
  298.  
  299. (*) Lance's latest curses additions
  300.  
  301. (*) Jack's new code:
  302.     (*) new xxmodule.c
  303.     (*) mac has type for .pyc files
  304.     (*) should run .pyc files when passed as command line argument
  305.  
  306. (*) all new all singing all dancing freeze script
  307.  
  308. (*) make clean should remove *.so and not Makefile.pre
  309.  
  310. (-) fix signalmodule.c to re-establish SIGC[H]LD handler
  311.  
  312. (*) try out Kees Blom's railroad diagram generator
  313.  
  314. (-) redesign error handling (cf. Donald's mail)
  315.  
  316. (*) do MPW and THINK still not support sys_errlist?  Indeed not (neither).
  317.  
  318. (-) does MPW 3.2 need the MPW_881_BUG defined in Parser/acceler.c
  319.  
  320. (-) rename MPW_3_1 define (which really means 3.x)
  321.  
  322. (*) incorporate urlparse.py, uu.py
  323.  
  324. (*) rewrite instance __getattr__ etc. to store ptr in class instead of
  325. instance -- also have separate __delattr__
  326.  
  327. (-) add warning to docs about sys.exc_traceback and sys.last_traceback.
  328.  
  329. (-) Some stdwin wishes:
  330.  
  331.     (-) stdwinmodule should keep track of textedit rec's per window
  332.     (in a chain) so it can unlink them when the window is closed
  333.     before the te rec
  334.  
  335.     (-) textedit flashes at return or backspace
  336.  
  337.     (-) there's no way to show the text caret after a multi-line paste?
  338.  
  339. (*) termios module
  340.  
  341. (*) put signal patches out separately
  342.  
  343. (-) latex docs for signal module
  344.  
  345. (*) More MPW and Mac changes
  346.  
  347. (*) Sjoerd's compileall script
  348.  
  349. (-) systematically create /usr/local/lib/python/<machine>-<os>/
  350.     subdirectories, with a lib/ subdirectory containing the lib*.a
  351.     files etc.
  352.  
  353. (-) need newer DOS binary (16 bit version doesn't do default args)
  354.  
  355. (*) support for dynamically loadable libraries in makesetup and Extensions.
  356.     e.g. add a make rule to build .so files (unfortunately need to figure
  357.     out what ld option is needed) (more appropriate for makesetup
  358.     script?)
  359.  
  360. (*) Move tkinter into the standard Modules directory; Tkinter c.s. to
  361.     Lib/tkinter etc. (???)
  362.  
  363. (-) document Tk
  364.  
  365. (-) class browser
  366.  
  367. (-) interactive Python GUI (a la NT thingie)
  368.  
  369. (*) speedup finddfa (and classify?)
  370.  
  371. (-) more stuff under CVS (demo, extensions)
  372.  
  373. (*) Mac port of 1.1
  374.  
  375. (*) Mac port of STDWIN 0.9.9 to THINK C 6.0
  376.  
  377. (-) use const for char * parameters (and many more) where possible
  378.  
  379. (-) The Great Renaming!
  380.  
  381. (*) redo __xxx__ operators for class instances
  382.  
  383. (-) document __getattr__, __setattr__
  384.  
  385. (*) add __delattr__ to class instances
  386.  
  387. (-) many things that take strings should also take arrays of chars
  388.  
  389. (-) add list of existing extensions to FAQ
  390.  
  391. (-) update "recent additions" chapter in tutorial
  392.  
  393. (-) rewrite "output formatting" chapter in tutorial
  394.  
  395. (*) pass OPT from environment via configure to Makefile
  396.  
  397. (*) version.c should be recompiled for each link
  398.  
  399. (*) stropmodule should export find/rfind instead of index/rindex
  400.  
  401. (*) add __getattr__, __setattr__ to class instances
  402.  
  403. (*) fix pow(x, y, z) for integers
  404.  
  405. (*) add tuple(seq) to turn any sequence into a tuple
  406.  
  407. (*) Win32s for PC
  408.  
  409. (*) integrate NT changes
  410.  
  411. (*) write a script and add a "Make" rule (perhaps) that changes
  412.     #!/usr/local/bin/python to something else in all scripts around.
  413.  
  414. (*) int*int overflow check shouldn't doubles on alpha (cf. John Tromp's mail)
  415.  
  416. (*) add signal.alarm()
  417.  
  418. (*) when abort()ing because of unexpected exception, print a message
  419.     first (Jack)
  420.  
  421. ----------------------------------------------------------------------
  422. (from BUGS1.0.1)
  423. ----------------------------------------------------------------------
  424. (-) document addpack, urllib, ...
  425.  
  426. (*) import.c from JaapV
  427.  
  428. (*) document os.exec*
  429.  
  430. (*) name sunaudiodevmodule.c is too long
  431.  
  432. (*) play with / include SUIT interface
  433.  
  434. (-) make regsub.[g]sub() optionally case insensitive
  435.  
  436. ======================================================================
  437.  
  438. (*) ought to use features from autoconf 1.8
  439.  
  440. (*) errors in __repr__() are handled wrong when called from format
  441.  
  442. (*) long(0x80000000) has wrong value!
  443.  
  444. (-) hex(0x80000000) shouldn't have sign (?)
  445.  
  446. (*) need way to set buffering at file open time
  447.  
  448. (*) need way to force stdout unbuffered
  449.  
  450. (*) restart CVS tree
  451.  
  452. (?) build shared libs for SunOS 4.1.3
  453.  
  454. (-) dynamic linking on the Mac (is this a dream?)
  455.  
  456. (*) X patches from Adrian Phillips
  457.  
  458. (*) Jaap's freeze script
  459.  
  460. (-) Incorporate with contrib status:
  461.     - additions to glmodule by rg3h
  462.     (*) Jaap's posixfile module (with locking)
  463.     (*) pthreads interface
  464.  
  465. (-) Later:
  466.     - put the offending object in IOError and posix.error
  467.     - make module marshal work with user-defined file-like objects
  468.     - built-in help?
  469.     - hierarchical module names?
  470.  
  471. Big plans:
  472.  
  473. - allow separate interpreters (a la Xt's Applocation Contexts, and Tcl)
  474. - great renaming
  475. - complete reflexive nature of the language, e.g. have interfaces et
  476. create any kind of object
  477. (*) GUI interface a la Tk
  478.  
  479.  
  480. ======================================================================
  481. For FAQ:
  482.  
  483. (*) why don't strings (numbers, tuples, ...) have methods / attributes
  484.  
  485. (*) why are strings / numbers / tuples immutable
  486.  
  487. why don't list methods return self
  488.  
  489. ======================================================================
  490. PM/TODO list after Egypt (from mailing list):
  491.  
  492. make .pyc files executable (how?)
  493.  
  494. thread status and improvements (lock stmt; signal/wait)
  495.  
  496. optional optimizations
  497.  
  498. pthread migration
  499.  
  500. (*) test/incorporate new SUIT
  501.  
  502. shorten excessively long filenames (sunaudiodevmodule.c)
  503.  
  504. (*) default parameter values
  505.  
  506. multiple interpreter objects
  507.  
  508. (*) import shlib bug (irix5.2) (reload, dlclose)
  509.  
  510. (*) addpack.py
  511.  
  512. (*) newmodule.c (or other hacks to create new modules, classes, functions
  513.     etc. from their components)
  514.  
  515. persistency
  516.  
  517. new Dbhash.py, dbhash library
  518.  
  519. (-) reraise; or raise 3rd param for traceback?
  520.     -or- except type, value, tbackobjec
  521.  
  522. (-) redesign exceptions from scratch?
  523.  
  524. (-) dbm objects miss items(), values() methods
  525.  
  526. (*) jar's new profile
  527.  
  528. (-) answer q about coerce()
  529.  
  530. (*) reconsider pass [expression] ??? -or- don't print non-interactive
  531.     exprs -or- option to suppress printing non-None expressions
  532.  
  533. (*) should be able to hash code objs (add fns to convert between lists/tuples)
  534.  
  535. (-) describe() ?
  536.  
  537. (-) distribute demo2 with Holmes
  538.  
  539. (*) re-reply on try-continue
  540.  
  541. (-) classes are too slow
  542.  
  543. (-) add += etc. ?
  544.  
  545. optimize tuple = tuple
  546.  
  547. allow (a, b) = [1, 2] and [1, 2] = (1, 2) ???
  548.  
  549. wustl is not un the northwest of the US?
  550.  
  551. (*) MPW doesn't like \000 in string literals?
  552.  
  553. MPW patches, unixemu patches
  554.  
  555. prepare tar files with
  556.     - mac think projects (*)
  557.     - mpw makefiles
  558.     - dos makefiles
  559.     - mac unixemu lib
  560.  
  561. explain rules about == vs. 'is' for strings (* by others on the list)
  562.  
  563. (*) bug in ceval.c DELETE_FAST
  564.  
  565. (*) possible optimize LOAD_NAME -> LOAD_GLOBAL
  566.  
  567. get dos python with suit (inesc)
  568.  
  569. (*) docs for try/continue are wrong and unclear
  570.  
  571. better hashing fn?
  572.  
  573. (*) add improved nested indent to python-mode.el
  574.  
  575. (*) add a section to tutorial on "new" features
  576.  
  577. rewrite section on formatting in tutorial
  578.  
  579. ======================================================================
  580. TODO-TOO list:
  581.  
  582. test for overflow when converting python long to float
  583.  
  584. lift restrictions on tuple or list in many cases
  585.  
  586. (*) allow long ints with sensible values for getargs "i"
  587.  
  588. (*) multiline string literals
  589.  
  590. what to do about 64-bit int literals (on 64-bit machines) in .pyc
  591. files?  (Currently truncated w/o warning!)
  592.  
  593. DOCUMENTATION UPDATE!  E.g. ref.tex doesn't describe:
  594. (*)    - line joins w/o backslash
  595. (*)    - double-quoted strings; \" in strings
  596.     - more?
  597. Should double-check all changes with docs!
  598.  
  599. (?) Interrupting output still sometimes doesn't call clearerr() properly
  600.  
  601. sometimes ghost errors when interrupting during debugging in
  602. 'continue' mode?
  603.  
  604. typing a comment to a primary prompt shouldn't issue a secondary prompt
  605.  
  606. readline: add hooks to recognize Python syntax and to expand Python
  607. commands and names
  608.  
  609. should have absolute pathnames in function objects
  610.  
  611. in general check that all the exceptions are modernized and that the
  612. messages aren't giving the same error twice (e.g., stdwinmodule.c!)
  613.  
  614. - check read/write allowed for file objects
  615.  
  616. - introduce macros to set/inspect errno for syscalls, to support things
  617.   like getoserr()
  618.  
  619. ======================================================================
  620. DOS/Windows Python
  621.  
  622. (???) command line options?
  623.  
  624. (*) os.system()
  625.  
  626. (???) interrupts
  627.  
  628. (???) wrap
  629.  
  630. (*) pc module
  631.  
  632. (*) dospath.py
  633.  
  634. DOS/Windows Python -- TO DO
  635.  
  636. (*) memtest from config.h
  637.  
  638. (*) copy sources back
  639.  
  640. (*) build DOS version
  641.  
  642. (*) distribute 386 version
  643.  
  644. (*) Mac 1.0.1 release?
  645. ======================================================================
  646.