On Aug 16, 2010, at 4:16 PM, Paul Eggert wrote: > We really want interoperability here.
However it does not seem possible to both have interoperability and to always provide a correct uncompressed length in the stream. Since we'd have to give up on interoperability to completely solve the problem, then the obvious solution is to use one of the reserved bits (bit 6 or 7 in flags) to signal a variable size extra field after the current trailer. (Variable in that the length of the extra field is not provided in the gzip header, but rather in the extra field itself.) Then we have an extensible means to add data to the end of a gzip stream, including the uncompressed length (which itself could be variable in length, since the gzip format may persist past the year 2040 when we may find that 63 bits is not enough). Current versions of gzip and pigz would correctly reject the stream since a reserved bit is set. (I just checked.) That has the upside to strongly encourage updating to new versions of the tools. Mark