cpython/Lib
Alexandre Vassalotti b6a2f2a0d1 Make framing optional in pickle protocol 4.
This will allow us to control in the future whether to use framing or not.
For example, we may want to turn it off for tiny pickle where it doesn't
help.

The change also improves performance slightly:

### fastpickle ###
Min: 0.608517 -> 0.557358: 1.09x faster
Avg: 0.798892 -> 0.694738: 1.15x faster
Significant (t=3.45)
Stddev: 0.17145 -> 0.12704: 1.3496x smaller
Timeline: http://goo.gl/3xQE1J

### pickle_dict ###
Min: 0.669920 -> 0.615271: 1.09x faster
Avg: 0.733633 -> 0.645058: 1.14x faster
Significant (t=5.05)
Stddev: 0.12041 -> 0.02961: 4.0662x smaller
Timeline: http://goo.gl/LpLSXI

### pickle_list ###
Min: 0.397583 -> 0.368112: 1.08x faster
Avg: 0.412784 -> 0.397223: 1.04x faster
Significant (t=2.78)
Stddev: 0.01518 -> 0.03653: 2.4068x larger
Timeline: http://goo.gl/v39E59

### unpickle_list ###
Min: 0.692935 -> 0.594870: 1.16x faster
Avg: 0.730012 -> 0.628395: 1.16x faster
Significant (t=17.76)
Stddev: 0.02720 -> 0.02995: 1.1012x larger
Timeline: http://goo.gl/2P9AEt

The following not significant results are hidden, use -v to show them:
fastunpickle.
2013-11-23 20:30:03 -08:00
..
asyncio Keep asyncio working with Python 3.3 too. 2013-11-23 15:36:43 -08:00
collections whitespace cleanup 2013-10-13 02:27:22 +02:00
concurrent Fix import of SimpleQueue. 2013-10-16 17:06:22 +01:00
ctypes Issue #19734: ctypes resource management fixes 2013-11-24 12:53:50 +10:00
curses Fix docstring in curses (#16782) 2012-12-29 23:09:32 +02:00
dbm Close #19282: Native context management in dbm 2013-11-17 15:59:51 +10:00
distutils Issue 19555 for distutils, plus a little clean up (pyflakes, line lengths). 2013-11-22 15:31:35 -05:00
email Merge #19485: clarify get_param example. 2013-11-03 12:23:51 -05:00
encodings Fixed incorrectly applying a patch for issue19668. 2013-11-23 19:50:47 +02:00
ensurepip Update bundled pip to 1.5rc1 2013-11-22 23:32:24 +10:00
html #13633: Added a new convert_charrefs keyword arg to HTMLParser that, when True, automatically converts all character references. 2013-11-23 19:52:05 +02:00
http Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
idlelib Bump to 3.3.3 final. 2013-11-17 07:58:22 +01:00
importlib User the repr for a module name in more places 2013-11-22 14:52:36 -05:00
json #18958: Improve error message for json.load(s) while passing a string that starts with a UTF-8 BOM. 2013-10-21 02:10:55 +03:00
lib2to3 #10712: 2to3 has a new "asserts" fixer that replaces deprecated names of unittest methods. 2013-11-23 21:14:42 +02:00
logging Closes #19523: Merged fix from 3.3. 2013-11-15 20:42:47 +00:00
msilib Issue #17047: remove doubled words found in 2.7 to 3.4 Lib/*, 2013-03-11 17:57:08 -04:00
multiprocessing Implement PEP 451 (ModuleSpec). 2013-11-22 09:05:39 -07:00
plat-aix4
plat-darwin
plat-freebsd4
plat-freebsd5
plat-freebsd6
plat-freebsd7
plat-freebsd8
plat-generic - Issue #17086: Backport the patches from the 3.3 branch to cross-build 2013-01-31 23:52:03 +01:00
plat-linux
plat-netbsd1
plat-next3
plat-sunos5
plat-unixware7
pydoc_data Update pydoc topics. 2013-10-27 09:08:16 +01:00
site-packages
sqlite3 Issue #19601: Use specific asserts in sqlite3 tests. 2013-11-17 00:40:01 +02:00
test Make framing optional in pickle protocol 4. 2013-11-23 20:30:03 -08:00
tkinter Issue #19733: Temporary disable test_image on MacOSX. 2013-11-23 15:22:10 +02:00
turtledemo Issue # 17177: Stop using imp in turtledemo 2013-06-15 17:33:27 -04:00
unittest Merge 2013-11-23 13:30:03 +00:00
urllib Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
venv Issue #19734: venv still needs isolated mode 2013-11-24 11:53:03 +10:00
wsgiref Closes #19258: close WSGI server after handling request in demo code. 2013-10-14 16:52:13 +02:00
xml Merge from 3.3 2013-11-12 10:26:15 -05:00
xmlrpc Issue #18571: Implementation of the PEP 446: file descriptors and file handles 2013-08-28 00:53:59 +02:00
__future__.py
__phello__.foo.py
_bootlocale.py Fix wrong exception in _bootlocale (apparently this error condition is never triggered) 2013-10-12 15:00:44 +02:00
_collections_abc.py Issue #19218: set __name__ of _collections_abc to collections.abc in order to fix tests and keep beautiful qualified names. 2013-10-13 02:21:33 +02:00
_compat_pickle.py
_dummy_thread.py Issue #18808: Thread.join() now waits for the underlying thread state to be destroyed before returning. 2013-09-07 23:38:37 +02:00
_markupbase.py
_osx_support.py Issue #19400: Prevent extension module build failures with Xcode 5 on OS X 2013-10-25 16:03:35 -07:00
_pyio.py Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
_sitebuiltins.py Normalize whitespace 2013-08-06 22:57:31 +02:00
_strptime.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
_threading_local.py
_weakrefset.py
abc.py Fix #16832 - expose cache validity checking support in ABCMeta 2013-05-25 18:41:50 +02:00
aifc.py Issue #16685: Added support for writing any bytes-like objects in the aifc, 2013-11-16 14:01:31 +02:00
antigravity.py
argparse.py Issue #18920: argparse's default version action (for -v, --version) should 2013-09-06 06:49:15 -07:00
ast.py create NameConstant AST class for None, True, and False literals (closes #16619) 2012-12-06 17:41:04 -05:00
asynchat.py Issue #18743: Fix references to non-existant "StringIO" module 2013-08-29 11:39:48 +03:00
asyncore.py Do not raise exception on close() on account of socket attribute still being None: 2013-04-09 17:21:25 +02:00
base64.py Issue #17618: Add Base85 and Ascii85 encoding/decoding to the base64 module. 2013-11-17 23:52:25 +01:00
bdb.py Better behavior when stepping over yield[from]. Fixes issue 16596. By Xavier de Gaye. 2013-11-21 11:30:06 -08:00
binhex.py
bisect.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
bz2.py Issue #19223: Add support for the 'x' mode to the bz2 module. 2013-10-19 00:11:06 +02:00
calendar.py #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
cgi.py Closes #17335: remove no-op assignment. 2013-10-13 22:16:48 +02:00
cgitb.py merge #12890: don't emit <p> tags in text mode when logdir specified. 2012-10-27 14:55:25 -04:00
chunk.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
cmd.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
code.py Closes #17730: in code.interact(), when banner="", do not print anything. 2013-10-13 21:49:06 +02:00
codecs.py Issue #19619: Blacklist non-text codecs in method API 2013-11-22 22:39:36 +10:00
codeop.py
colorsys.py Issue #14323: Expanded the number of digits in the coefficients for the 2013-08-06 11:51:23 +03:00
compileall.py Issue #17177: stop using imp for compileall. 2013-06-14 23:04:02 -04:00
configparser.py Merged fix for issue #18260 from 3.3 2013-06-23 19:12:12 +02:00
contextlib.py Close #19403: make contextlib.redirect_stdout reentrant 2013-11-03 17:00:51 +10:00
copy.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
copyreg.py Issue #17810: Implement PEP 3154, pickle protocol 4. 2013-11-23 18:59:12 +01:00
cProfile.py Fix #17197: profile/cProfile modules refactored so that code of run() and runctx() utility functions is not duplicated in both modules. 2013-02-25 11:36:40 +01:00
crypt.py Issue #18405: Improve the entropy of crypt.mksalt(). 2013-08-14 01:39:14 +02:00
csv.py #19449: Handle non-string keys when generating 'fieldnames' error. 2013-11-19 13:16:20 -05:00
datetime.py improve comment 2013-08-29 17:29:30 -04:00
decimal.py merge from 3.3 2013-09-07 23:20:06 -07:00
difflib.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
dis.py Close #17916: dis.Bytecode based replacement for distb 2013-11-23 00:57:00 +10:00
doctest.py Fix tests for #11798 2013-08-29 01:24:39 +03:00
dummy_threading.py
enum.py removed Enum.__eq__ as it added nothing 2013-11-13 14:25:45 -08:00
filecmp.py Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache. 2013-06-14 15:19:11 -07:00
fileinput.py Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
fnmatch.py Set cache sizes to a power-of-two 2013-02-17 01:33:37 -08:00
formatter.py Issue #18716: Deprecate the formatter module 2013-10-04 11:38:59 -04:00
fractions.py Issue #16469: Fraction(float('nan')) and Fraction(float('inf')) now raise ValueError and OverflowError (resp.), not TypeError. 2012-11-15 20:58:40 +00:00
ftplib.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
functools.py Fix functools.partialmethod docs and __all__ 2013-11-04 23:32:16 +10:00
genericpath.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
getopt.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
getpass.py #18116: getpass no longer always falls back to stdin. 2013-07-10 17:02:24 -04:00
gettext.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
glob.py Issue #8402: Added the escape() function to the glob module. 2013-11-18 13:06:43 +02:00
gzip.py Issue #19222: Add support for the 'x' mode to the gzip module. 2013-10-19 00:11:13 +02:00
hashlib.py Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs. 2013-10-22 14:59:12 +02:00
heapq.py Issue #19018: The heapq.merge() function no longer suppresses IndexError 2013-09-14 20:51:57 -07:00
hmac.py Issue #18775: Add name and block_size attribute to HMAC object. They now 2013-11-20 17:35:06 +01:00
imaplib.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
imghdr.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
imp.py Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
inspect.py Issue #19674: inspect.signature() now produces a correct signature 2013-11-23 15:37:55 -08:00
io.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
ipaddress.py #17400: correct handling of 100.64.0.0/10, fixing the docs and updating NEWS 2013-10-24 09:47:10 -07:00
keyword.py 17830: preserve line endings of original file when updating keywords. 2013-04-25 12:01:36 -04:00
linecache.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
locale.py Issue #9548: Add a minimal "_bootlocale" module that is imported by the _io module instead of the full locale module. 2013-10-12 00:13:50 +02:00
lzma.py Issue #19201: Add support for the 'x' mode to the lzma module. 2013-10-19 00:06:19 +02:00
macpath.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
macurl2path.py Increase the coverage of macurl2path. Patch by Colin Williams. 2013-10-23 21:50:56 -07:00
mailbox.py Merge #19037: adjust file times *before* moving maildir files into place. 2013-09-18 08:36:36 -04:00
mailcap.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
mimetypes.py Issue #15207: Fix mimetypes to read from correct area in Windows registry (Original patch by Dave Chambers) 2013-10-22 20:03:47 +01:00
modulefinder.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
netrc.py Merge #14984: only import pwd on POSIX. 2013-09-18 08:59:47 -04:00
nntplib.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
ntpath.py Issue #9035: os.path.ismount now recognises volumes mounted below 2013-08-01 12:44:00 +01:00
nturl2path.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
numbers.py
opcode.py Issue #19722: Added opcode.stack_effect(), which accurately 2013-11-23 14:49:22 -08:00
operator.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
optparse.py #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
os.py Issue #19218: Rename collections.abc to _collections_abc in order to speed up interpreter start 2013-10-13 02:04:20 +02:00
pathlib.py Issue #19715: try the utime(..., None) approach again, now that it should be more precise under Windows 2013-11-23 15:25:59 +01:00
pdb.py Better behavior when stepping over yield[from]. Fixes issue 16596. By Xavier de Gaye. 2013-11-21 11:30:06 -08:00
pickle.py Make framing optional in pickle protocol 4. 2013-11-23 20:30:03 -08:00
pickletools.py Fix test_pickletools.py doctest's on 32-bit platforms. I hate doctests. 2013-11-23 20:40:46 +00:00
pipes.py
pkgutil.py Implement PEP 451 (ModuleSpec). 2013-11-22 09:05:39 -07:00
platform.py #8964: merge with 3.3. 2013-10-21 03:05:46 +03:00
plistlib.py Issue #14455: Fix maybe_open typo in Plist.fromFile(). 2013-11-21 20:56:23 -08:00
poplib.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
posixpath.py Add in a comment that was removed in 240adc564539 (requested by Victor Stinner) 2013-07-22 19:05:48 -05:00
pprint.py Remove builtin "caching" in pprint 2013-10-03 21:29:36 +02:00
profile.py Fix #17197: profile/cProfile modules refactored so that code of run() and runctx() utility functions is not duplicated in both modules. 2013-02-25 11:36:40 +01:00
pstats.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
pty.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
py_compile.py Issue #17222: fix a mix-up in some exception messages. 2013-06-17 17:48:30 -04:00
pyclbr.py
pydoc.py Issue #19674: inspect.signature() now produces a correct signature 2013-11-23 15:37:55 -08:00
queue.py Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get 2013-08-10 18:17:13 -04:00
quopri.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
random.py Issue #19218: Rename collections.abc to _collections_abc in order to speed up interpreter start 2013-10-13 02:04:20 +02:00
re.py Issue #16203: Add re.fullmatch() function and regex.fullmatch() method, 2013-11-23 23:20:30 +02:00
reprlib.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
rlcompleter.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
runpy.py Issue #17177: The imp module is pending deprecation. 2013-06-16 13:13:40 -04:00
sched.py merge 2013-07-13 22:48:49 -07:00
selectors.py selectors: use a single return. 2013-11-18 18:59:43 +01:00
shelve.py Add spaces to follow PEP8. 2012-10-06 18:38:30 +03:00
shlex.py Revert "Issue #16121: Fix line number accounting in shlex" 2013-02-23 23:12:35 +01:00
shutil.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
site.py Issue #19375: The site module adding a "site-python" directory to sys.path, if it exists, is now deprecated. 2013-10-25 21:39:26 +02:00
smtpd.py Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write 2013-09-05 17:44:53 +03:00
smtplib.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
sndhdr.py #5024: whichhdr now returns the frame count for WAV files. 2013-03-18 17:42:42 -04:00
socket.py Provide a more readable representation of socket on repr(). 2013-10-03 21:01:43 +02:00
socketserver.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
sre_compile.py Issue #19329: Optimized compiling charsets in regular expressions. 2013-10-27 08:20:29 +02:00
sre_constants.py Issue #13592: Improved the repr for regular expression pattern objects. 2013-11-23 22:42:43 +02:00
sre_parse.py Issue #19365: Optimized the parsing of long replacement string in re.sub*() 2013-10-23 22:27:52 +03:00
ssl.py Issue #19735: Implement private function ssl._create_stdlib_context() to 2013-11-23 22:43:47 +01:00
stat.py Issue #15767: Excise the remaining instances of ModuleNotFoundError 2013-07-04 18:16:15 -04:00
statistics.py remove unused imports from statistics module 2013-10-25 02:11:17 +02:00
string.py #13579: minimize code base drift for 'a' string.Formatter change. 2012-08-19 17:57:29 -04:00
stringprep.py
struct.py Issue #17804: New function `struct.iter_unpack` allows for streaming struct unpacking. 2013-04-27 00:20:04 +02:00
subprocess.py Remove outdated comment 2013-11-11 15:08:40 +00:00
sunau.py Issue #16685: Added support for writing any bytes-like objects in the aifc, 2013-11-16 14:01:31 +02:00
symbol.py remain symbol.main to symbol._main mirroring token.py 2013-02-05 10:13:22 -05:00
symtable.py merge 3.3 (#19393) 2013-10-26 13:22:08 -04:00
sysconfig.py A fix for issue 19555 on Windows. 2013-11-22 11:08:05 -05:00
tabnanny.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
tarfile.py Issue #13477: Added command line interface to the tarfile module. 2013-11-24 01:53:29 +02:00
telnetlib.py (Merge 3.3) Close #19339: telnetlib module is now using time.monotonic() when 2013-10-26 09:20:38 +02:00
tempfile.py Issue14255 Don't flatten case of tempdir 2013-10-25 18:38:16 +01:00
textwrap.py Add shorten to __all_ (issues #18585 and #18725). 2013-10-16 13:07:53 +03:00
this.py
threading.py Changed a comment to end grammar bikeshedding ;-) 2013-10-26 11:56:16 -05:00
timeit.py Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__. 2013-03-15 03:04:25 -04:00
token.py Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
tokenize.py Issue #18873: The tokenize module, IDLE, 2to3, and the findnocoding.py script 2013-09-16 23:57:00 +03:00
trace.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
traceback.py merge with 3.3 2013-10-13 23:34:06 +02:00
tracemalloc.py Issue #18874: Implement the PEP 454 (tracemalloc) 2013-11-23 12:27:24 +01:00
tty.py
turtle.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
types.py Close #19030: inspect.getmembers and inspect.classify_class_attrs 2013-10-18 00:27:39 -07:00
uu.py
uuid.py Issue #18784: The uuid module no more attempts to load libc via ctypes.CDLL, 2013-09-13 07:49:36 +03:00
warnings.py Close #19379: Lazily import linecache in the warnings module, to make startup with warnings faster until a warning gets printed. 2013-10-24 22:23:42 +02:00
wave.py Issue #19641: Added the audioop.byteswap() function to convert big-endian 2013-11-23 22:26:01 +02:00
weakref.py Issue #15528: Delay importing atexit until weakref.finalize() used. 2013-06-08 16:52:29 +01:00
webbrowser.py - Issue #17536: Add to webbrowser's browser list: www-browser, x-www-browser, 2013-03-24 18:50:23 +01:00
xdrlib.py Merge: change docstring for xdrlib.Error to use new style exceptions. 2012-11-01 13:43:31 +02:00
zipfile.py Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00