blob: 56a9e05b400fe9aa4ef440f752850b2fbd7d7272 [file] [log] [blame]
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +00001=========================================
Guido van Rossum4a67a161996-08-26 02:40:59 +00002==> Release 1.4beta3 (August 26 1996) <==
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +00003=========================================
Guido van Rossum635649f1994-11-10 23:04:51 +00004
Guido van Rossum635649f1994-11-10 23:04:51 +00005
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +00006(XXX This is less readable that it should. I promis to restructure it
7for the final 1.4 release.)
8
Guido van Rossum4a67a161996-08-26 02:40:59 +00009
10What's new in 1.4beta3 (since beta2)?
11-------------------------------------
12
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +000013- In urllib.urlopen(): HTTP URLs containing user:passwd@host are now
14handled correctly when using a proxy server.
15
16- In ntpath.normpath(): don't truncate to 8+3 format.
17
18- In mimetools.choose_boundary(): don't die when getuid() or getpid()
19aren't defined.
20
21- Module urllib: some optimizations to (un)quoting.
22
23- New module MimeWriter for writing MIME documents.
24
25- More changes to formatter module.
26
27- The freeze script works once again and is much more robust (using
28sys.prefix etc.). It also supports a -o option to specify an
29output directory.
30
Guido van Rossum4a67a161996-08-26 02:40:59 +000031- New module whichdb recognizes dbm, gdbm and bsddb/dbhash files.
32
33- The Doc/Makefile targets have been reorganized somewhat to remove the
34insistence on always generating PostScript.
35
36- The texinfo to html filter (Doc/texi2html.py) has been improved somewhat.
37
38- "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing
39name conflict on the Mac.
40
41- Linking a module compiled with a different setting for Py_TRACE_REFS now
42generates a linker error rather than a core dump.
43
44- The cgi module has a new convenience function print_exception(), which
45formats a python exception using HTML. It also fixes a bug in the
46compatibility code and adds a dubious feature which makes it possible to
47have two query strings, one in the URL and one in the POST data.
48
49- A subtle change in the unpickling of class instances makes it possible
50to unpickle in restricted execution mode, where the __dict__ attribute is
51not available (but setattr() is).
52
53- Documentation for os.path.splitext() (== posixpath.splitext()) has been
54cleared up. It splits at the *last* dot.
55
56- posixfile locking is now also correctly supported on AIX.
57
58- The tempfile module once again honors an initial setting of tmpdir. It
59now works on Windows, too.
60
61- The traceback module has some new functions to extract, format and print
62the active stack.
63
64- Some translation functions in the urllib module have been made a little
65less sluggish.
66
67- The addtag_* methods for Canvas widgets in Tkinter as well as in the
68separate Canvas class have been fixed so they actually do something
69meaningful.
70
71- A tiny _test() function has been added to Tkinter.py.
72
73- A generic Makefile for dynamically loaded modules is provided in the Misc
74subdirectory (Misc/gMakefile).
75
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +000076- A new version of python-mode.el for Emacs is provided. See
77http://www.python.org/ftp/emacs/pmdetails.html for details. The
78separate file pyimenu.el is no longer needed, imenu support is folded
79into python-mode.el.
Guido van Rossum4a67a161996-08-26 02:40:59 +000080
81- The configure script can finally correctly find the readline library in a
82non-standard location. The LDFLAGS variable is passed on the the Makefiles
83from the configure script.
84
85- Shared libraries are now installed as programs (i.e. with executable
86permission). This is required on HP-UX and won't hurt on other systems.
87
88- The objc.c module is no longer part of the distribution. Objective-C
89support may become available as contributed software on the ftp site.
90
91- The sybase module is no longer part of the distribution. May John
92Redford rot in hell. A much improved sybase module is available as
93contributed software from the ftp site.
94
95- _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and
96Mac (don't use unpatched Tcl/Tk!). The default line in the Setup.in file
97now links with Tcl 7.5 / Tk 4.1 rather than 7.4/4.0.
98
99- In Setup, you can now write "*shared*" instead of "*noconfig*", and you
100can use *.so and *.sl as shared libraries.
101
102- Some more fidgeting for AIX shared libraries.
103
104- The mpz module is now compatible with GMP 2.x. (Not tested by me.)
Guido van Rossum5f9aa9e1996-08-26 18:22:44 +0000105(Note -- a complete replacement by Niels Mo"ller, called gpmodule, is
106available from the contrib directory on the ftp site.)
Guido van Rossum4a67a161996-08-26 02:40:59 +0000107
108- A warning is written to sys.stderr when a __del__ method raises an
109exception (formerly, such exceptions were completely ignored).
110
111- The configure script now defines HAVE_OLD_CPP if the C preprocessor is
112incapable of ANSI style token concatenation and stringification.
113
114- All source files (except a few platform specific modules) are once again
115compatible with K&R C compilers as well as ANSI compilers. In particular,
116ANSI-isms have been removed or made conditional in complexobject.c,
117getargs.c and operator.c.
118
119- The abstract object API has three new functions, PyObject_DelItem,
120PySequence_DelItem, and PySequence_DelSlice.
121
122- The operator module has new functions delitem and delslice, and the
123functions "or" and "and" are renamed to "or_" and "and_" (since "or" and
124"and" are reserved words). ("__or__" and "__and__" are unchanged.)
125
126- The environment module is no longer supported; putenv() is now a function
127in posixmodule (also under NT).
128
129- Error in filter(<function>, "") has been fixed.
130
131- Unrecognized keyword arguments raise TypeError, not KeyError.
132
133- Better portability, fewer bugs and memory leaks, fewer compiler warnings,
134some more documentation.
135
136- Bug in float power boundary case (0.0 to the negative integer power)
137fixed.
138
139- The test of negative number to the float power has been moved from the
140built-in pow() functin to floatobject.c (so complex numbers can yield the
141correct result).
142
143- The bug introduced in beta2 where shared libraries loaded (using
144dlopen()) from the current directory would fail, has been fixed.
145
146- Modules imported as shared libraries now also have a __file__ attribute,
147giving the filename from which they were loaded. The only modules without
148a __file__ attribute now are built-in modules.
149
150- On the Mac, dynamically loaded modules can end in either ".slb" or
151".<platform>.slb" where <platform> is either "CFM68K" or "ppc". The ".slb"
152extension should only be used for "fat" binaries.
153
154- C API addition: marshal.c now supports
155PyMarshal_WriteObjectToString(object).
156
157- C API addition: getargs.c now supports
158PyArg_ParseTupleAndKeywords(args, kwdict, format, kwnames, ...)
159to parse keyword arguments.
160
161- The PC versioning scheme (sys.winver) has changed once again. the
162version number is now "<digit>.<digit>.<digit>.<apiversion>", where the
163first three <digit>s are the Python version (e.g. "1.4.0" for Python 1.4,
164"1.4.1" for Python 1.4.1 -- the beta level is not included) and
165<apiversion> is the four-digit PYTHON_API_VERSION (currently 1005).
166
167- h2py.py accepts whitespace before the # in CPP directives
168
169- On Solaris 2.5, it should now be possible to use either Posix threads or
170Solaris threads (XXX: how do you select which is used???). (Note: the
171Python pthreads interface doesn't fully support semaphores yet -- anyone
172care to fix this?)
173
174- Thread support should now work on AIX, using either DCE threads or
175pthreads.
176
177- New file Demo/sockets/unicast.py
178
179- Working Mac port, with CFM68K support, with Tk 4.1 support (though not
180both) (XXX)
181
182- New project setup for PC port, now compatible with PythonWin, with
183_tkinter and NumPy support (XXX)
184
185- New module site.py (XXX)
186
187- New module xdrlib.py and optional support module _xdrmodule.c (XXX)
188
189- parser module adapted to new grammar, complete w/ Doc & Demo (XXX)
190
Guido van Rossum4a67a161996-08-26 02:40:59 +0000191- regen script fixed (XXX)
192
193- new machdep subdirectories Lib/{aix3,aix4,next3_3,freebsd2,linux2} (XXX)
194
195- testall now also tests math module (XXX)
196
197- string.atoi c.s. now raise an exception for an empty input string.
198
199- At last, it is no longer necessary to define HAVE_CONFIG_H in order to
200have config.h included at various places.
201
202- Unrecognized keyword arguments now raise TypeError rather than KeyError.
203
204- The makesetup script recognizes files with extension .so or .sl as
205(shared) libraries.
206
207- 'access' is no longer a reserved word, and all code related to its
208implementation is gone (or at least #ifdef'ed out). This should make
209Python a little speedier too!
210
211- Performance enhancements suggested by Sjoerd Mullender. This includes
212the introduction of two new optional function pointers in type object,
213getattro and setattro, which are like getattr and setattr but take a
214string object instead of a C string pointer.
215
216- New operations in string module: lstrip(s) and rstrip(s) strip whitespace
217only on the left or only on the right, A new optional third argument to
218split() specifies the maximum number of separators honored (so
219splitfields(s, sep, n) returns a list of at most n+1 elements). (Since
2201.3, splitfields(s, None) is totally equivalent to split(s).)
221string.capwords() has an optional second argument specifying the
222separator (which is passed to split()).
223
224- regsub.split() has the same addition as string.split(). regsub.splitx(s,
225sep, maxsep) implements the functionality that was regsub.split(s, 1) in
2261.4beta2 (return a list containing the delimiters as well as the words).
227
228- Final touch for AIX loading, rewritten Misc/AIX-NOTES.
229
230- In Modules/_tkinter.c, when using Tk 4.1 or higher, use className
231argument to _tkinter.create() to set Tcl's argv0 variable, so X
232resources use the right resource class again.
233
234- Add #undef fabs to Modules/mathmodule.c for macintosh.
235
236- Added some macro renames for AIX in Modules/operator.c.
237
238- Removed spurious 'E' from Doc/liberrno.tex.
239
240- Got rid of some cruft in Misc/ (dlMakefile, pyimenu.el); added new
241Misc/gMakefile and new version of Misc/python-mode.el.
242
243- Fixed typo in Lib/ntpath.py (islink has "return false" which gives a
244NameError).
245
246- Added missing "from types import *" to Lib/tkinter/Canvas.py.
247
248- Added hint about using default args for __init__ to pickle docs.
249
250- Corrected typo in Inclide/abstract.h: PySequence_Lenth ->
251PySequence_Length.
252
253- Some improvements to Doc/texi2html.py.
254
255- In Python/import.c, Cast unsigned char * in struct _frozen to char *
256in calls to rds_object().
257
258- In doc/ref4.tex, added note about scope of lambda bodies.
259
260What's new in 1.4beta2 (since beta1)?
261-------------------------------------
Guido van Rossum635649f1994-11-10 23:04:51 +0000262
Guido van Rossumccdfce31996-07-30 21:34:09 +0000263- Portability bug in the md5.h header solved.
Guido van Rossum0082c1a1995-04-10 11:52:44 +0000264
Guido van Rossumccdfce31996-07-30 21:34:09 +0000265- The PC build procedure now really works, and sets sys.platform to a
266meaningful value (a few things were botched in beta 1). Lib/dos_8x3
267is now a standard part of the distribution (alas).
Guido van Rossum635649f1994-11-10 23:04:51 +0000268
Guido van Rossum4a67a161996-08-26 02:40:59 +0000269- More improvements to the installation procedure. Typing "make install"
270now inserts the version number in the pathnames of almost everything
271installed, and creates the machine dependent modules (FCNTL.py etc.) if not
272supplied by the distribution. (XXX There's still a problem with the latter
273because the "regen" script requires that Python is installed. Some manual
274intervention may still be required.) (This has been fixed in 1.4beta3.)
Guido van Rossum061f1821994-10-06 16:03:45 +0000275
Guido van Rossum4a67a161996-08-26 02:40:59 +0000276- New modules: errno, operator (XXX).
Guido van Rossum061f1821994-10-06 16:03:45 +0000277
Guido van Rossumccdfce31996-07-30 21:34:09 +0000278- Changes for use with Numerical Python: builtin function slice() and
279Ellipses object, and corresponding syntax:
Guido van Rossum061f1821994-10-06 16:03:45 +0000280
Guido van Rossumccdfce31996-07-30 21:34:09 +0000281 x[lo:hi:stride] == x[slice(lo, hi, stride)]
282 x[a, ..., z] == x[(a, Ellipses, z)]
283
284- New documentation for errno and cgi mdoules.
285
286- The directory containing the script passed to the interpreter is
287inserted in from of sys.path; "." is no longer a default path
288component.
289
290- Optional third string argument to string.translate() specifies
291characters to delete. New function string.maketrans() creates a
292translation table for translate() or for regex.compile().
293
294- Module posix (and hence module os under Unix) now supports putenv().
295Moreover, module os is enhanced so that if putenv() is supported,
296assignments to os.environ entries make the appropriate putenv() call.
297(XXX the putenv() implementation can leak a small amount of memory per
298call.)
299
300- pdb.py can now be invoked from the command line to debug a script:
301python pdb.py <script> <arg> ...
302
303- Much improved parseaddr() in rfc822.
304
305- In cgi.py, you can now pass an alternative value for environ to
306nearly all functions.
307
308- You can now assign to instance variables whose name begins and ends
309with '__'.
310
311- New version of Fred Drake's parser module and associates (token,
312symbol, AST).
313
Guido van Rossum4a67a161996-08-26 02:40:59 +0000314- New PYTHON_API_VERSION value and .pyc file magic number (again!).
Guido van Rossumccdfce31996-07-30 21:34:09 +0000315
316- The "complex" internal structure type is now called "Py_complex" to
317avoid name conflicts.
318
319- Numerous small bugs fixed.
320
321- Slight pickle speedups.
322
323- Some slight speedups suggested by Sjoerd (more coming in 1.4 final).
324
325- NeXT portability mods by Bill Bumgarner integrated.
326
327- Modules regexmodule.c, bsddbmodule.c and xxmodule.c have been
328converted to new naming style.
329
330
Guido van Rossum4a67a161996-08-26 02:40:59 +0000331What's new in 1.4beta1 (since 1.3)?
332-----------------------------------
Guido van Rossumccdfce31996-07-30 21:34:09 +0000333
334- Added sys.platform and sys.exec_platform for Bill Janssen.
335
Guido van Rossum4a67a161996-08-26 02:40:59 +0000336- Installation has been completely overhauled. "make install" now installs
337everything, not just the python binary. Installation uses the install-sh
338script (borrowed from X11) to install each file.
339
340- New functions in the posix module: mkfifo, plock, remove (== unlink),
341and ftruncate. More functions are also available under NT.
342
343- New function in the fcntl module: flock.
344
345- Shared library support for FreeBSD.
346
347- The --with-readline option can now be used without a DIRECTORY argument,
348for systems where libreadline.* is in one of the standard places. It is
349also possible for it to be a shared library.
350
351- The extension tkinter has been renamed to _tkinter, to avoid confusion
352with Tkinter.py oncase insensitive file systems. It now supports Tk 4.1 as
353well as 4.0.
354
355- Author's change of address from CWI in Amsterdam, The Netherlands, to
356CNRI in Reston, VA, USA.
357
358- The math.hypot() function is now always available (if it isn't found in
359the C math library, Python provides its own implementation).
360
361- The latex documentation is now compatible with latex2e, thanks to David
362Ascher.
363
364- The expression x**y is now equivalent to pow(x, y).
365
366- The indexing expression x[a, b, c] is now equivalent to x[(a, b, c)].
367
368- Complex numbers are now supported. Imaginary constants are written with
369a 'j' or 'J' prefix, general complex numbers can be formed by adding a real
370part to an imaginary part, like 3+4j. Complex numbers are always stored in
371floating point form, so this is equivalent to 3.0+4.0j. It is also
372possible to create complex numbers with the new built-in function
373complex(re, [im]). For the footprint-conscious, complex number support can
374be disabled by defining the symbol WITHOUT_COMPLEX.
375
376- New built-in function list() is the long-awaited counterpart of tuple().
377
378- There's a new "cmath" module which provides the same functions as the
379"math" library but with complex arguments and results. (There are very
380good reasons why math.sqrt(-1) still raises an exception -- you have to use
381cmath.sqrt(-1) to get 1j for an answer.)
382
383- The Python.h header file (which is really the same as allobjects.h except
384it disables support for old style names) now includes several more files,
385so you have to have fewer #include statements in the average extension.
386
387- The NDEBUG symbol is no longer used. Code that used to be dependent on
388the presence of NDEBUG is now present on the absence of DEBUG. TRACE_REFS
389and REF_DEBUG have been renamed to Py_TRACE_REFS and Py_REF_DEBUG,
390respectively. At long last, the source actually compiles and links without
391errors when this symbol is defined.
392
393- Several symbols that didn't follow the new naming scheme have been
394renamed (usually by adding to rename2.h) to use a Py or _Py prefix. There
395are no external symbols left without a Py or _Py prefix, not even those
396defined by sources that were incorporated from elsewhere (regexpr.c,
397md5c.c). (Macros are a different story...)
398
399- There are now typedefs for the structures defined in config.c and
400frozen.c.
401
402- New PYTHON_API_VERSION value and .pyc file magic number.
403
404- New module Bastion. (XXX)
405
406- Improved performance of StringIO module.
407
408- UserList module now supports + and * operators.
409
410- The binhex and binascii modules now actually work.
411
412- The cgi module has been almost totally rewritten and documented.
413It now supports file upload and a new data type to handle forms more
414flexibly.
415
416- The formatter module (for use with htmllib) has been overhauled (again).
417
418- The ftplib module now supports passive mode and has doc strings.
419
420- In (ideally) all places where binary files are read or written, the file
421is now correctly opened in binary mode ('rb' or 'wb') so the code will work
422on Mac or PC.
423
424- Dummy versions of os.path.expandvars() and expanduser() are now provided
425on non-Unix platforms.
426
427- Module urllib now has two new functions url2pathname and pathname2url
428which turn local filenames into "file:..." URLs using the same rules as
429Netscape (why be different). it also supports urlretrieve() with a
430pathname parameter, and honors the proxy environment variables (http_proxy
431etc.). The URL parsing has been improved somewhat, too.
432
433- Micro improvements to urlparse. Added urlparse.urldefrag() which
434removes a trailing ``#fragment'' if any.
435
436- The mailbox module now supports MH style message delimiters as well.
437
438- The mhlib module contains some new functionality: setcontext() to set the
439current folder and parsesequence() to parse a sequence as commonly passed
440to MH commands (e.g. 1-10 or last:5).
441
442- New module mimify for conversion to and from MIME format of email
443messages.
444
445- Module ni now automatically installs itself when first imported -- this
446is against the normal rule that modules should define classes and functions
447but not invoke them, but appears more useful in the case that two
448different, independent modules want to use ni's features.
449
450- Some small performance enhancements in module pickle.
451
452- Small interface change to the profile.run*() family of functions -- more
453sensible handling of return values.
454
455- The officially registered Mac creator for Python files is 'Pyth'. This
456replaces 'PYTH' which was used before but never registered.
457
458- Added regsub.capwords(). (XXX)
459
460- Added string.capwords(), string.capitalize() and string.translate().
461(XXX)
462
463- Fixed an interface bug in the rexec module: it was impossible to pass a
464hooks instance to the RExec class. rexec now also supports the dynamic
465loading of modules from shared libraries. Some other interfaces have been
466added too.
467
468- Module rfc822 now caches the headers in a dictionary for more efficient
469lookup.
470
471- The sgmllib module now understands a limited number of SGML "shorthands"
472like <A/.../ for <A>...</A>. (It's not clear that this was a good idea...)
473
474- The tempfile module actually tries a number of different places to find a
475usable temporary directory. (This was prompted by certain Linux
476installations that appear to be missing a /usr/tmp directory.) [A bug in
477the implementation that would ignore a pre-existing tmpdir global has been
478fixed in beta3.]
479
480- Much improved and enhanved FileDialog module for Tkinter.
481
482- Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as
483well as Tk 4.1).
484
485- New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and
486s.dup(). Sockets now work correctly on Windows. On Windows, the built-in
487extension is called _socket and a wrapper module win/socket.py provides
488"makefile()" and "dup()" functionality. On Windows, the select module
489works only with socket objects.
490
491- Bugs in bsddb module fixed (e.g. missing default argument values).
492
493- The curses extension now includes <ncurses.h> when available.
494
495- The gdbm module now supports opening databases in "fast" mode by
496specifying 'f' as the second character or the mode string.
497
498- new variables sys.prefix and sys.exec_prefix pass corresponding
499configuration options / Makefile variables to the Python programmer.
500
501- The ``new'' module now supports creating new user-defined classes as well
502as instances thereof.
503
504- The soundex module now sports get_soundex() to get the soundex value for an
505arbitrary string (formerly it would only do soundex-based string
506comparison) as well as doc strings.
507
508- New object type "cobject" to safely wrap void pointers for passing them
509between various extension modules.
510
511- More efficient computation of float**smallint.
512
513- The mysterious bug whereby "x.x" (two occurrences of the same
514one-character name) typed from the commandline would sometimes fail
515mysteriously.
516
517- The initialization of the readline function can now be invoked by a C
518extension through PyOS_ReadlineInit().
519
520- There's now an externally visible pointer PyImport_FrozenModules which
521can be changed by an embedding application.
522
523- The argument parsing functions now support a new format character 'D' to
524specify complex numbers.
525
526- Various memory leaks plugged and bugs fixed.
527
528- Improved support for posix threads (now that real implementations are
529beginning to apepar). Still no fully functioning semaphores.
530
531- Some various and sundry improvements and new entries in the Tools
532directory.