[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] #82: z3 egg DEFLATE and gzip confusion
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] #82: z3 egg DEFLATE and gzip confusion |
Date: |
Tue, 13 Oct 2009 07:20:37 -0000 |
#82: z3 egg DEFLATE and gzip confusion
-------------------------------------+--------------------------------------
Reporter: tonysidaway | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: build system | Version: 4.1.x
Keywords: z3 gzip rfc1951 rfc1952 |
-------------------------------------+--------------------------------------
RFC1951 is the DEFLATE format. RFC1952 is the gzip file format. A gzip
file is a data stream encoded using the DEFLATE format, in a file wrapper
specified by RFC1952.
Although it is presented as a gzip egg that "Provides functions to read
and write compressed data using the gzip algorithm", some of the calls
actually use the raw DEFLATE format without being clear about it,
resulting in unexpected errors.
Four interfaces are specified by this egg: the raw data interface, the
buffer interface, the file system interface and the port interface.
The first two only read and write DEFLATE (RFC1951) format, while the
second two read and write gzip (RFC1952) format.
The upshot is that if one reads a gzip file into a buffer and then
attempts to use the z3 raw data or buffer interface functions to decode
it, an error will result because they do not understand gzip file format.
In the interim, the egg documentation should specify the data formats
being handled by each set of functions.
In the long run a buffer interface that handles RFC1952 format in memory
would be useful because this format is commonly used, for instance, for
data transmission from web servers to clients. At present if a RFC1952
stream is captured in a memory buffer the only way z3 can decode it is by
writing to a temporary file and then using the file system or port
interface to decode the file contents.
--
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/82>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #82: z3 egg DEFLATE and gzip confusion,
Chicken Trac <=