annotate Modules/zlib/README @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 224aa49f22f1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1 ZLIB DATA COMPRESSION LIBRARY
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
3 zlib 1.2.8 is a general purpose data compression library. All the code is
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4 thread safe. The data format used by the zlib library is described by RFCs
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5 (Request for Comments) 1950 to 1952 in the files
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
6 http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
7 rfc1952 (gzip format).
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
8
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
9 All functions of the compression library are documented in the file zlib.h
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
10 (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
11 of the library is given in the file test/example.c which also tests that
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
12 the library is working correctly. Another example is given in the file
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
13 test/minigzip.c. The compression library itself is composed of all source
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
14 files in the root directory.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
15
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16 To compile all files and run the test program, follow the instructions given at
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
17 the top of Makefile.in. In short "./configure; make test", and if that goes
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
18 well, "make install" should work for most flavors of Unix. For Windows, use
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
19 one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
20 make_vms.com.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
21
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22 Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
23 <info@winimage.com> for the Windows DLL version. The zlib home page is
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
24 http://zlib.net/ . Before reporting a problem, please check this site to
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
25 verify that you have the latest version of zlib; otherwise get the latest
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
26 version and check whether the problem still exists or not.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
27
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
28 PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
29
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
30 Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
31 issue of Dr. Dobb's Journal; a copy of the article is available at
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
32 http://marknelson.us/1997/01/01/zlib-engine/ .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
33
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
34 The changes made in version 1.2.8 are documented in the file ChangeLog.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
35
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
36 Unsupported third party contributions are provided in directory contrib/ .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
37
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
38 zlib is available in Java using the java.util.zip package, documented at
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
39 http://java.sun.com/developer/technicalArticles/Programming/compression/ .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
40
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
41 A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
42 at CPAN (Comprehensive Perl Archive Network) sites, including
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
43 http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
44
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
45 A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
46 available in Python 1.5 and later versions, see
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
47 http://docs.python.org/library/zlib.html .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
48
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
49 zlib is built into tcl: http://wiki.tcl.tk/4610 .
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
50
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
51 An experimental package to read and write files in .zip format, written on top
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
52 of zlib by Gilles Vollant <info@winimage.com>, is available in the
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
53 contrib/minizip directory of zlib.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
54
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
55
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
56 Notes for some targets:
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
57
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
58 - For Windows DLL versions, please see win32/DLL_FAQ.txt
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
59
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
60 - For 64-bit Irix, deflate.c must be compiled without any optimization. With
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
61 -O, one libpng test fails. The test works in 32 bit mode (with the -n32
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
62 compiler flag). The compiler bug has been reported to SGI.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
63
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
64 - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
65 when compiled with cc.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
66
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
67 - On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
68 necessary to get gzprintf working correctly. This is done by configure.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
69
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
70 - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
71 other compilers. Use "make test" to check your compiler.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
72
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
73 - gzdopen is not supported on RISCOS or BEOS.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
74
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
75 - For PalmOs, see http://palmzlib.sourceforge.net/
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
76
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
77
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
78 Acknowledgments:
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
79
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
80 The deflate format used by zlib was defined by Phil Katz. The deflate and
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
81 zlib specifications were written by L. Peter Deutsch. Thanks to all the
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
82 people who reported problems and suggested various improvements in zlib; they
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
83 are too numerous to cite here.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
84
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
85 Copyright notice:
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
86
86546
224aa49f22f1 Issue #18527: Upgrade internal copy of zlib to 1.2.8
Christian Heimes <christian@cheimes.de>
parents: 63336
diff changeset
87 (C) 1995-2013 Jean-loup Gailly and Mark Adler
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
88
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
89 This software is provided 'as-is', without any express or implied
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
90 warranty. In no event will the authors be held liable for any damages
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
91 arising from the use of this software.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
92
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
93 Permission is granted to anyone to use this software for any purpose,
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
94 including commercial applications, and to alter it and redistribute it
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
95 freely, subject to the following restrictions:
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
96
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
97 1. The origin of this software must not be misrepresented; you must not
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
98 claim that you wrote the original software. If you use this software
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
99 in a product, an acknowledgment in the product documentation would be
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
100 appreciated but is not required.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
101 2. Altered source versions must be plainly marked as such, and must not be
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
102 misrepresented as being the original software.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
103 3. This notice may not be removed or altered from any source distribution.
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
104
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
105 Jean-loup Gailly Mark Adler
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
106 jloup@gzip.org madler@alumni.caltech.edu
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
107
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
108 If you use the zlib library in a product, we would appreciate *not* receiving
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
109 lengthy legal documents to sign. The sources are provided for free but without
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
110 warranty of any kind. The library has been entirely written by Jean-loup
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
111 Gailly and Mark Adler; it does not include third-party code.
36186
81fa47d2d477 Import zlib into Python tree.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
112
63336
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
113 If you redistribute modified sources, we would appreciate that you include in
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
114 the file ChangeLog history information documenting your changes. Please read
467019588fcc Import files from zlib 1.2.5.
Martin v. Löwis <martin@v.loewis.de>
parents: 42622
diff changeset
115 the FAQ for more information on the distribution of modified source versions.