summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1994-10-06 17:18:57 (GMT)
committerGuido van Rossum <guido@python.org>1994-10-06 17:18:57 (GMT)
commitaa25386fc23a406f490378bc5d576cd6013b308f (patch)
tree285d9525ce157df8bac466ed30a3647ef3aa5209 /Misc/NEWS
parent94ed6f5f63b5fbeca72bfdbc54b0055bed3d3b8e (diff)
downloadcpython-aa25386fc23a406f490378bc5d576cd6013b308f.zip
cpython-aa25386fc23a406f490378bc5d576cd6013b308f.tar.gz
cpython-aa25386fc23a406f490378bc5d576cd6013b308f.tar.bz2
Moved older news to HISTORY file
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS655
1 files changed, 0 insertions, 655 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index eeacdbb..a8e2e20 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -130,660 +130,5 @@ undocumented):
sigcheck() also sets an exception when it returns nonzero
-====================================
-==> Release 1.0.3 (14 July 1994) <==
-====================================
-
-This release consists entirely of bug fixes to the C sources; see the
-head of ../ChangeLog for a complete list. Most important bugs fixed:
-
-- Sometimes the format operator (string%expr) would drop the last
-character of the format string
-
-- Tokenizer looped when last line did not end in \n
-
-- Bug when triple-quoted string ended in quote plus newline
-
-- Typo in socketmodule (listen) (== instead of =)
-
-- typing vars() at the >>> prompt would cause recursive output
-
-==================================
-==> Release 1.0.2 (4 May 1994) <==
-==================================
-
-Overview of the most visible changes. Bug fixes are not listed. See
-also ChangeLog.
-
-Tokens
-------
-
-* String literals follow Standard C rules: they may be continued on
-the next line using a backslash; adjacent literals are concatenated
-at compile time.
-
-* A new kind of string literals, surrounded by triple quotes (""" or
-'''), can be continued on the next line without a backslash.
-
-Syntax
-------
-
-* Function arguments may have a default value, e.g. def f(a, b=1);
-defaults are evaluated at function definition time. This also applies
-to lambda.
-
-* The try-except statement has an optional else clause, which is
-executed when no exception occurs in the try clause.
-
-Interpreter
------------
-
-* The result of a statement-level expression is no longer printed,
-except_ for expressions entered interactively. Consequently, the -k
-command line option is gone.
-
-* The result of the last printed interactive expression is assigned to
-the variable '_'.
-
-* Access to implicit global variables has been speeded up by removing
-an always-failing dictionary lookup in the dictionary of local
-variables (mod suggested by Steve Makewski and Tim Peters).
-
-* There is a new command line option, -u, to force stdout and stderr
-to be unbuffered.
-
-* Incorporated Steve Majewski's mods to import.c for dynamic loading
-under AIX.
-
-* Fewer chances of dumping core when trying to reload or re-import
-static built-in, dynamically loaded built-in, or frozen modules.
-
-* Loops over sequences now don't ask for the sequence's length when
-they start, but try to access items 0, 1, 2, and so on until they hit
-an IndexError. This makes it possible to create classes that generate
-infinite or indefinite sequences a la Steve Majewski. This affects
-for loops, the (not) in operator, and the built-in functions filter(),
-map(), max(), min(), reduce().
-
-Changed Built-in operations
----------------------------
-
-* The '%' operator on strings (printf-style formatting) supports a new
-feature (adapted from a patch by Donald Beaudry) to allow
-'%(<key>)<format>' % {...} to take values from a dictionary by name
-instead of from a tuple by position (see also the new function
-vars()).
-
-* The '%s' formatting operator is changed to accept any type and
-convert it to a string using str().
-
-* Dictionaries with more than 20,000 entries can now be created
-(thanks to Steve Kirsch).
-
-New Built-in Functions
-----------------------
-
-* vars() returns a dictionary containing the local variables; vars(m)
-returns a dictionary containing the variables of module m. Note:
-dir(x) is now equivalent to vars(x).keys().
-
-Changed Built-in Functions
---------------------------
-
-* open() has an optional third argument to specify the buffer size: 0
-for unbuffered, 1 for line buffered, >1 for explicit buffer size, <0
-for default.
-
-* open()'s second argument is now optional; it defaults to "r".
-
-* apply() now checks that its second argument is indeed a tuple.
-
-New Built-in Modules
---------------------
-
-Changed Built-in Modules
-------------------------
-
-The thread module no longer supports exit_prog().
-
-New Python Modules
-------------------
-
-* Module addpack contains a standard interface to modify sys.path to
-find optional packages (groups of related modules).
-
-* Module urllib contains a number of functions to access
-World-Wide-Web files specified by their URL.
-
-* Module httplib implements the client side of the HTTP protocol used
-by World-Wide-Web servers.
-
-* Module gopherlib implements the client side of the Gopher protocol.
-
-* Module mailbox (by Jack Jansen) contains a parser for UNIX and MMDF
-style mailbox files.
-
-* Module random contains various random distributions, e.g. gauss().
-
-* Module lockfile locks and unlocks open files using fcntl (inspired
-by a similar module by Andy Bensky).
-
-* Module ntpath (by Jaap Vermeulen) implements path operations for
-Windows/NT.
-
-* Module test_thread (in Lib/test) contains a small test set for the
-thread module.
-
-Changed Python Modules
-----------------------
-
-* The string module's expandvars() function is now documented and is
-implemented in Python (using regular expressions) instead of forking
-off a shell process.
-
-* Module rfc822 now supports accessing the header fields using the
-mapping/dictionary interface, e.g. h['subject'].
-
-* Module pdb now makes it possible to set a break on a function
-(syntax: break <expression>, where <expression> yields a function
-object).
-
-Changed Demos
--------------
-
-* The Demo/scripts/freeze.py script is working again (thanks to Jaap
-Vermeulen).
-
-New Demos
----------
-
-* Demo/threads/Generator.py is a proposed interface for restartable
-functions a la Tim Peters.
-
-* Demo/scripts/newslist.py, by Quentin Stafford-Fraser, generates a
-directory full of HTML pages which between them contain links to all
-the newsgroups available on your server.
-
-* Demo/dns contains a DNS (Domain Name Server) client.
-
-* Demo/lutz contains miscellaneous demos by Mark Lutz (e.g. psh.py, a
-nice enhanced Python shell!!!).
-
-* Demo/turing contains a Turing machine by Amrit Prem.
-
-Documentation
--------------
-
-* Documented new language features mentioned above (but not all new
-modules).
-
-* Added a chapter to the Tutorial describing recent additions to
-Python.
-
-* Clarified some sentences in the reference manual,
-e.g. break/continue, local/global scope, slice assignment.
-
-Source Structure
-----------------
-
-* Moved Include/tokenizer.h to Parser/tokenizer.h.
-
-* Added Python/getopt.c for systems that don't have it.
-
-Emacs mode
-----------
-
-* Indentation of continuated lines is done more intelligently;
-consequently the variable py-continuation-offset is gone.
-
-========================================
-==> Release 1.0.1 (15 February 1994) <==
-========================================
-
-* Many portability fixes should make it painless to build Python on
-several new platforms, e.g. NeXT, SEQUENT, WATCOM, DOS, and Windows.
-
-* Fixed test for <stdarg.h> -- this broke on some platforms.
-
-* Fixed test for shared library dynalic loading -- this broke on SunOS
-4.x using the GNU loader.
-
-* Changed order and number of SVR4 networking libraries (it is now
--lsocket -linet -lnsl, if these libraries exist).
-
-* Installing the build intermediate stages with "make libainstall" now
-also installs config.c.in, Setup and makesetup, which are used by the
-new Extensions mechanism.
-
-* Improved README file contains more hints and new troubleshooting
-section.
-
-* The built-in module strop now defines fast versions of three more
-functions of the standard string module: atoi(), atol() and atof().
-The strop versions of atoi() and atol() support an optional second
-argument to specify the base (default 10). NOTE: you don't have to
-explicitly import strop to use the faster versions -- the string
-module contains code to let versions from stop override the default
-versions.
-
-* There is now a working Lib/dospath.py for those who use Python under
-DOS (or Windows). Thanks, Jaap!
-
-* There is now a working Modules/dosmodule.c for DOS (or Windows)
-system calls.
-
-* Lib.os.py has been reorganized (making it ready for more operating
-systems).
-
-* Lib/ospath.py is now obsolete (use os.path instead).
-
-* Many fixes to the tutorial to make it match Python 1.0. Thanks,
-Tim!
-
-* Fixed Doc/Makefile, Doc/README and various scripts there.
-
-* Added missing description of fdopen to Doc/libposix.tex.
-
-* Made cleanup() global, for the benefit of embedded applications.
-
-* Added parsing of addresses and dates to Lib/rfc822.py.
-
-* Small fixes to Lib/aifc.py, Lib/sunau.py, Lib/tzparse.py to make
-them usable at all.
-
-* New module Lib/wave.py reads RIFF (*.wav) audio files.
-
-* Module Lib/filewin.py moved to Lib/stdwin/filewin.py where it
-belongs.
-
-* New options and comments for Modules/makesetup (used by new
-Extension mechanism).
-
-* Misc/HYPE contains text of announcement of 1.0.0 in comp.lang.misc
-and elsewhere.
-
-* Fixed coredump in filter(None, 'abcdefg').
-
-
-=======================================
-==> Release 1.0.0 (26 January 1994) <==
-=======================================
-
-As is traditional, so many things have changed that I can't pretend to
-be complete in these release notes, but I'll try anyway :-)
-
-Note that the very last section is labeled "remaining bugs".
-
-
-Source organization and build process
--------------------------------------
-
-* The sources have finally been split: instead of a single src
-subdirectory there are now separate directories Include, Parser,
-Grammar, Objects, Python and Modules. Other directories also start
-with a capital letter: Misc, Doc, Lib, Demo.
-
-* A few extensions (notably Amoeba and X support) have been moved to a
-separate subtree Extensions, which is no longer in the core
-distribution, but separately ftp'able as extensions.tar.Z. (The
-distribution contains a placeholder Ext-dummy with a description of
-the Extensions subtree as well as the most recent versions of the
-scripts used there.)
-
-* A few large specialized demos (SGI video and www) have been
-moved to a separate subdirectory Demo2, which is no longer in the core
-distribution, but separately ftp'able as demo2.tar.Z.
-
-* Parts of the standard library have been moved to subdirectories:
-there are now standard subdirectories stdwin, test, sgi and sun4.
-
-* The configuration process has radically changed: I now use GNU
-autoconf. This makes it much easier to build on new Unix flavors, as
-well as fully supporting VPATH (if your Make has it). The scripts
-Configure.py and Addmodule.sh are no longer needed. Many source files
-have been adapted in order to work with the symbols that the configure
-script generated by autoconf defines (or not); the resulting source is
-much more portable to different C compilers and operating systems,
-even non Unix systems (a Mac port was done in an afternoon). See the
-toplevel README file for a description of the new build process.
-
-* GNU readline (a slightly newer version) is now a subdirectory of the
-Python toplevel. It is still not automatically configured (being
-totally autoconf-unaware :-). One problem has been solved: typing
-Control-C to a readline prompt will now work. The distribution no
-longer contains a "super-level" directory (above the python toplevel
-directory), and dl, dl-dld and GNU dld are no longer part of the
-Python distribution (you can still ftp them from
-ftp.cwi.nl:/pub/dynload).
-
-* The DOS functions have been taken out of posixmodule.c and moved
-into a separate file dosmodule.c.
-
-* There's now a separate file version.c which contains nothing but
-the version number.
-
-* The actual main program is now contained in config.c (unless NO_MAIN
-is defined); pythonmain.c now contains a function realmain() which is
-called from config.c's main().
-
-* All files needed to use the built-in module md5 are now contained in
-the distribution. The module has been cleaned up considerably.
-
-
-Documentation
--------------
-
-* The library manual has been split into many more small latex files,
-so it is easier to edit Doc/lib.tex file to create a custom library
-manual, describing only those modules supported on your system. (This
-is not automated though.)
-
-* A fourth manual has been added, titled "Extending and Embedding the
-Python Interpreter" (Doc/ext.tex), which collects information about
-the interpreter which was previously spread over several files in the
-misc subdirectory.
-
-* The entire documentation is now also available on-line for those who
-have a WWW browser (e.g. NCSA Mosaic). Point your browser to the URL
-"http://www.cwi.nl/~guido/Python.html".
-
-
-Syntax
-------
-
-* Strings may now be enclosed in double quotes as well as in single
-quotes. There is no difference in interpretation. The repr() of
-string objects will use double quotes if the string contains a single
-quote and no double quotes. Thanks to Amrit Prem for these changes!
-
-* There is a new keyword 'exec'. This replaces the exec() built-in
-function. If a function contains an exec statement, local variable
-optimization is not performed for that particular function, thus
-making assignment to local variables in exec statements less
-confusing. (As a consequence, os.exec and python.exec have been
-renamed to execv.)
-
-* There is a new keyword 'lambda'. An expression of the form
-
- lambda <parameters> : <expression>
-
-yields an anonymous function. This is really only syntactic sugar;
-you can just as well define a local function using
-
- def some_temporary_name(<parameters>): return <expression>
-
-Lambda expressions are particularly useful in combination with map(),
-filter() and reduce(), described below. Thanks to Amrit Prem for
-submitting this code (as well as map(), filter(), reduce() and
-xrange())!
-
-
-Built-in functions
-------------------
-
-* The built-in module containing the built-in functions is called
-__builtin__ instead of builtin.
-
-* New built-in functions map(), filter() and reduce() perform standard
-functional programming operations (though not lazily):
-
-- map(f, seq) returns a new sequence whose items are the items from
-seq with f() applied to them.
-
-- filter(f, seq) returns a subsequence of seq consisting of those
-items for which f() is true.
-
-- reduce(f, seq, initial) returns a value computed as follows:
- acc = initial
- for item in seq: acc = f(acc, item)
- return acc
-
-* New function xrange() creates a "range object". Its arguments are
-the same as those of range(), and when used in a for loop a range
-objects also behaves identical. The advantage of xrange() over
-range() is that its representation (if the range contains many
-elements) is much more compact than that of range(). The disadvantage
-is that the result cannot be used to initialize a list object or for
-the "Python idiom" [RED, GREEN, BLUE] = range(3). On some modern
-architectures, benchmarks have shown that "for i in range(...): ..."
-actually executes *faster* than "for i in xrange(...): ...", but on
-memory starved machines like PCs running DOS range(100000) may be just
-too big to be represented at all...
-
-* Built-in function exec() has been replaced by the exec statement --
-see above.
-
-
-The interpreter
----------------
-
-* Syntax errors are now not printed to stderr by the parser, but
-rather the offending line and other relevant information are packed up
-in the SyntaxError exception argument. When the main loop catches a
-SyntaxError exception it will print the error in the same format as
-previously, but at the proper position in the stack traceback.
-
-* You can now set a maximum to the number of traceback entries
-printed by assigning to sys.tracebacklimit. The default is 1000.
-
-* The version number in .pyc files has changed yet again.
-
-* It is now possible to have a .pyc file without a corresponding .py
-file. (Warning: this may break existing installations if you have an
-old .pyc file lingering around somewhere on your module search path
-without a corresponding .py file, when there is a .py file for a
-module of the same name further down the path -- the new interpreter
-will find the first .pyc file and complain about it, while the old
-interpreter would ignore it and use the .py file further down.)
-
-* The list sys.builtin_module_names is now sorted and also contains
-the names of a few hardwired built-in modules (sys, __main__ and
-__builtin__).
-
-* A module can now find its own name by accessing the global variable
-__name__. Assigning to this variable essentially renames the module
-(it should also be stored under a different key in sys.modules).
-A neat hack follows from this: a module that wants to execute a main
-program when called as a script no longer needs to compare
-sys.argv[0]; it can simply do "if __name__ == '__main__': main()".
-
-* When an object is printed by the print statement, its implementation
-of str() is used. This means that classes can define __str__(self) to
-direct how their instances are printed. This is different from
-__repr__(self), which should define an unambigous string
-representation of the instance. (If __str__() is not defined, it
-defaults to __repr__().)
-
-* Functions and code objects can now be compared meaningfully.
-
-* On systems supporting SunOS or SVR4 style shared libraries, dynamic
-loading of modules using shared libraries is automatically configured.
-Thanks to Bill Jansen and Denis Severson for contributing this change!
-
-
-Built-in objects
-----------------
-
-* File objects have acquired a new method writelines() which is the
-reverse of readlines(). (It does not actually write lines, just a
-list of strings, but the symmetry makes the choice of name OK.)
-
-
-Built-in modules
-----------------
-
-* Socket objects no longer support the avail() method. Use the select
-module instead, or use this function to replace it:
-
- def avail(f):
- import select
- return f in select.select([f], [], [], 0)[0]
-
-* Initialization of stdwin is done differently. It actually modifies
-sys.argv (taking out the options the X version of stdwin recognizes)
-the first time it is imported.
-
-* A new built-in module parser provides a rudimentary interface to the
-python parser. Corresponding standard library modules token and symbol
-defines the numeric values of tokens and non-terminal symbols.
-
-* The posix module has aquired new functions setuid(), setgid(),
-execve(), and exec() has been renamed to execv().
-
-* The array module is extended with 8-byte object swaps, the 'i'
-format character, and a reverse() method. The read() and write()
-methods are renamed to fromfile() and tofile().
-
-* The rotor module has freed of portability bugs. This introduces a
-backward compatibility problem: strings encoded with the old rotor
-module can't be decoded by the new version.
-
-* For select.select(), a timeout (4th) argument of None means the same
-as leaving the timeout argument out.
-
-* Module strop (and hence standard library module string) has aquired
-a new function: rindex(). Thanks to Amrit Prem!
-
-* Module regex defines a new function symcomp() which uses an extended
-regular expression syntax: parenthesized subexpressions may be labeled
-using the form "\(<labelname>...\)", and the group() method can return
-sub-expressions by name. Thanks to Tracy Tims for these changes!
-
-* Multiple threads are now supported on Solaris 2. Thanks to Sjoerd
-Mullender!
-
-
-Standard library modules
-------------------------
-
-* The library is now split in several subdirectories: all stuff using
-stdwin is in Lib/stdwin, all SGI specific (or SGI Indigo or GL) stuff
-is in Lib/sgi, all Sun Sparc specific stuff is in Lib/sun4, and all
-test modules are in Lib/test. The default module search path will
-include all relevant subdirectories by default.
-
-* Module os now knows about trying to import dos. It defines
-functions execl(), execle(), execlp() and execvp().
-
-* New module dospath (should be attacked by a DOS hacker though).
-
-* All modules defining classes now define __init__() constructors
-instead of init() methods. THIS IS AN INCOMPATIBLE CHANGE!
-
-* Some minor changes and bugfixes module ftplib (mostly Steve
-Majewski's suggestions); the debug() method is renamed to
-set_debuglevel().
-
-* Some new test modules (not run automatically by testall though):
-test_audioop, test_md5, test_rgbimg, test_select.
-
-* Module string now defines rindex() and rfind() in analogy of index()
-and find(). It also defines atof() and atol() (and corresponding
-exceptions) in analogy to atoi().
-
-* Added help() functions to modules profile and pdb.
-
-* The wdb debugger (now in Lib/stdwin) now shows class or instance
-variables on a double click. Thanks to Sjoerd Mullender!
-
-* The (undocumented) module lambda has gone -- you couldn't import it
-any more, and it was basically more a demo than a library module...
-
-
-Multimedia extensions
----------------------
-
-* The optional built-in modules audioop and imageop are now standard
-parts of the interpreter. Thanks to Sjoerd Mullender and Jack Jansen
-for contributing this code!
-
-* There's a new operation in audioop: minmax().
-
-* There's a new built-in module called rgbimg which supports portable
-efficient reading of SGI RCG image files. Thanks also to Paul
-Haeberli for the original code! (Who will contribute a GIF reader?)
-
-* The module aifc is gone -- you should now always use aifc, which has
-received a facelift.
-
-* There's a new module sunau., for reading Sun (and NeXT) audio files.
-
-* There's a new module audiodev which provides a uniform interface to
-(SGI Indigo and Sun Sparc) audio hardware.
-
-* There's a new module sndhdr which recognizes various sound files by
-looking in their header and checking for various magic words.
-
-
-Optimizations
--------------
-
-* Most optimizations below can be configured by compile-time flags.
-Thanks to Sjoerd Mullender for submitting these optimizations!
-
-* Small integers (default -1..99) are shared -- i.e. if two different
-functions compute the same value it is possible (but not
-guaranteed!!!) that they return the same *object*. Python programs
-can detect this but should *never* rely on it.
-
-* Empty tuples (which all compare equal) are shared in the same
-manner.
-
-* Tuples of size up to 20 (default) are put in separate free lists
-when deallocated.
-
-* There is a compile-time option to cache a string's hash function,
-but this appeared to have a negligeable effect, and as it costs 4
-bytes per string it is disabled by default.
-
-
-Embedding Python
-----------------
-
-* The initialization interface has been simplified somewhat. You now
-only call "initall()" to initialize the interpreter.
-
-* The previously announced renaming of externally visible identifiers
-has not been carried out. It will happen in a later release. Sorry.
-
-
-Miscellaneous bugs that have been fixed
----------------------------------------
-
-* All known portability bugs.
-
-* Version 0.9.9 dumped core in <listobject>.sort() which has been
-fixed. Thanks to Jaap Vermeulen for fixing this and posting the fix
-on the mailing list while I was away!
-
-* Core dump on a format string ending in '%', e.g. in the expression
-'%' % None.
-
-* The array module yielded a bogus result for concatenation (a+b would
-yield a+a).
-
-* Some serious memory leaks in strop.split() and strop.splitfields().
-
-* Several problems with the nis module.
-
-* Subtle problem when copying a class method from another class
-through assignment (the method could not be called).
-
-
-Remaining bugs
---------------
-
-* One problem with 64-bit machines remains -- since .pyc files are
-portable and use only 4 bytes to represent an integer object, 64-bit
-integer literals are silently truncated when written into a .pyc file.
-Work-around: use eval('123456789101112').
-
-* The freeze script doesn't work any more. A new and more portable
-one can probably be cooked up using tricks from Extensions/mkext.py.
-
-* The dos support hasn't been tested yet. (Really Soon Now we should
-have a PC with a working C compiler!)
-
-
--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>
URL: <http://www.cwi.nl/cwi/people/Guido.van.Rossum.html>