annotate src/zlib-1.2.7/contrib/delphi/readme.txt @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents e13257ea84a4
children
rev   line source
Chris@4 1
Chris@4 2 Overview
Chris@4 3 ========
Chris@4 4
Chris@4 5 This directory contains an update to the ZLib interface unit,
Chris@4 6 distributed by Borland as a Delphi supplemental component.
Chris@4 7
Chris@4 8 The original ZLib unit is Copyright (c) 1997,99 Borland Corp.,
Chris@4 9 and is based on zlib version 1.0.4. There are a series of bugs
Chris@4 10 and security problems associated with that old zlib version, and
Chris@4 11 we recommend the users to update their ZLib unit.
Chris@4 12
Chris@4 13
Chris@4 14 Summary of modifications
Chris@4 15 ========================
Chris@4 16
Chris@4 17 - Improved makefile, adapted to zlib version 1.2.1.
Chris@4 18
Chris@4 19 - Some field types from TZStreamRec are changed from Integer to
Chris@4 20 Longint, for consistency with the zlib.h header, and for 64-bit
Chris@4 21 readiness.
Chris@4 22
Chris@4 23 - The zlib_version constant is updated.
Chris@4 24
Chris@4 25 - The new Z_RLE strategy has its corresponding symbolic constant.
Chris@4 26
Chris@4 27 - The allocation and deallocation functions and function types
Chris@4 28 (TAlloc, TFree, zlibAllocMem and zlibFreeMem) are now cdecl,
Chris@4 29 and _malloc and _free are added as C RTL stubs. As a result,
Chris@4 30 the original C sources of zlib can be compiled out of the box,
Chris@4 31 and linked to the ZLib unit.
Chris@4 32
Chris@4 33
Chris@4 34 Suggestions for improvements
Chris@4 35 ============================
Chris@4 36
Chris@4 37 Currently, the ZLib unit provides only a limited wrapper around
Chris@4 38 the zlib library, and much of the original zlib functionality is
Chris@4 39 missing. Handling compressed file formats like ZIP/GZIP or PNG
Chris@4 40 cannot be implemented without having this functionality.
Chris@4 41 Applications that handle these formats are either using their own,
Chris@4 42 duplicated code, or not using the ZLib unit at all.
Chris@4 43
Chris@4 44 Here are a few suggestions:
Chris@4 45
Chris@4 46 - Checksum class wrappers around adler32() and crc32(), similar
Chris@4 47 to the Java classes that implement the java.util.zip.Checksum
Chris@4 48 interface.
Chris@4 49
Chris@4 50 - The ability to read and write raw deflate streams, without the
Chris@4 51 zlib stream header and trailer. Raw deflate streams are used
Chris@4 52 in the ZIP file format.
Chris@4 53
Chris@4 54 - The ability to read and write gzip streams, used in the GZIP
Chris@4 55 file format, and normally produced by the gzip program.
Chris@4 56
Chris@4 57 - The ability to select a different compression strategy, useful
Chris@4 58 to PNG and MNG image compression, and to multimedia compression
Chris@4 59 in general. Besides the compression level
Chris@4 60
Chris@4 61 TCompressionLevel = (clNone, clFastest, clDefault, clMax);
Chris@4 62
Chris@4 63 which, in fact, could have used the 'z' prefix and avoided
Chris@4 64 TColor-like symbols
Chris@4 65
Chris@4 66 TCompressionLevel = (zcNone, zcFastest, zcDefault, zcMax);
Chris@4 67
Chris@4 68 there could be a compression strategy
Chris@4 69
Chris@4 70 TCompressionStrategy = (zsDefault, zsFiltered, zsHuffmanOnly, zsRle);
Chris@4 71
Chris@4 72 - ZIP and GZIP stream handling via TStreams.
Chris@4 73
Chris@4 74
Chris@4 75 --
Chris@4 76 Cosmin Truta <cosmint@cs.ubbcluj.ro>