cpython/Modules
Jeremy Hylton a0fb177be8 Progress on SF bug #466175 and general cleanup.
Add a fast_container member to Picklerobject.  If fast is true, then
fast_container counts the depth of nested container calls.  If the
depth exceeds FAST_LIMIT (2000), the fast flag is ignored and the
normal checks occur.  This approach is much like the approach for
prevent stack overflow for comparison and reprs of recursive objects
(e.g. [[...]]).

    - Fast container used for save_list(), save_dict(), and
      save_inst().

      XXX Not clear which other save_xxx() functions should use it.

Make Picklerobject into new-style types, using PyObject_GenericGetAttr()
and PyObject_GenericSetAttr().

    - Use PyMemberDef for binary and fast members

    - Use PyGetSetDef for persistent_id, inst_persistent_id, memo, and
      PicklingError.

      XXX Not all of these seem like they need to use getset, but it's
      not clear why the old getattr() and setattr() had such odd
      semantics.  One change is that the getvalue() attribute will
      exist on all Picklers, not just list-based picklers; I think
      this is a more rationale interface.

There is a long laundry list of other changes:

    - Remove unused #defines for PyList_SET_ITEM() etc.

    - Make some of the indentation consistent

    - Replace uses of cPickle_PyMapping_HasKey() where the first
      argument is self->memo with calls to PyDict_GetItem(), because
      self->memo must be a dictionary.

    - Don't bother to check if cPickle_PyMapping_HasKey() returns < 0,
      because it can only return 0 or 1.

    - Replace uses of PyObject_CallObject() with PyObject_Call(), when
      we can guarantee that the argument tuple is really a tuple.

Performance impacts of these changes:

    - 5% speedup for normal pickling

    - No change to fast-mode pickling.

XXX Really need tests for all the features in cPickle that aren't in
pickle.
2001-10-12 04:11:06 +00:00
..
.cvsignore
_codecsmodule.c Patch #435971: UTF-7 codec by Brian Quinlan. 2001-09-20 10:35:46 +00:00
_curses_panel.c init_curses_panel(): Be more consistent with indentation and blank lines. 2001-01-27 18:58:04 +00:00
_cursesmodule.c [Bug #457654] bkgd() used a hard-coded A_NORMAL attribute, when it should 2001-09-04 19:34:32 +00:00
_localemodule.c PyLocale_setlocale(): silence compiler warning about free() of a const 2001-09-20 19:18:30 +00:00
_sre.c fixed #449964: sre.sub raises an exception if the template contains a 2001-09-18 20:55:24 +00:00
_testcapimodule.c SF [#466125] PyLong_AsLongLong works for any integer. 2001-09-30 05:09:37 +00:00
_tkinter.c Patch #445762: Support --disable-unicode 2001-08-17 18:39:25 +00:00
_weakref.c Adjust the _weakref module to use the public API for the weak reference 2001-10-05 22:00:24 +00:00
addrinfo.h Fix portability problems with glibc 2.0, as reported in #449157. 2001-08-15 17:14:33 +00:00
almodule.c
ar_beos Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and 2001-02-16 03:24:50 +00:00
arraymodule.c Fix buffer_info() docstring to match reality. See SF bug #444842. 2001-07-27 16:05:32 +00:00
audioop.c
binascii.c Add various typecasts (back and forth from char * to unsigned char *) 2001-10-04 14:54:53 +00:00
bsddbmodule.c Don't raise MemoryError in keys() when the database is empty. 2001-03-22 00:19:22 +00:00
ccpython.cc
cdmodule.c
cgen.py
cgensupport.c
cgensupport.h
clmodule.c
cmathmodule.c Revert parts of patch #453627, documenting the resulting test failures 2001-09-06 08:16:17 +00:00
config.c.in gcmodule is now enabled here 2001-08-30 00:12:32 +00:00
cPickle.c Progress on SF bug #466175 and general cleanup. 2001-10-12 04:11:06 +00:00
cryptmodule.c
cStringIO.c StringIO patch #462596: let's [c]StringIO accept read buffers on 2001-09-24 17:34:52 +00:00
cstubs
dbmmodule.c SF Patch #103185, by jlt63: Some more standard modules cleanup for Cygwin 2001-01-22 15:29:14 +00:00
dlmodule.c Patch #404680: disables the nis module and enables the dl module when 2001-02-27 20:54:23 +00:00
errnomodule.c
fcntlmodule.c fcntl.ioctl(): Update error message; necessity noted by Michael Hudson. 2001-05-14 21:02:36 +00:00
flmodule.c
fmmodule.c
fpectlmodule.c Define sunmath prototypes if sunmath.h was not included. 2001-03-07 10:22:20 +00:00
fpetestmodule.c
gcmodule.c SF bug [#467145] Python 2.2a4 build problem on HPUX 11.0. 2001-10-11 18:31:31 +00:00
gdbmmodule.c SF patch 404928: Support for next Cygwin gcc (2.95.2-8) 2001-02-28 16:44:18 +00:00
getaddrinfo.c Fix compiler warnings. This closes some of the #458880 problem. 2001-09-07 16:10:00 +00:00
getbuildinfo.c Patch #411138: Rename config.h to pyconfig.h. Closes bug #231774. 2001-07-26 13:41:06 +00:00
getnameinfo.c Fix portability problems with glibc 2.0, as reported in #449157. 2001-08-15 17:14:33 +00:00
getpath.c Be more rigorous about making pathnames absolute, to address SF bug 2001-09-28 20:00:29 +00:00
glmodule.c
grpmodule.c Make sure we close the group and password databases when we are done with 2001-03-11 03:03:07 +00:00
imageop.c
imgfile.c
ld_so_aix
ld_so_beos Remove a hard coded Python version, and a now incorrect relative path. Closes 2001-02-16 03:27:35 +00:00
license.terms
linuxaudiodev.c Applying SF patch #412553 by Christopher Lee: fix linuxaudiodev 2001-04-02 17:59:02 +00:00
main.c PEP 238 documented -Qwarn as warning only for classic int or long 2001-09-04 03:51:09 +00:00
makesetup Separate CFLAGS and CPPFLAGS. CFLAGS should not contain preprocessor 2001-06-02 06:16:02 +00:00
makexp_aix
mathmodule.c Revert parts of patch #453627, documenting the resulting test failures 2001-09-06 08:16:17 +00:00
md5.h
md5c.c Patch #463421: speed up md5 module with real memcpy/set. 2001-09-24 17:14:40 +00:00
md5module.c
mmapmodule.c Fix SF #441664: Python crash on del of a slice of a mmap 2001-07-16 15:47:36 +00:00
mpzmodule.c Python.h: Don't attempt to redefine NDEBUG if it's already defined. 2001-07-15 18:38:47 +00:00
newmodule.c Back out trying to use the C values for CO_xxx. 2001-08-24 06:29:12 +00:00
nismodule.c Move declaration of 'clnt_create()' NIS function to pyport.h, as it's 2001-01-21 23:34:12 +00:00
operator.c Add wrappers around the rich-comparison operations. 2001-08-09 20:14:34 +00:00
parsermodule.c Use the abstract object interfaces when digging around in module objects 2001-08-15 16:44:56 +00:00
pcre-int.h
pcre.h
pcremodule.c Make more warnings go away on the SGI compiler. 2001-07-19 21:29:49 +00:00
posixmodule.c Add chroot call. Implements feature #459267. 2001-10-04 22:44:26 +00:00
puremodule.c
pwdmodule.c Make sure we close the group and password databases when we are done with 2001-03-11 03:03:07 +00:00
pyexpat.c Reactivate participation of expat parsers in GC. Fixes bug #462710. 2001-09-23 10:20:10 +00:00
pypcre.c
python.c
readline.c Patch #462122: add readline startup and pre_event hooks. 2001-09-30 21:09:59 +00:00
regexmodule.c initregex(): this function is declared void, so the recent change to 2001-07-09 18:15:38 +00:00
regexpr.c Python.h: Don't attempt to redefine NDEBUG if it's already defined. 2001-07-15 18:38:47 +00:00
regexpr.h
resource.c [Patch #462255, from Jason Tishler] Re-enables building the resouce 2001-09-17 16:19:16 +00:00
rgbimgmodule.c
rotormodule.c
selectmodule.c Stop adding 3 to FD_SETSIZE -- it makes no sense. If it turns out it 2001-08-16 21:59:46 +00:00
Setup.config.in gcmodule is now always compiled 2001-08-30 00:13:38 +00:00
Setup.dist Merge changes from r22a2-branch back into trunk. Also, change patch 2001-08-22 19:24:42 +00:00
sgimodule.c
shamodule.c Cleanup logic a little. Check args first, then try to create the 2001-01-29 22:46:35 +00:00
signalmodule.c SF patch [#466877] SIGBREAK is missing from signal module. 2001-10-01 17:58:40 +00:00
socketmodule.c Use PySocket_Err() instead of PyErr_SetFromErrno(). 2001-10-11 17:27:58 +00:00
sre.h merged with pythonware's SRE 2.1.1 codebase 2001-07-02 16:42:49 +00:00
sre_constants.h added martin's BIGCHARSET patch to SRE 2.1.1. martin reports 2x 2001-07-02 16:58:38 +00:00
stropmodule.c Add warnings to the strop module, for to those functions that really 2001-05-15 02:14:44 +00:00
structmodule.c The 'p' (Pascal string) pack code acts unreasonably when the string size 2001-09-15 02:35:15 +00:00
sunaudiodev.c
svmodule.c
symtablemodule.c Export three optimization (fast locals) flags 2001-04-16 18:42:13 +00:00
syslogmodule.c
tclNotify.c
termios.c Forward-port revision 2.24.2.4 from the release21-maint branch: 2001-06-15 12:05:44 +00:00
testcapi_long.h Fix error in comment, and in test_long_api and test_longlong_api remove 2001-06-16 08:10:13 +00:00
threadmodule.c Fix typo in docstring 2001-10-05 12:24:15 +00:00
timemodule.c SF patch #459385 (Norman Vine): time.timezone fix for Cygwin. 2001-09-25 13:59:01 +00:00
timing.h
timingmodule.c
tkappinit.c
unicodedata.c Kill a warning on the SGI compiler. 2001-07-19 21:11:13 +00:00
unicodedata_db.h compress unicode decomposition tables (this saves another 55k) 2001-01-21 22:41:08 +00:00
unicodename_db.h compress unicode decomposition tables (this saves another 55k) 2001-01-21 22:41:08 +00:00
xreadlinesmodule.c Remove bogus PyGC_HEAD_SIZE. 2001-08-29 23:50:42 +00:00
xxmodule.c Add additional fields to Xxo_Type declaration. Fixes bug #469250. 2001-10-09 10:46:58 +00:00
xxsubtype.c Add optional docstrings to getset descriptors. Fortunately, there's 2001-09-20 21:45:26 +00:00
yuv.h
yuvconvert.c
zlibmodule.c Update URL. Fixes bug #468118. 2001-10-09 10:54:31 +00:00