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