@@ -343,7 +343,7 @@ Drake.
343343determine whether an interactively entered command is complete or not,
344344distinguishing incomplete from invalid input.
345345
346- - There is now a library module xdr .py which can read and write the
346+ - There is now a library module xdrlib .py which can read and write the
347347XDR data format as used by Sun RPC, for example. It uses the struct
348348module.
349349
@@ -742,39 +742,169 @@ The following changes have been made to the source base after the
742742release of 1.5a3. These need to be merged into their respective
743743categories for the next release.
744744
745- - regrtest.py is slightly more verbose, printing the name of each test
746- as it runs them.
745+ - faqwiz.py: version 0.8; Recognize https:// as URL; <html>...</html>
746+ feature; better install instructions; removed faqmain.py (which was an
747+ older version).
748+
749+ - nntplib.py: Fixed some bugs reported by Lars Wirzenius (to Debian)
750+ about the treatment of lines starting with '.'. Added a minimal test
751+ function.
752+
753+ - struct module: ignore most whitespace in format strings.
754+
755+ - urllib.py: close the socket and temp file in URLopener.retrieve() so
756+ that multiple retrievals using the same connection work.
757+
758+ - Three new C API functions:
759+
760+ - int PyErr_GivenExceptionMatches(obj1, obj2)
761+
762+ Returns 1 if obj1 and obj2 are the same object, or if obj1 is an
763+ instance of type obj2, or of a class derived from obj2
764+
765+ - int PyErr_ExceptionMatches(obj)
766+
767+ Higher level wrapper around PyErr_GivenExceptionMatches() which uses
768+ PyErr_Occurred() as obj1. This will be the more commonly called
769+ function.
770+
771+ - void PyErr_NormalizeException(typeptr, valptr, tbptr)
772+
773+ Normalizes exceptions, and places the normalized values in the
774+ arguments. If type is not a class, this does nothing. If type is a
775+ class, then it makes sure that value is an instance of the class by:
776+
777+ 1. if instance is of the type, or a class derived from type, it does
778+ nothing.
779+
780+ 2. otherwise it instantiates the class, using the value as an
781+ argument. If value is None, it uses an empty arg tuple, and if
782+ the value is a tuple, it uses just that.
783+
784+ - Demo/metaclasses: new demo subdir explains metaclasses (read
785+ index.html in a browser).
786+
787+ - core interpreter: remove the distinction between tuple and list
788+ unpacking; allow an arbitrary sequence on the right hand side of any
789+ unpack instruction. (UNPACK_LIST and UNPACK_TUPLE now do the same
790+ thing, which should really be called UNPACK_SEQUENCE.)
791+
792+ - classes: Allow assignments to an instance's __dict__ or __class__,
793+ so you can change ivars (including shared ivars -- shock horror) and
794+ change classes dynamically. Also make the check on read-only
795+ attributes of classes less draconic -- only the specials names
796+ __dict__, __bases__, __name__ and __{get,set,del}attr__ can't be
797+ assigned.
798+
799+ - Two new built-in functions: issubclass() and isinstance(). Both
800+ take classes as their second arguments. The former takes a class as
801+ the first argument and returns true iff first is second, or is a
802+ subclass of second. The latter takes any object as the first argument
803+ and returns true iff first is an instance of the second, or any
804+ subclass of second.
805+
806+ - configure: Added configuration tests for presence of alarm(),
807+ pause(), and getpwent().
808+
809+ - Doc/Makefile: changed latex2html targets.
810+
811+ - classes: Reverse the search order for the Don Beaudry hook so that
812+ the first class with an applicable hook wins. Makes more sense.
813+
814+ - Changed the checks made in Py_Initialize() and Py_Finalize(). It is
815+ now legal to call these more than once. The first call to
816+ Py_Initialize() initializes, the first call to Py_Finalize()
817+ finalizes. There's also a new API, Py_IsInitalized() which checks
818+ whether we are already initialized (in case you want to leave things
819+ as they were).
820+
821+ - Completely disable the declarations for malloc(), realloc() and
822+ free(). Any 90's C compiler has these in header files, and the tests
823+ to decide whether to suppress the declarations kept failing on some
824+ platforms.
825+
826+ - *Before* (instead of after) signalmodule.o is added, remove both
827+ intrcheck.o and sigcheck.o. This should get rid of warnings in ar or
828+ ld on various systems.
829+
830+ - Added reop to PC/config.c
831+
832+ - configure: Decided to use -Aa -D_HPUX_SOURCE on HP-UX platforms.
833+ Removed outdated HP-UX comments from README. Added Cray T3E comments.
834+
835+ - Various renames of statically defined functions that had name
836+ conflicts on some systems, e.g. strndup (GNU libc), join (Cray),
837+ roundup (sys/types.h).
838+
839+ - urllib.py: Interpret three slashes in file: URL as local file (for
840+ Netscape on Windows/Mac).
841+
842+ - copy.py: Make sure the objects returned by __getinitargs__() are
843+ kept alive (in the memo) to avoid a certain kind of nasty crash. (Not
844+ easily reproducable because it requires a later call to
845+ __getinitargs__() to return a tuple that happens to be allocated at
846+ the same address.)
847+
848+ - Added definition of AR to toplevel Makefile. Renamed @buildno temp
849+ file to buildno1.
850+
851+ - Moved Include/assert.h to Parser/assert.h, which seems to be the
852+ only place where it's needed.
853+
854+ - Alas, the thread support for _tkinter didn't work. Withdrew it.
855+
856+ - Tweaked the dictionary lookup code again for some more speed
857+ (Vladimir Marangozov).
858+
859+ - NT build: Changed the way python15.lib is included in the other
860+ projects. Per Mark Hammond's suggestion, add it to the extra libs in
861+ Settings instead of to the project's source files.
862+
863+ - regrtest.py: Change default verbosity so that there are only three
864+ levels left: -q, default and -v. In default mode, the name of each
865+ test is now printed. -v is the same as the old -vv. -q is more quiet
866+ than the old default mode.
867+
868+ - Removed the old FAQ from the distribution. You now have to get it
869+ from the web!
870+
871+ - Removed the PC/make_nt.in file from the distribution; it is no
872+ longer needed.
873+
874+ - Changed the build sequence so that shared modules are built last.
875+ This fixes things for AIX and doesn't hurt elsewhere.
876+
877+ - Improved test for GNU MP v1 in mpzmodule.c
747878
748879- fileobject.c: ftell() on Linux discards all buffered data; changed
749- read() code to use lseek() instead
880+ read() code to use lseek() instead to get the same effect
750881
751882- configure.in, configure, importdl.c: NeXT sharedlib fixes
752883
753884- tupleobject.c: PyTuple_SetItem asserts refcnt==1
754885
755- - resource.c: Change how and when to declare getpagesize() and
756- getrlimit()
757-
758- - mpzmodule.c: CPP hack to support GMP 1.x for real
886+ - resource.c: Different strategy regarding whether to declare
887+ getrusage() and getpagesize() -- #ifdef doesn't work, Linux has
888+ conflicting decls in its headers. Choice: only declare the return
889+ type, not the argument prototype, and not on Linux.
759890
760891- importdl.c, configure*: set sharedlib extensions properly for NeXT
761892
762893- configure*, Makefile.in, Modules/Makefile.pre.in: AIX shared libraries
763894fixed; moved addition of PURIFY to LINKCC to configure
764895
765- - reopmodule.c, regexmodule.c, regexpr.c, zlibmodule.c: casts to shut
766- up Mac compiler
896+ - reopmodule.c, regexmodule.c, regexpr.c, zlibmodule.c: needed casts
897+ added to shup up various compilers.
767898
768899- _tkinter.c: removed buggy mac #ifndef
769900
770901- Doc: various Mac documentation changes, added docs for 'ic' module
771902
772903- PC/make_nt.in: deleted
773904
774- - test_time.py, test_strftime.py: tweaks to catch %Z
905+ - test_time.py, test_strftime.py: tweaks to catch %Z (which may return
906+ "")
775907
776908- test_rotor.py: print b -> print `b`
777909
778910- Tkinter.py: (tagOrId) -> (tagOrId,)
779-
780- - faqwiz.py: Recognize https:// as URL
0 commit comments