[Zlib-devel] zlib-1.2.3-cos1
Cosmin Truta
cosmin at cs.toronto.edu
Mon May 15 18:55:34 EDT 2006
Hi, Mark,
Hi, everyone,
I took most changes that piled up since zlib-1.2.3 got out, and I am
submitting zlib-1.2.3-cos1 to Mark for consideration for the next 1.2.4
beta.
http://www.cs.toronto.edu/~cosmin/compr/zlib/zlib-1.2.3-cos1.tar.gz
Note that, although I am in favor of adding pkgconfig support, I did
nothing about it yet. Other than that, the contributions posted on
zlib-devel since the 1.2.3 release should be in this bundle. (But if
it's not as you think it should be, or if I did not give the proper
credits, please speak up.) I will explain each changelog entry in the
following.
**
[No changelog entry]
There's a new "Makefile-new", intended to replace Makefile, but it's not
done yet: the corresponding changes in the configure script are still
missing. (Unix hackers: please help!)
It's based on Greg's Makefile.zlib123.both, and it's intended to solve
the problem of building both static and shared libs; one of the reasons
for which I changed Greg's file was to make it work with other make
programs besides gcc and GNU make. The makefile is done, but the
configure script has to be adapted to work with it. It shouldn't be that
difficult to do, but these days I don't have access to a genuine Unix
platform (other than Cygwin) to test it.
**
- Add ZLIB_VER_MAJOR, ZLIB_VER_MINOR and ZLIB_VER_REVISION in zlib.h,
for use in win32/zlib1.rc [Polushin, Rowe, Truta]
In contrast with the original submission, these symbols do not use
the VERNUM word, and ZLIB_VERNUM is not computed from these three.
That's because, even though both ZLIB_VERSION and ZLIB_VERNUM are
(obviously) related to these ones, there are differences imposed
by the condition that contributors use slightly different names and
numbers, as per the requirement stated in the zlib FAQ, Question 24.
For example, my contribution has the following definitions:
#define ZLIB_VERSION "1.2.3-cos1"
#define ZLIB_VERNUM 0x123f
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
#define ZLIB_VER_REVISION 3
I suggest to use the following in zlib-1.2.4, without computing
ZLIB_VERNUM out of ZLIB_VER_MAJOR and friends:
#define ZLIB_VERSION "1.2.4"
#define ZLIB_VERNUM 0x1240
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
#define ZLIB_VER_REVISION 4
**
- Clean up compilation under Solaris SunStudio cc [Rowe]
As per the original submission.
**
- Create .pdb and .manifest files in win32/makefile.msc [Ziegler, Rowe]
As per the original submissions.
**
- Shut up annoying VS2005 warnings about standard C deprecation [Rowe, Truta]
- Swap the order of #include <stdio.h> and #include "zlib.h" in
gzio.c, example.c and minigzip.c [Truta]
Both of these changes are here because much of the standard C library
is "deprecated" in Visual C++ 8.
Andrei Polushin made a point that the modification in zconf.h has side
effects, and it's better to resort to using macros in VC makefiles and
project files.
His point is valid indeed, but I regard that as a "feature" rather than
a "side effect". I mean, since zlib inherently depends on the standard
C library, and the latter gets "deprecated", it implies the former also
should be "deprecated" until that dependency is removed. Which (I bet)
won't happen. zlib demands standard C, and anyone who demands zlib
should also demand standard C.
There's also the cosmetic point of putting all compiler and library
hacks in zconf.h instead of scattering them across makefiles. And then
there's the practical point that the change is done in one place
(zconf.h) instead of synchronizing changes in win32/makefile.msc,
projects/visualc, contrib/minizip, ... and any other makefiles and
projects. Not to mention the possibility of getting them yet again out
of sync.
**
- Update contrib/masmx86/inffas32.asm for VS2005 [Vollant, Van Wassenhove]
As per the original submissions.
**
- Add rfc1950.txt, rfc1951.txt and rfc1952.txt to doc/ [Truta]
- Move algorithm.txt into doc/ [Truta]
- Add a document that explains the new text detection scheme to
doc/txtvsbin.txt [Truta]
I created the doc/ directory in order to put whatever piece of
documentation that pertains to the "official" code (i.e. the code that's
not in the contrib/ directory).
I feel that the RFC's are small enough to fit in there, and it happened
to me more than once to need them when I was checking or doing something
with the source code.
Furthermore, algorithm.txt is easier to find in that directory, and so
is txtvsbin.txt. (About the latter file, see below.)
**
- Replace set_data_type() with a more accurate eval_data_type() in trees.c,
according to the txtvsbin.txt document [Truta]
Since zlib-1.2.3 there's a newer and better text-vs-binary detection
algorithm. Thanks to the feedback that I received from the Info-ZIP
development group, this algorithm is now even more refined, and it's
still conceptually simple. Most notably, it now identifies ancient
"EOF-terminated" DOS text files, and also nroff-formatted Unix man
pages, as plain text. The algorithm is fully explained in the
txtvsbin.txt document mentioned above.
**
- Update zlib www home address in win32/DLL_FAQ.txt [Truta]
This one is self-explanatory.
**
This is it. Enjoy!
Cosmin
More information about the Zlib-devel
mailing list