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

  1. =====================================
  2. ==> Release 1.4 (October 25 1996) <==
  3. =====================================
  4.  
  5. (Starting in reverse chronological order:)
  6.  
  7. - Changed disclaimer notice.
  8.  
  9. - Added SHELL=/bin/sh to Misc/Makefile.pre.in -- some Make versions
  10. default to the user's login shell.
  11.  
  12. - In Lib/tkinter/Tkinter.py, removed bogus binding of <Delete> in Text
  13. widget, and bogus bspace() function.
  14.  
  15. - In Lib/cgi.py, bumped __version__ to 2.0 and restored a truncated
  16. paragraph.
  17.  
  18. - Fixed the NT Makefile (PC/vc40.mak) for VC 4.0 to set /MD for all
  19. subprojects, and to remove the (broken) experimental NumPy
  20. subprojects.
  21.  
  22. - In Lib/py_compile.py, cast mtime to long() so it will work on Mac
  23. (where os.stat() returns mtimes as floats.)
  24. - Set self.rfile unbuffered (like self.wfile) in SocketServer.py, to
  25. fix POST in CGIHTTPServer.py.
  26.  
  27. - Version 2.83 of Misc/python-mode.el for Emacs is included.
  28.  
  29. - In Modules/regexmodule.c, fixed symcomp() to correctly handle a new
  30. group starting immediately after a group tag.
  31.  
  32. - In Lib/SocketServer.py, changed the mode for rfile to unbuffered.
  33.  
  34. - In Objects/stringobject.c, fixed the compare function to do the
  35. first char comparison in unsigned mode, for consistency with the way
  36. other characters are compared by memcmp().
  37.  
  38. - In Lib/tkinter/Tkinter.py, fixed Scale.get() to support floats.
  39.  
  40. - In Lib/urllib.py, fix another case where openedurl wasn't set.
  41.  
  42. (XXX Sorry, the rest is in totally random order.  No time to fix it.)
  43.  
  44. - SyntaxError exceptions detected during code generation
  45. (e.g. assignment to an expression) now include a line number.
  46.  
  47. - Don't leave trailing / or \ in script directory inserted in front of
  48. sys.path.
  49.  
  50. - Added a note to Tools/scripts/classfix.py abouts its historical
  51. importance.
  52.  
  53. - Added Misc/Makefile.pre.in, a universal Makefile for extensions
  54. built outside the distribution.
  55.  
  56. - Rewritten Misc/faq2html.py, by Ka-Ping Yee.
  57.  
  58. - Install shared modules with mode 555 (needed for performance on some
  59. platforms).
  60.  
  61. - Some changes to standard library modules to avoid calling append()
  62. with more than one argument -- while supported, this should be
  63. outlawed, and I don't want to set a bad example.
  64.  
  65. - bdb.py (and hence pdb.py) supports calling run() with a code object
  66. instead of a code string.
  67.  
  68. - Fixed an embarrassing bug cgi.py which prevented correct uploading
  69. of binary files from Netscape (which doesn't distinguish between
  70. binary and text files).  Also added dormant logging support, which
  71. makes it easier to debug the cgi module itself.
  72.  
  73. - Added default writer to constructor of NullFormatter class.
  74.  
  75. - Use binary mode for socket.makefile() calls in ftplib.py.
  76.  
  77. - The ihooks module no longer "installs" itself upon import -- this
  78. was an experimental feature that helped ironing out some bugs but that
  79. slowed down code that imported it without the need to install it
  80. (e.g. the rexec module).  Also close the file in some cases and add
  81. the __file__ attribute to loaded modules.
  82.  
  83. - The test program for mailbox.py is now more useful.
  84.  
  85. - Added getparamnames() to Message class in mimetools.py -- it returns
  86. the names of parameters to the content-type header.
  87.  
  88. - Fixed a typo in ni that broke the loop stripping "__." from names.
  89.  
  90. - Fix sys.path[0] for scripts run via pdb.py's new main program.
  91.  
  92. - profile.py can now also run a script, like pdb.
  93.  
  94. - Fix a small bug in pyclbr -- don't add names starting with _ when
  95. emulating from ... import *.
  96.  
  97. - Fixed a series of embarrassing typos in rexec's handling of standard
  98. I/O redirection.  Added some more "safe" built-in modules: cmath,
  99. errno, operator.
  100.  
  101. - Fixed embarrassing typo in shelve.py.
  102.  
  103. - Added SliceType and EllipsisType to types.py.
  104.  
  105. - In urllib.py, added handling for error 301 (same as 302); added
  106. geturl() method to get the URL after redirection.
  107.  
  108. - Fixed embarrassing typo in xdrlib.py.  Also fixed typo in Setup.in
  109. for _xdrmodule.c and removed redundant #include from _xdrmodule.c.
  110.  
  111. - Fixed bsddbmodule.c to add binary mode indicator on platforms that
  112. have it.  This should make it working on Windows NT.
  113.  
  114. - Changed last uses of #ifdef NT to #ifdef MS_WINDOWS or MS_WIN32,
  115. whatever applies.  Also rationalized some other tests for various MS
  116. platforms.
  117.  
  118. - Added the sources for the NT installer script used for Python
  119. 1.4beta3.  Not tested with this release, but better than nothing.
  120.  
  121. - A compromise in pickle's defenses against Trojan horses: a
  122. user-defined function is now okay where a class is expected.  A
  123. built-in function is not okay, to prevent pickling something that
  124. will execute os.system("rm -f *") when unpickling.
  125.  
  126. - dis.py will print the name of local variables referenced by local
  127. load/store/delete instructions.
  128.  
  129. - Improved portability of SimpleHTTPServer module to non-Unix
  130. platform.
  131.  
  132. - The thread.h interface adds an extra argument to down_sema().  This
  133. only affects other C code that uses thread.c; the Python thread module
  134. doesn't use semaphores (which aren't provided on all platforms where
  135. Python threads are supported).  Note: on NT, this change is not
  136. implemented.
  137.  
  138. - Fixed some typos in abstract.h; corrected signature of
  139. PyNumber_Coerce, added PyMapping_DelItem.  Also fixed a bug in
  140. abstract.c's PyObject_CallMethod().
  141.  
  142. - apply(classname, (), {}) now works even if the class has no
  143. __init__() method.
  144.  
  145. - Implemented complex remainder and divmod() (these would dump core!).
  146. Conversion of complex numbers to int, long int or float now raises an
  147. exception, since there is no meaningful way to do it without losing
  148. information.
  149.  
  150. - Fixed bug in built-in complex() function which gave the wrong result
  151. for two real arguments.
  152.  
  153. - Change the hash algorithm for strings -- the multiplier is now
  154. 1000003 instead of 3, which gives better spread for short strings.
  155.  
  156. - New default path for Windows NT, the registry structure now supports
  157. default paths for different install packages.  (Mark Hammond -- the
  158. next PythonWin release will use this.)
  159.  
  160. - Added more symbols to the python_nt.def file.
  161.  
  162. - When using GNU readline, set rl_readline_name to "python".
  163.  
  164. - The Ellipses built-in name has been renamed to Ellipsis -- this is
  165. the correct singular form.  Thanks to Ka-Ping Yee, who saved us from
  166. eternal embarrassment.
  167.  
  168. - Bumped the PYTHON_API_VERSION to 1006, due to the Ellipses ->
  169. Ellipsis name change.
  170.  
  171. - Updated the library reference manual.  Added documentation of
  172. restricted mode (rexec, Bastion) and the formatter module (for use
  173. with the htmllib module).  Fixed the documentation of htmllib
  174. (finally).
  175.  
  176. - The reference manual is now maintained in FrameMaker.
  177.  
  178. - Upgraded scripts Doc/partparse.py and Doc/texi2html.py.
  179.  
  180. - Slight improvements to Doc/Makefile.
  181.  
  182. - Added fcntl.lockf(). This should be used for Unix file locking
  183. instead of the posixfile module; lockf() is more portable.
  184.  
  185. - The getopt module now supports long option names, thanks to Lars
  186. Wizenius.
  187.  
  188. - Plenty of changes to Tkinter and Canvas, mostly due to Fred Drake
  189. and Nils Fischbeck.
  190.  
  191. - Use more bits of time.time() in whrandom's default seed().
  192.  
  193. - Performance hack for regex module's regs attribute.
  194.  
  195. - Don't close already closed socket in socket module.
  196.  
  197. - Correctly handle separators containing embedded nulls in
  198. strop.split, strop.find and strop.rfind.  Also added more detail to
  199. error message for strop.atoi and friends.
  200.  
  201. - Moved fallback definition for hypot() to Python/hypot.c.
  202.  
  203. - Added fallback definition for strdup, in Python/strdup.c.
  204.  
  205. - Fixed some bugs where a function would return 0 to indicate an error
  206. where it should return -1.
  207.  
  208. - Test for error returned by time.localtime(), and rationalized its MS
  209. tests.
  210.  
  211. - Added Modules/Setup.local file, which is processed after Setup.
  212.  
  213. - Corrected bug in toplevel Makefile.in -- execution of regen script
  214. would not use the right PATH and PYTHONPATH.
  215.  
  216. - Various and sundry NeXT configuration changes (sigh).
  217.  
  218. - Support systems where libreadline needs neither termcap nor curses.
  219.  
  220. - Improved ld_so_aix script and python.exp file (for AIX).
  221.  
  222. - More stringent test for working <stdarg.h> in configure script.
  223.  
  224. - Removed Demo/www subdirectory -- it was totally out of date.
  225.  
  226. - Improved demos and docs for Fred Drake's parser module; fixed one
  227. typo in the module itself.
  228.  
  229.  
  230. =========================================
  231. ==> Release 1.4beta3 (August 26 1996) <==
  232. =========================================
  233.  
  234.  
  235. (XXX This is less readable that it should.  I promise to restructure
  236. it for the final 1.4 release.)
  237.  
  238.  
  239. What's new in 1.4beta3 (since beta2)?
  240. -------------------------------------
  241.  
  242. - Name mangling to implement a simple form of class-private variables.
  243. A name of the form "__spam" can't easily be used outside the class.
  244. (This was added in 1.4beta3, but left out of the 1.4beta3 release
  245. message.)
  246.  
  247. - In urllib.urlopen(): HTTP URLs containing user:passwd@host are now
  248. handled correctly when using a proxy server.
  249.  
  250. - In ntpath.normpath(): don't truncate to 8+3 format.
  251.  
  252. - In mimetools.choose_boundary(): don't die when getuid() or getpid()
  253. aren't defined.
  254.  
  255. - Module urllib: some optimizations to (un)quoting.
  256.  
  257. - New module MimeWriter for writing MIME documents.
  258.  
  259. - More changes to formatter module.
  260.  
  261. - The freeze script works once again and is much more robust (using
  262. sys.prefix etc.).  It also supports a -o option to specify an
  263. output directory.
  264.  
  265. - New module whichdb recognizes dbm, gdbm and bsddb/dbhash files.
  266.  
  267. - The Doc/Makefile targets have been reorganized somewhat to remove the 
  268. insistence on always generating PostScript.
  269.  
  270. - The texinfo to html filter (Doc/texi2html.py) has been improved somewhat.
  271.  
  272. - "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing 
  273. name conflict on the Mac.
  274.  
  275. - Linking a module compiled with a different setting for Py_TRACE_REFS now 
  276. generates a linker error rather than a core dump.
  277.  
  278. - The cgi module has a new convenience function print_exception(), which 
  279. formats a python exception using HTML.  It also fixes a bug in the 
  280. compatibility code and adds a dubious feature which makes it possible to 
  281. have two query strings, one in the URL and one in the POST data.
  282.  
  283. - A subtle change in the unpickling of class instances makes it possible 
  284. to unpickle in restricted execution mode, where the __dict__ attribute is 
  285. not available (but setattr() is).
  286.  
  287. - Documentation for os.path.splitext() (== posixpath.splitext()) has been 
  288. cleared up.  It splits at the *last* dot.
  289.  
  290. - posixfile locking is now also correctly supported on AIX.
  291.  
  292. - The tempfile module once again honors an initial setting of tmpdir.  It 
  293. now works on Windows, too.
  294.  
  295. - The traceback module has some new functions to extract, format and print 
  296. the active stack.
  297.  
  298. - Some translation functions in the urllib module have been made a little 
  299. less sluggish.
  300.  
  301. - The addtag_* methods for Canvas widgets in Tkinter as well as in the 
  302. separate Canvas class have been fixed so they actually do something 
  303. meaningful.
  304.  
  305. - A tiny _test() function has been added to Tkinter.py.
  306.  
  307. - A generic Makefile for dynamically loaded modules is provided in the Misc 
  308. subdirectory (Misc/gMakefile).
  309.  
  310. - A new version of python-mode.el for Emacs is provided.  See
  311. http://www.python.org/ftp/emacs/pmdetails.html for details.  The
  312. separate file pyimenu.el is no longer needed, imenu support is folded
  313. into python-mode.el.
  314.  
  315. - The configure script can finally correctly find the readline library in a 
  316. non-standard location.  The LDFLAGS variable is passed on the the Makefiles 
  317. from the configure script.
  318.  
  319. - Shared libraries are now installed as programs (i.e. with executable 
  320. permission).  This is required on HP-UX and won't hurt on other systems.
  321.  
  322. - The objc.c module is no longer part of the distribution.  Objective-C 
  323. support may become available as contributed software on the ftp site.
  324.  
  325. - The sybase module is no longer part of the distribution.  A much
  326. improved sybase module is available as contributed software from the
  327. ftp site.
  328.  
  329. - _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and 
  330. Mac (don't use unpatched Tcl/Tk!).  The default line in the Setup.in file 
  331. now links with Tcl 7.5 / Tk 4.1 rather than 7.4/4.0.
  332.  
  333. - In Setup, you can now write "*shared*" instead of "*noconfig*", and you 
  334. can use *.so and *.sl as shared libraries.
  335.  
  336. - Some more fidgeting for AIX shared libraries.
  337.  
  338. - The mpz module is now compatible with GMP 2.x.  (Not tested by me.)
  339. (Note -- a complete replacement by Niels Mo"ller, called gpmodule, is
  340. available from the contrib directory on the ftp site.)
  341.  
  342. - A warning is written to sys.stderr when a __del__ method raises an 
  343. exception (formerly, such exceptions were completely ignored).
  344.  
  345. - The configure script now defines HAVE_OLD_CPP if the C preprocessor is 
  346. incapable of ANSI style token concatenation and stringification.
  347.  
  348. - All source files (except a few platform specific modules) are once again 
  349. compatible with K&R C compilers as well as ANSI compilers.  In particular,
  350. ANSI-isms have been removed or made conditional in complexobject.c, 
  351. getargs.c and operator.c.
  352.  
  353. - The abstract object API has three new functions, PyObject_DelItem, 
  354. PySequence_DelItem, and PySequence_DelSlice.
  355.  
  356. - The operator module has new functions delitem and delslice, and the 
  357. functions "or" and "and" are renamed to "or_" and "and_" (since "or" and 
  358. "and" are reserved words).  ("__or__" and "__and__" are unchanged.)
  359.  
  360. - The environment module is no longer supported; putenv() is now a function 
  361. in posixmodule (also under NT).
  362.  
  363. - Error in filter(<function>, "") has been fixed.
  364.  
  365. - Unrecognized keyword arguments raise TypeError, not KeyError.
  366.  
  367. - Better portability, fewer bugs and memory leaks, fewer compiler warnings, 
  368. some more documentation.
  369.  
  370. - Bug in float power boundary case (0.0 to the negative integer power) 
  371. fixed.
  372.  
  373. - The test of negative number to the float power has been moved from the 
  374. built-in pow() functin to floatobject.c (so complex numbers can yield the 
  375. correct result).
  376.  
  377. - The bug introduced in beta2 where shared libraries loaded (using 
  378. dlopen()) from the current directory would fail, has been fixed.
  379.  
  380. - Modules imported as shared libraries now also have a __file__ attribute, 
  381. giving the filename from which they were loaded.  The only modules without 
  382. a __file__ attribute now are built-in modules.
  383.  
  384. - On the Mac, dynamically loaded modules can end in either ".slb" or 
  385. ".<platform>.slb" where <platform> is either "CFM68K" or "ppc".  The ".slb" 
  386. extension should only be used for "fat" binaries.
  387.  
  388. - C API addition: marshal.c now supports 
  389. PyMarshal_WriteObjectToString(object).
  390.  
  391. - C API addition: getargs.c now supports
  392. PyArg_ParseTupleAndKeywords(args, kwdict, format, kwnames, ...)
  393. to parse keyword arguments.
  394.  
  395. - The PC versioning scheme (sys.winver) has changed once again.  the 
  396. version number is now "<digit>.<digit>.<digit>.<apiversion>", where the 
  397. first three <digit>s are the Python version (e.g. "1.4.0" for Python 1.4, 
  398. "1.4.1" for Python 1.4.1 -- the beta level is not included) and 
  399. <apiversion> is the four-digit PYTHON_API_VERSION (currently 1005).
  400.  
  401. - h2py.py accepts whitespace before the # in CPP directives
  402.  
  403. - On Solaris 2.5, it should now be possible to use either Posix threads or 
  404. Solaris threads (XXX: how do you select which is used???).  (Note: the 
  405. Python pthreads interface doesn't fully support semaphores yet -- anyone 
  406. care to fix this?)
  407.  
  408. - Thread support should now work on AIX, using either DCE threads or 
  409. pthreads.
  410.  
  411. - New file Demo/sockets/unicast.py
  412.  
  413. - Working Mac port, with CFM68K support, with Tk 4.1 support (though not 
  414. both) (XXX)
  415.  
  416. - New project setup for PC port, now compatible with PythonWin, with 
  417. _tkinter and NumPy support (XXX)
  418.  
  419. - New module site.py (XXX)
  420.  
  421. - New module xdrlib.py and optional support module _xdrmodule.c (XXX)
  422.  
  423. - parser module adapted to new grammar, complete w/ Doc & Demo (XXX)
  424.  
  425. - regen script fixed (XXX)
  426.  
  427. - new machdep subdirectories Lib/{aix3,aix4,next3_3,freebsd2,linux2} (XXX)
  428.  
  429. - testall now also tests math module (XXX)
  430.  
  431. - string.atoi c.s. now raise an exception for an empty input string.
  432.  
  433. - At last, it is no longer necessary to define HAVE_CONFIG_H in order to 
  434. have config.h included at various places.
  435.  
  436. - Unrecognized keyword arguments now raise TypeError rather than KeyError.
  437.  
  438. - The makesetup script recognizes files with extension .so or .sl as
  439. (shared) libraries.
  440.  
  441. - 'access' is no longer a reserved word, and all code related to its 
  442. implementation is gone (or at least #ifdef'ed out).  This should make 
  443. Python a little speedier too!
  444.  
  445. - Performance enhancements suggested by Sjoerd Mullender.  This includes 
  446. the introduction of two new optional function pointers in type object, 
  447. getattro and setattro, which are like getattr and setattr but take a 
  448. string object instead of a C string pointer.
  449.  
  450. - New operations in string module: lstrip(s) and rstrip(s) strip whitespace 
  451. only on the left or only on the right, A new optional third argument to 
  452. split() specifies the maximum number of separators honored (so 
  453. splitfields(s, sep, n) returns a list of at most n+1 elements).  (Since 
  454. 1.3, splitfields(s, None) is totally equivalent to split(s).)
  455. string.capwords() has an optional second argument specifying the 
  456. separator (which is passed to split()).
  457.  
  458. - regsub.split() has the same addition as string.split().  regsub.splitx(s, 
  459. sep, maxsep) implements the functionality that was regsub.split(s, 1) in 
  460. 1.4beta2 (return a list containing the delimiters as well as the words).
  461.  
  462. - Final touch for AIX loading, rewritten Misc/AIX-NOTES.
  463.  
  464. - In Modules/_tkinter.c, when using Tk 4.1 or higher, use className
  465. argument to _tkinter.create() to set Tcl's argv0 variable, so X
  466. resources use the right resource class again.
  467.  
  468. - Add #undef fabs to Modules/mathmodule.c for macintosh.
  469.  
  470. - Added some macro renames for AIX in Modules/operator.c.
  471.  
  472. - Removed spurious 'E' from Doc/liberrno.tex.
  473.  
  474. - Got rid of some cruft in Misc/ (dlMakefile, pyimenu.el); added new
  475. Misc/gMakefile and new version of Misc/python-mode.el.
  476.  
  477. - Fixed typo in Lib/ntpath.py (islink has "return false" which gives a
  478. NameError).
  479.  
  480. - Added missing "from types import *" to Lib/tkinter/Canvas.py.
  481.  
  482. - Added hint about using default args for __init__ to pickle docs.
  483.  
  484. - Corrected typo in Inclide/abstract.h: PySequence_Lenth ->
  485. PySequence_Length.
  486.  
  487. - Some improvements to Doc/texi2html.py.
  488.  
  489. - In Python/import.c, Cast unsigned char * in struct _frozen to char *
  490. in calls to rds_object().
  491.  
  492. - In doc/ref4.tex, added note about scope of lambda bodies.
  493.  
  494. What's new in 1.4beta2 (since beta1)?
  495. -------------------------------------
  496.  
  497. - Portability bug in the md5.h header solved.
  498.  
  499. - The PC build procedure now really works, and sets sys.platform to a
  500. meaningful value (a few things were botched in beta 1).  Lib/dos_8x3
  501. is now a standard part of the distribution (alas).
  502.  
  503. - More improvements to the installation procedure.  Typing "make install" 
  504. now inserts the version number in the pathnames of almost everything 
  505. installed, and creates the machine dependent modules (FCNTL.py etc.) if not 
  506. supplied by the distribution.  (XXX There's still a problem with the latter 
  507. because the "regen" script requires that Python is installed.  Some manual 
  508. intervention may still be required.) (This has been fixed in 1.4beta3.)
  509.  
  510. - New modules: errno, operator (XXX).
  511.  
  512. - Changes for use with Numerical Python: builtin function slice() and
  513. Ellipses object, and corresponding syntax:
  514.  
  515.     x[lo:hi:stride]        ==    x[slice(lo, hi, stride)]
  516.     x[a, ..., z]        ==    x[(a, Ellipses, z)]
  517.  
  518. - New documentation for errno and cgi mdoules.
  519.  
  520. - The directory containing the script passed to the interpreter is
  521. inserted in from of sys.path; "." is no longer a default path
  522. component.
  523.  
  524. - Optional third string argument to string.translate() specifies
  525. characters to delete.  New function string.maketrans() creates a
  526. translation table for translate() or for regex.compile().
  527.  
  528. - Module posix (and hence module os under Unix) now supports putenv().
  529. Moreover, module os is enhanced so that if putenv() is supported,
  530. assignments to os.environ entries make the appropriate putenv() call.
  531. (XXX the putenv() implementation can leak a small amount of memory per
  532. call.)
  533.  
  534. - pdb.py can now be invoked from the command line to debug a script:
  535. python pdb.py <script> <arg> ...
  536.  
  537. - Much improved parseaddr() in rfc822.
  538.  
  539. - In cgi.py, you can now pass an alternative value for environ to
  540. nearly all functions.
  541.  
  542. - You can now assign to instance variables whose name begins and ends
  543. with '__'.
  544.  
  545. - New version of Fred Drake's parser module and associates (token,
  546. symbol, AST).
  547.  
  548. - New PYTHON_API_VERSION value and .pyc file magic number (again!).
  549.  
  550. - The "complex" internal structure type is now called "Py_complex" to
  551. avoid name conflicts.
  552.  
  553. - Numerous small bugs fixed.
  554.  
  555. - Slight pickle speedups.
  556.  
  557. - Some slight speedups suggested by Sjoerd (more coming in 1.4 final).
  558.  
  559. - NeXT portability mods by Bill Bumgarner integrated.
  560.  
  561. - Modules regexmodule.c, bsddbmodule.c and xxmodule.c have been
  562. converted to new naming style.
  563.  
  564.  
  565. What's new in 1.4beta1 (since 1.3)?
  566. -----------------------------------
  567.  
  568. - Added sys.platform and sys.exec_platform for Bill Janssen.
  569.  
  570. - Installation has been completely overhauled.  "make install" now installs 
  571. everything, not just the python binary.  Installation uses the install-sh 
  572. script (borrowed from X11) to install each file.
  573.  
  574. - New functions in the posix module: mkfifo, plock, remove (== unlink),
  575. and ftruncate.  More functions are also available under NT.
  576.  
  577. - New function in the fcntl module: flock.
  578.  
  579. - Shared library support for FreeBSD.
  580.  
  581. - The --with-readline option can now be used without a DIRECTORY argument, 
  582. for systems where libreadline.* is in one of the standard places.  It is 
  583. also possible for it to be a shared library.
  584.  
  585. - The extension tkinter has been renamed to _tkinter, to avoid confusion 
  586. with Tkinter.py oncase insensitive file systems.  It now supports Tk 4.1 as 
  587. well as 4.0.
  588.  
  589. - Author's change of address from CWI in Amsterdam, The Netherlands, to 
  590. CNRI in Reston, VA, USA.
  591.  
  592. - The math.hypot() function is now always available (if it isn't found in 
  593. the C math library, Python provides its own implementation).
  594.  
  595. - The latex documentation is now compatible with latex2e, thanks to David 
  596. Ascher.
  597.  
  598. - The expression x**y is now equivalent to pow(x, y).
  599.  
  600. - The indexing expression x[a, b, c] is now equivalent to x[(a, b, c)].
  601.  
  602. - Complex numbers are now supported.  Imaginary constants are written with 
  603. a 'j' or 'J' prefix, general complex numbers can be formed by adding a real 
  604. part to an imaginary part, like 3+4j.  Complex numbers are always stored in 
  605. floating point form, so this is equivalent to 3.0+4.0j.  It is also 
  606. possible to create complex numbers with the new built-in function 
  607. complex(re, [im]).  For the footprint-conscious, complex number support can 
  608. be disabled by defining the symbol WITHOUT_COMPLEX.
  609.  
  610. - New built-in function list() is the long-awaited counterpart of tuple().
  611.  
  612. - There's a new "cmath" module which provides the same functions as the 
  613. "math" library but with complex arguments and results.  (There are very 
  614. good reasons why math.sqrt(-1) still raises an exception -- you have to use 
  615. cmath.sqrt(-1) to get 1j for an answer.)
  616.  
  617. - The Python.h header file (which is really the same as allobjects.h except 
  618. it disables support for old style names) now includes several more files, 
  619. so you have to have fewer #include statements in the average extension.
  620.  
  621. - The NDEBUG symbol is no longer used.  Code that used to be dependent on 
  622. the presence of NDEBUG is now present on the absence of DEBUG.  TRACE_REFS 
  623. and REF_DEBUG have been renamed to Py_TRACE_REFS and Py_REF_DEBUG, 
  624. respectively.  At long last, the source actually compiles and links without 
  625. errors when this symbol is defined.
  626.  
  627. - Several symbols that didn't follow the new naming scheme have been 
  628. renamed (usually by adding to rename2.h) to use a Py or _Py prefix.  There 
  629. are no external symbols left without a Py or _Py prefix, not even those 
  630. defined by sources that were incorporated from elsewhere (regexpr.c, 
  631. md5c.c).  (Macros are a different story...)
  632.  
  633. - There are now typedefs for the structures defined in config.c and 
  634. frozen.c.
  635.  
  636. - New PYTHON_API_VERSION value and .pyc file magic number.
  637.  
  638. - New module Bastion.  (XXX)
  639.  
  640. - Improved performance of StringIO module.
  641.  
  642. - UserList module now supports + and * operators.
  643.  
  644. - The binhex and binascii modules now actually work.
  645.  
  646. - The cgi module has been almost totally rewritten and documented.
  647. It now supports file upload and a new data type to handle forms more 
  648. flexibly.
  649.  
  650. - The formatter module (for use with htmllib) has been overhauled (again).
  651.  
  652. - The ftplib module now supports passive mode and has doc strings.
  653.  
  654. - In (ideally) all places where binary files are read or written, the file 
  655. is now correctly opened in binary mode ('rb' or 'wb') so the code will work 
  656. on Mac or PC.
  657.  
  658. - Dummy versions of os.path.expandvars() and expanduser() are now provided 
  659. on non-Unix platforms.
  660.  
  661. - Module urllib now has two new functions url2pathname and pathname2url 
  662. which turn local filenames into "file:..." URLs using the same rules as 
  663. Netscape (why be different).  it also supports urlretrieve() with a 
  664. pathname parameter, and honors the proxy environment variables (http_proxy 
  665. etc.).  The URL parsing has been improved somewhat, too.
  666.  
  667. - Micro improvements to urlparse.  Added urlparse.urldefrag() which 
  668. removes a trailing ``#fragment'' if any.
  669.  
  670. - The mailbox module now supports MH style message delimiters as well.
  671.  
  672. - The mhlib module contains some new functionality: setcontext() to set the 
  673. current folder and parsesequence() to parse a sequence as commonly passed 
  674. to MH commands (e.g. 1-10 or last:5).
  675.  
  676. - New module mimify for conversion to and from MIME format of email 
  677. messages.
  678.  
  679. - Module ni now automatically installs itself when first imported -- this 
  680. is against the normal rule that modules should define classes and functions 
  681. but not invoke them, but appears more useful in the case that two 
  682. different, independent modules want to use ni's features.
  683.  
  684. - Some small performance enhancements in module pickle.
  685.  
  686. - Small interface change to the profile.run*() family of functions -- more 
  687. sensible handling of return values.
  688.  
  689. - The officially registered Mac creator for Python files is 'Pyth'.  This 
  690. replaces 'PYTH' which was used before but never registered.
  691.  
  692. - Added regsub.capwords().  (XXX)
  693.  
  694. - Added string.capwords(), string.capitalize() and string.translate().  
  695. (XXX)
  696.  
  697. - Fixed an interface bug in the rexec module: it was impossible to pass a 
  698. hooks instance to the RExec class.  rexec now also supports the dynamic 
  699. loading of modules from shared libraries.  Some other interfaces have been 
  700. added too.
  701.  
  702. - Module rfc822 now caches the headers in a dictionary for more efficient 
  703. lookup.
  704.  
  705. - The sgmllib module now understands a limited number of SGML "shorthands" 
  706. like <A/.../ for <A>...</A>.  (It's not clear that this was a good idea...)
  707.  
  708. - The tempfile module actually tries a number of different places to find a 
  709. usable temporary directory.  (This was prompted by certain Linux 
  710. installations that appear to be missing a /usr/tmp directory.) [A bug in 
  711. the implementation that would ignore a pre-existing tmpdir global has been 
  712. fixed in beta3.]
  713.  
  714. - Much improved and enhanved FileDialog module for Tkinter.
  715.  
  716. - Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as 
  717. well as Tk 4.1).
  718.  
  719. - New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and 
  720. s.dup().  Sockets now work correctly on Windows.  On Windows, the built-in 
  721. extension is called _socket and a wrapper module win/socket.py provides 
  722. "makefile()" and "dup()" functionality.  On Windows, the select module 
  723. works only with socket objects.
  724.  
  725. - Bugs in bsddb module fixed (e.g. missing default argument values).
  726.  
  727. - The curses extension now includes <ncurses.h> when available.
  728.  
  729. - The gdbm module now supports opening databases in "fast" mode by 
  730. specifying 'f' as the second character or the mode string.
  731.  
  732. - new variables sys.prefix and sys.exec_prefix pass corresponding 
  733. configuration options / Makefile variables to the Python programmer.
  734.  
  735. - The ``new'' module now supports creating new user-defined classes as well 
  736. as instances thereof.
  737.  
  738. - The soundex module now sports get_soundex() to get the soundex value for an 
  739. arbitrary string (formerly it would only do soundex-based string 
  740. comparison) as well as doc strings.
  741.  
  742. - New object type "cobject" to safely wrap void pointers for passing them 
  743. between various extension modules.
  744.  
  745. - More efficient computation of float**smallint.
  746.  
  747. - The mysterious bug whereby "x.x" (two occurrences of the same 
  748. one-character name) typed from the commandline would sometimes fail 
  749. mysteriously.
  750.  
  751. - The initialization of the readline function can now be invoked by a C 
  752. extension through PyOS_ReadlineInit().
  753.  
  754. - There's now an externally visible pointer PyImport_FrozenModules which 
  755. can be changed by an embedding application.
  756.  
  757. - The argument parsing functions now support a new format character 'D' to 
  758. specify complex numbers.
  759.  
  760. - Various memory leaks plugged and bugs fixed.
  761.  
  762. - Improved support for posix threads (now that real implementations are 
  763. beginning to apepar).  Still no fully functioning semaphores.
  764.  
  765. - Some various and sundry improvements and new entries in the Tools 
  766. directory.
  767.