diff --git a/ChangeLog b/ChangeLog index 2cceded7ce4..8c2f97575bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,139 @@ +Thu Oct 6 16:40:05 1994 Guido van Rossum + + * Got rid of Modules/imgformat.c (will be distributed with Jack's + img package) + + * Doc/*.tex: moved title boilerplate to separate file, added + copyright notice (separate file) + +Wed Oct 5 11:13:13 1994 Guido van Rossum + + * Modules/config.c.in: don't include frozen.c when frozen (the new + freeze script compiles it separately) + + * Lib/os.py: add dummy import posixpath, for freeze script + + * Python/marshal.c (r_object): plugged memory leak in reading of + code objects + + * Modules/config.c.in (getpythonpath): always return malloc'ed + memory -- save a static pointer to free next time (prevents leaks) + +Thu Sep 29 10:35:28 1994 Guido van Rossum + + * Grammar/Grammar: got rid of history; changed some diagram + commands + + * Lib/types.py: cosmetic changes + + * Mac/{config.c,macosmodule.c}: new interface to (a few bits of) + the Mac OS + + * Modules/xxmodule.c: integrated with xxobject.c by Jack + + * Modules/(posix,socket}module.c: more NT changes + + * Python/traceback.c: security fix -- check for buffer oveflow + before concatenating sys.path item and module name + + * Python/ceval.c, Include/ceval.h: promote MakePendingCalls to + global: Py_MakePendingCalls. Also guard against recursive calls + + * Python/pythonmain.c: fatal error if can't alloc mem for -c + string + + * Python/pythonrun.c: add string "Python" to fatal error message + +Wed Sep 28 16:39:09 1994 Guido van Rossum + + * Objects/longobject.c: change ValueError to OverflowError when + converting to int + + * Objects/xxobject.c: changed to use new style (not finished?) + + * Objects/stringobject.c: use HAVE_LIMITS instead of __STDC__ + + * Objects/rangeobject.c: modernized + + * Objects/floatobject.c: add overflow check when converting float + to int and implement truncation towards zero using ceil/float + + * Parser/intrcheck.c: make 'interrupted' global (forgot for + whom...) + + * Include/rename1.h: don't even define Py_FPROTO + + * Python/{modsupport.c,getargs.c,Makefile.in}, + Include/modsupport.h: moved getargs() to its own file and + re-implemented it entirely to support optional arguments, multiple + arguments without surrounding parentheses + (when called as newgetargs()), and better error messages + + * Include/classobject.h, Objects/classobject.c, + Python/{ceval.c,bltinmodule.c}: entirely redone operator + overloading. The rules for class instances are now much more + relaxed than for other built-in types + (whose coerce must still return two objects of the same type) + +Sun Sep 18 07:26:39 1994 Guido van Rossum + + * Python/pythonrun.c (print_error): print only last line of + multi-line source line + + * Parser/tokenizer.c (tok_nextc): count line numbers when parsing + strings + +Fri Sep 16 15:54:56 1994 Guido van Rossum + + * Python/modsupport.c (do_arg): added error message if "O!" fails; + change type of converter for "O&" to function returning int taking + an object* and a void* parameter; it should return 1 for success + or return 0 and set an exception for failure to convert + +Wed Sep 14 14:08:44 1994 Guido van Rossum + + * Include/Python.h: new header file for new naming scheme + + * various modules: #include "Python.h" and remove most remporary + renaming hacks + + * Lib/whrandom.py: if seed is (0,0,0), initialize from current + time; default seed's arguments to (0,0,0) + + * Python/ceval.c (eval_code), Include/ceval.h: added registry of + pending functions (to be used by functions that are called + asynchronously, like UNIX signal handlers or Mac I/O completion + routines) + +Wed Sep 14 11:05:36 1994 Guido van Rossum (guido@voorn.cwi.nl) + + * Doc/libsys.tex (section{Built-in Module \sectcode{sys}}): + documented sys.check_interval + +Tue Sep 13 21:35:19 1994 Guido van Rossum (guido@voorn.cwi.nl) + + * Import/pythonrun.h, Python/{import,pythonrun}.c, + mac/macsetfiletype.c: changes by Jack to execute .pyc file passed + as command line argument. On the Mac .pyc files are given a + special type so they can be double-clicked + + * Modules/stropmodule.c (strop_[r]find): change index range check + -- don't raise ValueError buit silently clip when it's out of + range (this is compatible with slicing) + Mon Sep 12 12:53:07 1994 Guido van Rossum (guido@voorn.cwi.nl) + * Extensions/X11/Xmmodule.c: (Sjoerd): Implemented + Xm.OptionButtonGadget and Xm.OptionLabelGadget + + * Modules/Setup.in: define PYTHONPATH using COREPYTHONPATH for + extensions; add -lm to math module definition + + * Modules/Makefile.pre.in: remove *.so and so_locations on clobber + + * Modules/makesetup: (Sjoerd): treat words beginning with a dollar + and not ending in a well-known extension as linker arguments + * Lib/urlparse.py: URL parser according to the latest Internet draft @@ -20,7 +154,7 @@ Sun Sep 11 12:12:28 1994 Guido van Rossum (guido@voorn.cwi.nl) libraries and to set $(MACHDEP) (machine dependent subdirectory of Lib) - * Makefile.in: shared library support; added targer sharedinstall + * Makefile.in: shared library support; added target sharedinstall which move shared libraries into Lib/$(MACHDEP) * Modules/{Makefile.pre.in,Setup.in,makesetup}: support shared @@ -144,10 +278,6 @@ Mon Aug 22 10:53:59 1994 Guido van Rossum (guido@voorn.cwi.nl) * Lib/traceback.py: print SyntaxError correctly - * Lib/stat.py: moved to posixstat.py; added macstat.py which has - the constants for the Mac; and created new stat.py which includes - the right one - * Modules/signalmodule.c: added pause(). * Python/pythonrun.c (print_error): added INCREF/DECREF pair -- @@ -228,7 +358,9 @@ Thu Aug 11 16:41:14 1994 Guido van Rossum (guido@voorn.cwi.nl) setattr(x, name, value) for class instances. This uses a special hack whereby the class is supposed to be static: the __getattr__ and __setattr__ methods are looked up only once and saved in the - instance structure for speed + instance structure for speed. + (Later rewritten to also support __delattr__ and to store the + routines in the class instead of in the instance) Wed Aug 10 13:42:29 1994 Guido van Rossum (guido@voorn.cwi.nl) diff --git a/README b/README index 30f53985b0f..32bee294f0e 100644 --- a/README +++ b/README @@ -5,28 +5,32 @@ Python release 1.1 ==> Python 1.1 contains many improvements over 1.0.3, but is almost backward compatible (though the magic number for .pyc file has - changed). It comes with build instructions for many more non-UNIX - platforms. + changed). It is portable to many more non-UNIX platforms. ==> If you don't know yet what Python is: it's an interpreted, extensible, embeddable, interactive, object-oriented programming language. For a quick summary of what Python can mean for a UNIX/C programmer, read Misc/BLURB.LUTZ. -==> If you want to start compiling right away: just type "./configure" - in the current directory and when it finishes, type "make". See - the section Build Instructions below for more details. +==> If you want to start compiling right away (on UNIX): just type + "./configure" in the current directory and when it finishes, type + "make". See the section Build Instructions below for more + details. ==> All documentation is in the subdirectory Doc in the form of LaTeX files. In order of importance for new users: Tutorial (tut), Library Reference (lib), Language Reference (ref), Extending (ext). Note that especially the Library Reference is of immense value since much of Python's power (including the built-in data - types and functions!) is described there. [XXX The ext document + types and functions!) is described there. [NB The ext document has not been updated to reflect this release yet.] ==> Python is COPYRIGHTED but free to use for all. See the copyright - notice at the end of this file. + notice at the end of this file. Moreover, the Python distribution + is not affected by the GNU Public Licence (GPL). There is support + for interfaces to some GNU code but this is entirely optional and + no GNU code is distributed with Python. For all these packages, + GPL-free public domain versions also exist. Build instructions @@ -142,14 +146,19 @@ you change your mind about the install prefix... interface: this gives you line editing and command history when calling python interactively. You need to configure build the GNU readline library before running the configure script. Its sources are -no longer distributed with Python; you can ftp them from any GNU -mirror site, or from its home site: +not distributed with Python; you can ftp them from any GNU mirror +site, or from its home site: ftp://slc2.ins.cwru.edu/pub/dist/readline-2.0.tar.gz (or a higher -version number -- using version 1.x is not recommended). Pass the -Python configure script the option --with-readline=DIRECTORY where -DIRECTORY is the absolute pathname of the directory where you've built -the readline library. Some hints on building and using the readline -library: +version number -- using version 1.x is not recommended). + +A GPL-free version was posted to comp.sources.misc in volume 31 and is +widely available from FTP archive sites. One URL for it is: +ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume31/editline/part01.Z + +Pass the Python configure script the option --with-readline=DIRECTORY +where DIRECTORY is the absolute pathname of the directory where you've +built the readline library. Some hints on building and using the +readline library: - On SGI IRIX 5, you may have to add the following to rldefs.h: diff --git a/TODO b/TODO index 1a807bb4f50..9871547abe2 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,43 @@ +(*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc + +(-) if __getattr__ prints something, calling repr(x) from cmd line +forgets a newline + +(-) improve performance of list.append/insert etc. by keeping high/low +watermark instead of realloc'ing each time? + +(-) findmethod should cache (also findmember?) + +(-) sysget("check_interval") is called before each method call which +breaks dictlookup caching + +(*) core dump on import of ridiculously long module name + +(-) core dump on repr / print of deeply nested or recursive object + +(*) parsing from string should calculate line numbers + +(-) whrandom doc needs update + +(-) mpz power is still binary insterad of ternary + +(*) design interface to call arbitrary asynchronous routines + +(*) whrandom.set...(0,0,0) doesn't generate random numbers + +(*) Lance's latest curses additions + +(-) Jack's new code: + (*) new xxmodule.c + (*) mac has type for .pyc files + (*) should run .pyc files when passed as command line argument + +(*) all new all singing all dancing freeze script + +(*) make clean should remove *.so and not Makefile.pre + +(-) fix signalmodule.c to re-establish SIGC[H]LD handler + (-) try out Kees Blom's railroad diagram generator (-) redesign error handling (cf. Donald's mail) @@ -146,16 +186,16 @@ instance -- also have separate __delattr__ (*) Jaap's freeze script -Incorporate with contrib status: -- additions to glmodule by rg3h -(*) Jaap's posixfile module (with locking) -(*) pthreads interface +(-) 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? +(-) 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: @@ -205,31 +245,31 @@ persistency new Dbhash.py, dbhash library -reraise; or raise 3rd param for traceback? --or- except type, value, tbackobjec +(-) reraise; or raise 3rd param for traceback? + -or- except type, value, tbackobjec -redesign exceptions from scratch? +(-) redesign exceptions from scratch? -dbm objects miss items(), values() methods +(-) dbm objects miss items(), values() methods (*) jar's new profile -answer q about coerce() +(-) 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() ? +(-) describe() ? -distribute demo2 with Holmes +(-) distribute demo2 with Holmes (*) re-reply on try-continue -classes are too slow +(-) classes are too slow -add += etc. ? +(-) add += etc. ? optimize tuple = tuple