Mercurial > cpython-lru_cache-weakref
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 |
| 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. |
